logo

Izpratne par saliekamajām konstrukcijām un instantiāciju

Rakstzīmju vai objektu instantiēšana un iznīcināšana ir ļoti izplatīta parādība jebkurā spēlē. Instantiācija nozīmē objekta pastāvēšanu. Spēles laikā parādās vai rodas objekti, ienaidnieki mirst, GUI elementi pazūd un ainas tiek ielādētas visu laiku spēlē.

Saliekamie elementi ir ļoti noderīgi, ja izpildes laikā vēlaties izveidot sarežģītus GameObjects vai GameObjects kolekciju. Salīdzinot ar GameObjects izveidi no jauna, izmantojot kodu, saliekamo elementu inscenēšana, izmantojot kodu, ir labāka, un tai ir daudz priekšrocību.

Sapratīsim, kas ir saliekamās konstrukcijas; jo saliekamie elementi tiek uzskatīti par svarīgiem, lai saprastu, kā Unity darbojas instanču veidošana.

Saliekamās detaļas ir kā GameObject rasējumi. Tāpēc mēs varam teikt, ka saliekamie elementi ir GameObject kopija, ko var dublēt un ievietot ainā, pat ja tas nepastāvēja ainas veidošanas laikā; citiem vārdiem sakot, saliekamās detaļas var izmantot, lai dinamiski ģenerētu GameObjects.

Izveidosim saliekamo konstrukciju; Lai to izdarītu, jums ir jāievelk vēlamais GameObject no savas ainas hierarhijas uz projektu Assets.

Izpratne par saliekamajām konstrukcijām un instantiāciju

Tagad, lai radītu GameObject, mēs savā skriptā izsaucam Instantiate() metodi. Šī metode ir pieejama MonoBehaviour, kā parametru izmanto GameObject, lai tā zinātu, kuru GameObject izveidot vai dublēt. Tam ir arī dažādas ignorēšanas iespējas, lai mainītu tikko instantificētā objekta transformāciju, kā arī vecāku iestatījumus.

Tagad izveidojiet jaunu skriptu ar nosaukumu Instantiator.cs un kopējiet tajā tālāk norādīto kodu.

 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Instantiator : MonoBehaviour { public GameObject Diamond; // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { Instantiate(Diamond); } } } 

Iepriekš minētajā programmā mēs izmantojām ievades klases metodi GetKeyDown, lai pārbaudītu, vai atskaņotājs pēdējā kadra laikā nospieda noteiktu pogu. Metode GetKeyDown() atgriež vērtību True, ja šajā rāmī tiek nospiesta atslēga, kas norādīta KeyCode enum (kas tiek izmantota, lai uzskaitītu visus iespējamos taustiņus standarta tastatūrā).

Saglabājiet skriptu. Un tagad izveidojiet tukšu GameObject, ar peles labo pogu noklikšķinot uz ainas cilnē Hierarhija.

Izpratne par saliekamajām konstrukcijām un instantiāciju

Pievienojiet šo skripta failu (Instantiator.cs) jaunizveidotajam GameObject komponentam no cilnes Inspektors.

Tagad mūsu izveidotajā rūpnīcā Diamond mainīgajā velciet.

Izpratne par saliekamajām konstrukcijām un instantiāciju

Kad palaižat spēli tagad, nospiežot atstarpes taustiņu, tiks izveidots jauns dimanta objekts, kas ir identisks tam, ko izmantojām, lai izveidotu saliekamo konstrukciju. Jūs varat redzēt, ka katrs dimants ir izveidots objektu hierarhijā. Iemesls, kāpēc jūs neredzat tos spēlē, ir tas, ka pagaidām tie visi tiek veidoti tieši viens pār otru. Taču to var pārbaudīt cilnē Hierarhija. Katru reizi, nospiežot atstarpes taustiņu, tas cilnē tiks parādīts kā dimants (klons).

Izpratne par saliekamajām konstrukcijām un instantiāciju