Käytä hahmonnuskuvioita toisen näkymän sisällön näyttämiseen pintakuvioina

Sivu päivitetty :
Sivun luontipäivämäärä :

Varmennusympäristö

Windows
  • Windows 11
Unity-editori
  • 2021.3.3F1
Syöttöjärjestelmän paketti
  • 1.3.0

Tämän vinkin edellytykset

Seuraavat asetukset on tehty etukäteen tämän vinkin kuvauksen lähtökohtana.

Alun perin

Renderöintitekstuurien avulla voit kirjoittaa piirustuksesi tekstuuriin näytön sijaan. Näin voit luoda vapaasti tekstuureja pelin suorittamisen aikana valmistelematta tekstuurikuvia etukäteen.

Voit myös kirjoittaa hahmonnustekstuuriin, joka muuttuu dynaamisesti jokaisessa kehyksessä, esimerkiksi heijastaaksesi eri kuvan kuin pääkamera pelissä olevalle näytölle.

Kuvien valmistelu

Kun käytät renderöintipintaa, sinun ei tarvitse valmistella kuvaa, mutta voit valmistaa sen näytteeksi, jotta piirustustulos on helpompi ymmärtää.

Hahmonnuksen tekstuurin luominen

Luo resurssi projektista. Valitse Luo-kohdasta Renderöi tekstuuri.

Nimi voi olla mielivaltainen. Koska nimeä ei ole tällä hetkellä määritetty suoraan NewRenderTexture ulkopuolelta, jätä .

Valitse renderöintipintakuvio ja määritä sen koko inspektorista. Koska hahmonnuspintakuvio on piirustusalue, sinun on määritettävä koko. Tällä kertaa haluan kirjoittaa erikseen luodun kohtauksen, joten asetin kuvasuhteeksi 16:9.

Hahmonnuksen tekstuurin kohteen asettaminen

Valitse "UI" > "Raw Image" alun perin luodun näkymän hierarkiasta. Näytä hahmonnuksen tekstuurin sisältö tässä objektissa. Se on käyttöliittymän objekti, mutta tarvitset "Raw Image" -komponentin, joka voidaan asettaa toiseen objektiin.

RawImage on sijoitettu. Koska se on käyttöliittymäobjekti, se sijoitetaan piirtoalustaan. En ole vielä asettanut mitään, joten saan vain valkoisen suorakulmion.

Haluamme, että mittakaava on yhtä suuri, joten asetamme RawImage-objektin kooksi saman kuin renderöintitekstuurin. Jos pidät kuvasuhteen samana, piirustustulos skaalataan vain, vaikka muutat kokoa, mutta jos muutat kuvasuhdetta, piirustustulos murskataan pysty- tai vaakasuunnassa.

RawImage-objektin Raw Image -komponentilla on "tekstuuri", joten aseta juuri luomasi renderöintipintakuvio. Hahmonnuksen tekstuurin sisältö on edelleen tyhjä, joten se näkyy läpinäkyvästi.

Näkymän luominen tekstuuripiirroksen sisällön hahmontamisesta

Luo seuraavaksi uusi kohtaus luodaksesi renderöintitekstuuriin piirrettävän sisällön. Valitse valikosta Tiedosto ja valitse Uusi kohtaus.

Koska tämä näyte on 2D, valitset myös 2D-näkymän.

Luo se Scene-kansioon. SampleSceneTexture Jätä nimeksi .

Kun olet luonut näkymän, aseta objektit asianmukaisesti. Sinun tarvitsee vain varmistaa, että tiedät renderöinnin tekstuurin sisällön. Sen varmistamiseksi, että kameran ulkopuolelle työntyvää ei ole piirretty, kameran kehyksen lähelle asetetaan myös sprite.

Jos objektit ovat päällekkäisiä, objektien konteksti on määrittelemätön, joten jos sinulla on tausta, pienennä taustakerrosten järjestystä.

Kun olet valinnut "MainCamera", aseta renderöinnin tekstuuri kohtaan "Target texture". Tämä aiheuttaa piirustuksen piirtämisen renderöintitekstuuriin.

Poista Äänen kuuntelija -komponentin asetuksena MainCamera. Tarvitset renderöintitekstuuriin vain piirtämisen, joten et tarvitse Audio Listeneriä. Varoitus näytetään, jos suorituksen aikana on useita "äänen kuuntelijoita".

Muuten, jos suoritat renderöinnin tekstuurin kohtauksen tässä tilassa, näytöllä ei näy mitään. Tämä johtuu siitä, että piirrät renderöintipintakuvioon. Jos haluat tarkistaa sen näytöltä, poista "kohderakenne" ja suorita se sitten.

Tasojen asetukset

Tässä näytteessä sinun on siirrettävä kaksi kohtausta samanaikaisesti, mutta jos siirrät niitä sellaisenaan, renderöintitekstuuriin piirrettävä sisältö näkyy myös päänäytössä, joten tasoja ei piirretä erikseen.

Valitse ensin "Muokkaa tasoa" editorin oikeassa yläkulmassa olevasta tasosta.

Nimi ja sijainti ovat mielivaltaisia, mutta tähän lisätään uusi RenderTarget kerros nimeltä .

Kun olet lisännyt tason, avaa hahmonnuksen tekstuurin kohtaus, valitse kaikki piirrettävät objektit ja muuta tason arvoksi juuri luomasi RenderTarget .

SampleSceneTexture Tämä lopettaa kohtauksen muokkaamisen, joten tallenna se.

Renderöintipintakuvioiden näyttäminen

SampleScene Kun olet avannut näkymän, lisää se hierarkiaan SampleSceneTexture vetämällä ja pudottamalla näkymää. Sitten hierarkiassa pitäisi olla kaksi kohtausta, ja kohtauksen sisällön tulisi näkyä SampleSceneTexture näytöllä.

SampleSceneTexture Näkymän sisältö on häiritsevä, joten napsauta näkymän silmäkuvaketta hierarkiassa SampleSceneTexture . SampleSceneTexture Tämä piilottaa näkymän objektit ja vain kohtauksen SampleScene sisältö on näkyvissä. Muuten, koska kaikki renderöinnin tekstuuriasetukset on suoritettu,SampleScene renderöintitekstuurin sisältö tulisi näyttää kohtaukseen sijoitetussa raakakuvassa.

Piilotus silmän vieressä -kuvake on kuitenkin vain asetus, joka tekee siitä näkymättömän editorissa, joten jos suoritat SampleSceneTexture pelin sellaisenaan, kohtauksen sisältö näkyy myös näytöllä. SampleScene Valitse sitten Kohtaus Main Camera ja poista valinta Teurastusmaskista RenderTarget inspektorissaCamera. Tämä estää tason objektien näyttämisen RenderTarget pelin aikana.

Yritä suorittaa peli. Sen pitäisi näkyä tarkoitetulla tavalla.

Kokeile siirtää hahmonnuksen tekstuuria

Tässä tilassa on kuitenkin vaikea tietää, toimiiko se todella renderöintitekstuurina vai näyttääkö se vain kuvan rajauksena, joten siirretään sitä.

Sisältö voi olla mikä tahansa, mutta tässä asetamme liikkeen kiertämään spritea automaattisesti. SelfRotate Luo komentosarja ja luo se nimellä .

Tähän sisällytämme yksinkertaisen prosessin, jossa pyöritetään itseään vähitellen.

using UnityEngine;

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

Kun olet luonut komentosarjan, liitä yhä enemmän objektiin, jota haluat kiertää.

Suorita sitten peli ja katso, pyöriikö se. Luulen, että näet, että objekti liikkuu renderöintirakenteessa.

Kuinka siirtää useita kohtauksia samanaikaisesti

Tässä loimme yksinkertaisen esimerkin, jotta meillä on kaksi kohtausta käynnissä alusta alkaen, mutta todellisessa pelissä on monia tapauksia, joissa sinun on aloitettava yhdellä kohtauksella. Siinä tapauksessa luulen, että sinun on lisättävä dynaamisesti kohtauksia kohtauksen alkuun, jotta siitä tulee useita kohtauksia.

Katso kohdasta "Kohtauksen lisääminen" kuvaus kohtauksen lisäämisestä. Periaatteessa soittamisen SceneManager.LoadScene("<シーン名>", LoadSceneMode.Additive); pitäisi ratkaista suurin osa ongelmista.

Kuinka estää hahmonnustekstuurin sisällön näkyminen päänäytössä ilman tasoja

Hahmonnuksen pintakuvion sisältö näkyy päänäytössä, koska päänäkymä ja hahmonnuksen tekstuurinäkymä ovat samassa paikassa. Jos siis siirrät hahmonnuksen tekstuurin sisällön paikkaan, jota ei koskaan näytetä päänäkymässä, sitä ei näytetä päänäytössä. Voit esimerkiksi siirtää hahmonnuspintakuvio-objektin tai kameran sijaintiin (-10000, -10000). Näin tasoasetukset ovat tarpeettomia.

Kun haluat viimeistellä hahmonnetun tekstuurin sisällön yhdessä kohtauksessa jakamatta sitä eri kohtauksiin

Tämä tehdään samalla tekniikalla kuin edellinen menetelmä ilman kerroksia. Voit siirtää hahmonnetun tekstuurin näyttämän sisällön paikkaan, jossa sitä ei koskaan näytetä pääkamerassa. Ero kohtausten erottamismenetelmästä on, että sinun on sijoitettava kaksi kameraa, mutta muuten sinulla on periaatteessa samat asetukset kuin kohtausten erottamismenetelmällä.

Jos haluat kaapata 3D-pelin eri perspektiivistä kuvattua sisältöä hahmonnustekstuurina

Tämä vinkki ei puhunut paljon 3D: stä, koska se keskittyi 2D: hen, mutta lähestymistapa on periaatteessa sama. Koska heijastat yhtä 3D-tilaa useista perspektiiveistä, sinulla ei tarvitse olla enempää kuin kaksi näkymää. Sinun tarvitsee vain sijoittaa niin monta kameraa kuin tarvitset, asettaa piirtokohde renderöintitekstuuriksi ja määrittää, missä renderöintirakenne näytetään.