Izmantojiet faktūru atveidi, lai attēlotu citas ainas saturu kā faktūras
Verifikācijas vide
- Windows
-
- Operētājsistēmā Windows 11
- Vienotības redaktors
-
- 2021.3.3f1
- Ievades sistēmas pakete
-
- 1.3.0
Priekšnoteikumi šim padomam
Tālāk norādītie iestatījumi ir veikti iepriekš kā priekšnoteikums šī padoma aprakstam.
Sākumā
Renderēt faktūras ļauj rakstīt zīmējumus faktūrā, nevis ekrānā. Tas ļauj brīvi ģenerēt tekstūras spēles izpildes laikā, iepriekš nesagatavojot tekstūras attēlus.
Varat arī rakstīt uz renderēšanas tekstūru, kas dinamiski maina katru kadru, piemēram, lai projicētu no galvenās kameras atšķirīgu attēlu displejā, kas pastāv spēlē.
Attēlu sagatavošana
Izmantojot renderēšanas tekstūru, jums nav jāsagatavo attēls, bet varat to sagatavot kā paraugu, lai zīmēšanas rezultāts būtu vieglāk saprotams.
Renderēšanas tekstūras izveide
Izveidojiet līdzekli no projekta. Sadaļā Izveidot atlasiet Atveidot tekstūru.
Nosaukums var būt patvaļīgs. Tā kā nosaukums šajā laikā nav norādīts tieši no NewRenderTexture
ārpuses, atstājiet kā .
Atlasiet atveidojuma tekstūru un norādiet tās lielumu no inspektora. Tā kā renderēšanas tekstūra ir zīmēšanas laukums, jums jānorāda izmērs. Šoreiz vēlos uzrakstīt atsevišķi izveidotu ainu, tāpēc malu attiecību iestatīju uz 16:9.
Atveidošanas faktūras mērķa iestatīšana
Sākotnēji izveidotās ainas hierarhijā atlasiet "UI" > "Raw Image". Parādiet atveidojuma faktūras saturu šajā objektā. Tas ir lietotāja saskarnes objekts, bet tas, kas jums nepieciešams, ir komponents "Raw Image", kuru var iestatīt uz citu objektu.
RawImage ir ievietots. Tā kā tas ir lietotāja saskarnes objekts, tas ir ievietots audeklā. Es vēl neko neesmu iestatījis, tāpēc man vienkārši ir balts taisnstūris.
Mēs vēlamies, lai mērogs būtu vienāds viens ar otru, tāpēc mēs iestatām, lai RawImage objekta lielums būtu tāds pats kā renderēšanas tekstūrai. Ja saglabājat malu attiecību nemainīgu, zīmēšanas rezultāts tiks mērogots tikai tad, ja mainīsit izmēru, bet, mainot malu attiecību, zīmēšanas rezultāts tiks saspiests vertikāli vai horizontāli.
Raw Image objekta komponentam Raw Image ir "tekstūra", tāpēc iestatiet tikko izveidoto renderēšanas tekstūru. Atveidojuma tekstūras saturs joprojām ir tukšs, tāpēc skatā tie ir caurspīdīgi.
Tekstūras zīmēšanas satura atveidošanas ainas izveide
Pēc tam izveidojiet jaunu ainu, lai izveidotu saturu, kas jāzīmē renderēšanas tekstūrā. Izvēlnē izvēlieties Fails un atlasiet Jauna aina.
Tā kā šis paraugs ir 2D, jūs izvēlēsities arī 2D ainu.
Izveidojiet to mapē Aina. SampleSceneTexture
Atstājiet vārdu kā .
Pēc ainas izveidošanas novietojiet objektus atbilstoši. Viss, kas jums jādara, ir pārliecināties, ka zināt renderēšanas tekstūras saturu. Lai apstiprinātu, ka viss, kas izvirzās ārpus kameras, nav uzzīmēts, pie kameras rāmja tiek novietots arī sprite.
Ja objekti pārklājas, objektu konteksts būs nenoteikts, tādēļ, ja jums ir fons, pazeminiet fona slāņu secību.
Pēc "MainCamera" izvēles iestatiet renderēšanas tekstūru sadaļā "Mērķa tekstūra". Tas izraisa zīmējuma zīmēšanu atveidojuma tekstūrā.
Noņemiet komponentu Audio Listener, kas iestatīts uz MainCamera. Viss, kas nepieciešams renderēšanas tekstūrai, ir zīmēšana, tāpēc audio klausītājs nav nepieciešams. Brīdinājums tiks parādīts, ja izpildlaikā ir vairāki "Audio klausītāji".
Starp citu, ja jūs palaižat ainu renderēšanas tekstūrai šādā stāvoklī, ekrānā nekas netiks parādīts. Tas ir tāpēc, ka jūs zīmējat uz renderēšanas tekstūras. Ja vēlaties to pārbaudīt ekrānā, izdzēsiet "mērķa tekstūru" un pēc tam izpildiet to.
Slāņa iestatījumi
Šajā paraugā jums būs jāpārvieto divas ainas vienlaikus, bet, ja tās pārvietosit tādas, kādas tās ir, renderēšanas tekstūrā zīmējamais saturs tiks parādīts arī galvenajā ekrānā, tāpēc slāņi netiks zīmēti atsevišķi.
Vispirms atlasiet "Rediģēt slāni" no slāņa redaktora augšējā labajā stūrī.
Nosaukums un atrašanās vieta ir patvaļīgi, bet šeit mēs pievienosim jaunu RenderTarget
slāni ar nosaukumu .
Pēc slāņa pievienošanas atveriet atveidošanas faktūras ainu, atlasiet visus objektus, kurus vēlaties zīmēt, un mainiet slāņa vērtību uz tikko izveidoto RenderTarget
.
SampleSceneTexture
Tas izbeigs ainas rediģēšanu, tāpēc, lūdzu, saglabājiet to.
Renderēšanas faktūru parādīšana
SampleScene
Kad esat atvēris skatu, pievienojiet to hierarhijai SampleSceneTexture
, velkot un nometot skatu.
Pēc tam hierarhijā vajadzētu būt divām ainām, un ainas saturs jāparāda SampleSceneTexture
ekrānā.
SampleSceneTexture
Ainas saturs ir satraucošs, tāpēc hierarhijā noklikšķiniet uz ainas acs ikonas SampleSceneTexture
.
SampleSceneTexture
Tas paslēps objektus ainā, un būs redzams tikai ainas SampleScene
saturs.
Starp citu, tā kā visi renderēšanas tekstūras iestatījumi ir pabeigti,SampleScene
renderēšanas tekstūras saturs jāparāda neapstrādātajā attēlā, kas ievietots attēlā.
Tomēr slēpšanās ar aci ikona ir tikai iestatījums, lai padarītu to neredzamu redaktorā, tādēļ, ja jūs palaižat SampleSceneTexture
spēli tādu, kāda tā ir, ekrānā tiks parādīts arī ainas saturs.
SampleScene
Pēc tam inspektorā atlasiet Aina Main Camera
un noņemiet atzīmi no izkaušanas RenderTarget
maskasCamera
.
Tas neļauj rādīt slānī esošos objektus, kad RenderTarget
spēle tiek palaista.
Mēģiniet palaist spēli. Tam vajadzētu parādīties, kā paredzēts.
Mēģiniet pārvietot renderēšanas tekstūru
Tomēr šajā stāvoklī ir grūti zināt, vai tas patiešām darbojas kā renderēšanas tekstūra vai vienkārši parāda attēlu kā kultūru, tāpēc pārvietosim to.
Saturs var būt jebkas, bet šeit mēs iestatīsim kustību, lai automātiski pagrieztu sprite. Izveidojiet skriptu SelfRotate
un izveidojiet to kā .
Šeit mēs iekļausim vienkāršu procesu, kā pamazām pagriezt sevi.
using UnityEngine;
public class SelfRotate : MonoBehaviour
{
// 更新はフレームごとに 1 回呼び出されます
void Update()
{
transform.Rotate(0, 0, 0.1f);
}
}
Pēc skripta izveidošanas arvien vairāk pievienojiet objektam, kuru vēlaties pagriezt.
Pēc tam palaidiet spēli un pārbaudiet, vai tā griežas. Es domāju, ka jūs varat redzēt, ka objekts pārvietojas renderēšanas tekstūrā.
Kā vienlaikus pārvietot vairākas ainas
Šeit mēs izveidojām vienkāršu piemēru, lai mums būtu divas ainas, kas darbojas no sākuma, bet reālā spēlē ir daudz gadījumu, kad jums jāsāk ar vienu ainu. Tādā gadījumā es domāju, ka jums būs dinamiski jāpievieno ainas ainas ainas sākumā, lai padarītu to par vairākām ainām.
Lūdzu, skatiet sadaļu "Ainas pievienošana", lai uzzinātu, kā pievienot ainu.
Būtībā SceneManager.LoadScene("<シーン名>", LoadSceneMode.Additive);
zvanīšanai vajadzētu atrisināt lielāko daļu problēmu.
Kā novērst renderēšanas tekstūras satura parādīšanos galvenajā ekrānā, neizmantojot slāņus
Atveidojuma faktūras saturs tiek parādīts galvenajā ekrānā, jo galvenā aina un atveidojuma faktūras aina atrodas vienā un tajā pašā vietā. Tāpēc, ja pārvietojat renderēšanas faktūras saturu uz vietu, kas nekad netiek rādīta galvenajā ainā, tā netiks parādīta galvenajā ekrānā. Piemēram, varat pārvietot renderēšanas faktūras objektu vai kameru uz (-10000, -10000) atrašanās vietu. Tādā veidā slāņa iestatījumi nav nepieciešami.
Ja vēlaties pabeigt renderēšanas faktūras saturu vienā ainā, nesadalot to dažādās ainās
Tas tiek darīts, izmantojot to pašu tehniku kā iepriekšējā metode bez slāņiem. Renderēšanas tekstūras parādīto saturu var pārvietot uz vietu, kur tas nekad netiks parādīts galvenajā kamerā. Atšķirība no ainu atdalīšanas metodes ir tāda, ka jums ir jānovieto divas kameras, bet, izņemot to, jums būtībā būs tādi paši iestatījumi kā ainu atdalīšanas metodei.
Ja vēlaties tvert saturu, kas uzņemts no citas perspektīvas 3D spēlē kā renderēšanas tekstūru
Šis padoms daudz nerunāja par 3D, jo tas koncentrējās uz 2D, bet pieeja būtībā ir tāda pati. Tā kā projicējat vienu 3D telpu no vairākām perspektīvām, jums nav nepieciešamas vairāk par divām ainām. Viss, kas jums jādara, ir jānovieto tik daudz kameru, cik nepieciešams, jāiestata zīmēšanas galamērķis kā renderēšanas faktūra un jāiestata, kur parādīt renderēšanas tekstūru.