Uporaba tekstur upodabljanja za prikaz vsebine drugega prizora kot tekstur

Stran posodobljena :
Datum ustvarjanja strani :

Okolje za preverjanje

Windows
  • Windows 11
Urejevalnik Unity
  • 2021.3.3F1
Paket vhodnega sistema
  • 1.3.0

Predpogoji za ta nasvet

Naslednje nastavitve so bile vnaprej narejene kot premisa za opis tega nasveta.

Sprva

Upodabljanje tekstur vam omogoča, da risbe namesto na zaslon zapišete na teksturo. To vam omogoča prosto ustvarjanje tekstur med izvajanjem igre, ne da bi vnaprej pripravili teksturne slike.

Pišete lahko tudi v upodabljanje teksture, ki dinamično spreminja vsak okvir, na primer za projiciranje drugačne slike od glavne kamere na zaslonu, ki obstaja v igri.

Priprava slik

Ko uporabljate teksturo upodabljanja, vam slike ni treba pripraviti, lahko pa jo pripravite kot vzorec, da boste lažje razumeli rezultat risbe.

Ustvarjanje teksture upodabljanja

Ustvarite sredstvo iz projekta. V možnosti Ustvari izberite Upodobi teksturo.

Ime je lahko poljubno. Ker ime trenutno ni določeno neposredno od NewRenderTexture zunaj, pustite kot .

Izberite teksturo upodabljanja in določite njeno velikost v inšpektorju. Ker je tekstura upodabljanja območje risanja, morate določiti velikost. Tokrat želim napisati prizor, ustvarjen ločeno, zato sem razmerje stranic nastavil na 16:9.

Nastavitev cilja upodabljanja teksture

Izberite »UI« > »Raw Image« iz hierarhije prvotno ustvarjenega prizora. Prikažite vsebino teksture upodabljanja v tem predmetu. To je predmet uporabniškega vmesnika, vendar potrebujete komponento »Raw Image«, ki jo lahko nastavite na drug predmet.

RawImage je bil postavljen. Ker gre za predmet uporabniškega vmesnika, je postavljen v platno. Ničesar še nisem nastavil, zato dobim samo bel pravokotnik.

Želimo, da je lestvica enaka, zato nastavimo velikost predmeta RawImage na enako kot tekstura upodabljanja. Če ohranite razmerje višina/širina enako, bo rezultat risbe prilagojen le, če spremenite velikost, če pa spremenite razmerje višina/širina, bo rezultat risbe zdrobljen navpično ali vodoravno.

Komponenta Raw Image predmeta RawImage ima »teksturo«, zato nastavite teksturo upodabljanja, ki ste jo pravkar ustvarili tam. Vsebina teksture upodabljanja je še vedno prazna, zato je v pogledu prosojna.

Ustvarjanje prizora upodabljanja vsebine risbe teksture

Nato ustvarite nov prizor, da ustvarite vsebino, ki jo želite narisati v teksturi upodabljanja. V meniju izberite Datoteka in izberite Nov prizor.

Ker je ta vzorec 2D, boste izbrali tudi 2D-prizor.

Ustvarite ga v mapi Prizor. SampleSceneTexture Pustite ime kot .

Ko ustvarite prizor, predmete ustrezno postavite. Vse kar morate storiti je, da se prepričate, da poznate vsebino teksture upodabljanja. Da bi potrdili, da vse, kar štrli zunaj kamere, ni narisano, je v bližini okvirja kamere nameščen tudi sprite.

Če se predmeti prekrivajo, bo kontekst predmetov nedoločen, zato, če imate ozadje, znižajte vrstni red plasti ozadja.

Ko izberete »MainCamera«, nastavite teksturo upodabljanja v »Ciljna tekstura«. To povzroči, da se risba nariše v teksturi upodabljanja.

Odstranite komponento Audio Listener, nastavljeno na MainCamera. Vse, kar potrebujete za upodabljanje teksture, je risanje, zato ne potrebujete poslušalca zvoka. Prikaže se opozorilo, če je med izvajanjem več »zvočnih poslušalcev«.

Mimogrede, če zaženete prizor za upodabljanje teksture v tem stanju, na zaslonu ne bo nič prikazano. To je zato, ker rišete na teksturo upodabljanja. Če ga želite preveriti na zaslonu, izbrišite "ciljno teksturo" in jo izvedite.

Nastavitve plasti

V tem vzorcu boste morali premakniti dva prizora hkrati, če pa jih premaknete takšne, kot so, bo vsebina, ki jo boste narisali v teksturi upodabljanja, prikazana tudi na glavnem zaslonu, tako da plasti ne bodo narisane ločeno.

Najprej izberite "Uredi plast" iz plasti v zgornjem desnem kotu urejevalnika.

Ime in lokacija sta poljubna, toda tukaj bomo dodali novo RenderTarget plast z imenom .

Ko dodate plast, odprite prizor za upodabljanje teksture, izberite vse predmete, ki jih želite narisati, in spremenite vrednost plasti na tisto, ki ste jo pravkar ustvarili RenderTarget .

SampleSceneTexture S tem boste končali urejanje prizora, zato ga shranite.

Prikaz tekstur upodabljanja

SampleScene Ko odprete prizor, ga dodajte v hierarhijo SampleSceneTexture tako, da povlečete in spustite prizor. Nato morata biti v hierarhiji dva prizora, vsebina prizora pa mora biti prikazana na zaslonu SampleSceneTexture .

SampleSceneTexture Vsebina prizora je moteča, zato v hierarhiji kliknite ikono očesa prizora SampleSceneTexture . SampleSceneTexture To bo skrilo predmete v prizoru in vidna bo SampleScene samo vsebina prizora. Mimogrede, ker so vse nastavitve teksture upodabljanja zaključene, je treba vsebino teksture upodabljanja prikazati na surovi sliki,SampleScene postavljeni v prizor.

Vendar pa je ikona skrivanja z očesom le nastavitev, da postane nevidna v urejevalniku, zato, če zaženete SampleSceneTexture igro takšno, kot je, bo vsebina prizora prikazana tudi na zaslonu. SampleScene Nato izberite Prizor Main Camera in počistite polje Iz RenderTarget izločitvene Camera maske v inšpektorju. To preprečuje prikaz predmetov v plasti, ko RenderTarget se igra izvaja.

Poskusite zagnati igro. Moral bi biti prikazan, kot je bilo predvideno.

Poskusite premakniti teksturo upodabljanja

Vendar pa je v tem stanju težko vedeti, ali res deluje kot tekstura upodabljanja ali preprosto prikazovanje slike kot pridelka, zato jo premaknimo.

Vsebina je lahko karkoli, toda tukaj bomo nastavili gibanje tako, da samodejno zavrti duhovnika. Ustvarite SelfRotate skript in ga ustvarite kot .

Tu bomo vključili preprost postopek vrtenja malo po malo.

using UnityEngine;

public class SelfRotate : MonoBehaviour
{
  // 更新はフレームごとに 1 回呼び出されます
  void Update()
  {
    transform.Rotate(0, 0, 0.1f);
  }
}

Ko ustvarite skript, vedno bolj priložite predmetu, ki ga želite zasukati.

Nato zaženite igro in preverite, ali se vrti. Mislim, da lahko vidite, da se predmet premika v teksturi upodabljanja.

Kako premakniti več prizorov hkrati

Tukaj smo ustvarili preprost primer, tako da imamo dva prizora, ki tečeta od začetka, toda v pravi igri je veliko primerov, ko morate začeti z enim prizorom. V tem primeru mislim, da boste morali dinamično dodajati prizore na začetku prizora, da boste lahko naredili več prizorov.

Prosimo, glejte "Dodajanje prizora" za razlago, kako dodate prizor. V bistvu SceneManager.LoadScene("<シーン名>", LoadSceneMode.Additive); bi klicanje moralo rešiti večino težav.

Kako preprečiti, da bi se vsebina teksture upodabljanja pojavila na glavnem zaslonu brez uporabe plasti

Vsebina teksture upodabljanja je prikazana na glavnem zaslonu, ker sta glavni prizor in prizor upodabljanja teksture na istem mestu. Če torej vsebino teksture upodabljanja premaknete na mesto, ki ni nikoli prikazano v glavnem prizoru, ne bo prikazana na glavnem zaslonu. Predmet upodabljanja teksture ali fotoaparat lahko na primer premaknete na (-10000, -10000) mesto. Na ta način nastavitve plasti niso potrebne.

Ko želite dokončati vsebino upodabljanja teksture v enem prizoru, ne da bi jo razdelili na različne prizore

To se naredi z isto tehniko kot prejšnja metoda brez plasti. Vsebino, prikazano s teksturo upodabljanja, lahko premaknete na mesto, kjer ne bo nikoli prikazana na glavni kameri. Razlika od načina ločevanja prizorov je v tem, da morate namestiti dve kameri, razen tega pa boste v bistvu imeli enake nastavitve kot način ločevanja prizorov.

Če želite zajeti vsebino, zajeto iz druge perspektive v 3D-igri, kot upodabljanje teksture

Ta nasvet ni veliko govoril o 3D, ker se je osredotočil na 2D, vendar je pristop v bistvu enak. Ker projicirate en 3D-prostor iz več perspektiv, vam ni treba imeti več kot dveh prizorov. Vse kar morate storiti je, da postavite toliko kamer, kot jih potrebujete, nastavite cilj risanja kot teksturo upodabljanja in nastavite, kje želite prikazati teksturo upodabljanja.