Subiectul este destul de interesant, să încercăm să îl înțelegem. De cele mai multe ori puteți vedea exemple de punere în aplicare a unor urme de gloanțe pe pereți, atunci când utilizați un sprite sau o plasă cu o textură care este suprapusă pe obiect, adică pe un perete, de exemplu. Pentru a face acest lucru simplu și aparent, totul funcționează așa cum ar trebui. Dar există câteva probleme. În primul rând, dacă permiteți ca un sprite să fie așezat pe marginea peretelui, se pare că o parte a spritei doar este agățată în aer, nu merge prea bine. În al doilea rând, sprite sau ochiurilor de plasă, adică un obiect plat, nu pot fi aplicate la relief sau, de exemplu, la un model de caracter, cum ar fi petele de sânge și altele asemenea. Și, prin urmare, vom folosi proiectorul pentru a rezolva aceste probleme, principalul lucru fiind să-l configurați corespunzător.
La început, importăm ansamblurile Efecte standard. pentru că există shaderele de care avem nevoie. Apoi, trebuie să facem câteva nivele noi, pentru o suprafață plană și pentru un caracter inamic, să spunem. Și, în consecință, le atribuim aceste obiecte obiectelor. Este necesar ca proiectoarele specifice să funcționeze cu straturi specifice, fără a se suprapune pe altele:
Creați un proiector prefabricat pentru o suprafață plană, de exemplu pentru pereți. Adăugați la scena un obiect gol și îl numiți ProjectorWall. le atașăm componenta Proiector cu setările ca pe captura de ecran:
După cum puteți vedea, aici excludem toate straturile cu excepția stratului de perete din lista de straturi Ignorare. Parametrul Orthographic Size (Dimensiune ortografică) pentru ajustarea dimensiunii, în modul Orthographic. acest mod este cel mai potrivit pentru sarcinile noastre.
Acum creați un material nou numit Wall și specificați-l în câmpul corespunzător al proiectorului. În material, selectați proiectorul Shader> Multiply:
Acum trebuie să adăugăm texturi la shader pentru Cookie și FallOff. Prin urmare, Cookie este textura principală, iar FallOff reduce vizibilitatea texturii principale, vizibilitatea culorii negre. De exemplu, dacă textura este suprapusă pe marginea cubului, suprafața cubului va fi vopsită care se potrivește cu acest karaem. Prin urmare, desena textura FallOff pentru un avion ca acesta:
Numai centrul va fi vizibil. Setările de textură arată astfel:
Setările pentru textura găurilor de gloanțe pentru Cookie sunt:
Un punct important! O urmă dintr-un glonț sau petele de sânge ar trebui să fie pe un fundal alb. nu transparente. Formatul poate fi PNG sau JPG, fără nici o diferență.
Acum, facem un duplicat al proiectorului prefabricat, numim proiectorul ProiectorEnemy sunt aproape aceleași, dar în lista Ignorare straturile exclud deja totul, cu excepția stratului Enemy.
De asemenea, vom indica un nou material. Duplicatul celui precedent, dar cu alte texturi, setările textelor în sine sunt identice, forma FallOff va fi după cum urmează:
Există deja mai mult o zonă albă și numai marginile sunt negre. Deoarece pentru relief, zona de desen este necesară mai mult pentru că există adâncime.
În ambele prefabricate, închidem scriptul BulletProjector:
Scenariul scurtează zona de lucru a proiectorului, specificăm toleranța în distanțaToleranță variabilă. Pentru plan, valorile 0,05 sunt suficiente. și pentru o ușurare de 0,1 sau mai mult. Experimentați cu prefabricatele proiectoarelor și găsiți valoarea de care aveți nevoie.
Acum fotografiați.
Adăugați un obiect de tip Imagine la scenă, plasați-o în centrul ecranului, indicați sprite-ul și vizionați scriptul FireSystem pe obiect. care va crea proiectoare:
Nimic special aici. Alegerea obiectului pentru a crea, în funcție de stratul țintă, plus transformarea prefabricată aleatoriu pe Z. Merită notat parametrul maxProjector. adică cât de mult poate crea întregul proiector, economisind resursele sistemului. Când se ajunge la numărul maxim, noile obiecte vor înlocui primele, adică dacă sunt doar 50 dintre ele, după apariția celui de-al 51-lea, obiectul va fi distrus sub numărul 1.
Descărcați proiectul demo:
Nu puteți descărca fișiere de pe serverul nostru