Untuk menjalankan kode kustom ketika Unity menyusut sceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary baru dari template, membuat skrip Pipa Template Adegan dan menghubungkannya ke template. Setiap kali Anda membuat adegan baru dari template, Unity membuat instance baru dari skrip pipa juga.
Untuk menghubungkan script ke template:
Anda juga dapat menggunakan metode SceneTemplateAsset.templatePipeline
untuk menghubungkan script ke template melalui C#.
Skrip Pipa Templat Adegan harus berasal dari antarmuka [ISceneTemplatePipeline
] atau [SceneTemplatePipelineAdapter
]. Ini harus menerapkan acara yang ingin Anda bereaksi; misalnya, BeforeTemplateInstantiation
atau AfterTemplateInstantiation
dalam kode di bawah ini.
Example:
using UnityEditor.SceneTemplate;
using UnityEngine;
using UnityEngine.SceneManagement;
public class DummySceneTemplatePipeline : ISceneTemplatePipeline
{
public void BeforeTemplateInstantiation(SceneTemplateAsset sceneTemplateAsset, bool isAdditive, string sceneName)
{
if (sceneTemplateAsset)
{
Debug.Log($"Before Template Pipeline {sceneTemplateAsset.name} isAdditive: {isAdditive} sceneName: {sceneName}");
}
}
public void AfterTemplateInstantiation(SceneTemplateAsset sceneTemplateAsset, Scene scene, bool isAdditive, string sceneName)
{
if (sceneTemplateAsset)
{
Debug.Log($"After Template Pipeline {sceneTemplateAsset.name} scene: {scene} isAdditive: {isAdditive} sceneName: {sceneName}");
}
}
}
Ketika Anda membuat adegan baru dari templat dengan ketergantungan yang cerdik, Unity melakukan beberapa operasi file. Sebagian besar operasi ini memicu peristiwa Unity yang dapat Anda dengarkan, dan bereaksi terhadap, di scriptsSepotong kode yang memungkinkan Anda untuk membuat Komponen Anda sendiri, memicu peristiwa permainan, memodifikasi sifat komponen dari waktu ke waktu dan menanggapi input pengguna dengan cara apa pun yang Anda sukai. More info
Lihat di Glossary.
Urutan seketika adalah sebagai berikut:
Unity memicu acara ISceneTemplatePipeline.BeforeTemplateInstantiation
untuk aset template, dan mengikat aset untuk skrip ISceneTemplatePipeline
yang memicu.
Unity memicu acara SceneTemplate.NewTemplateInstantiating
.
Unity menciptakan adegan baru yang merupakan salinan adegan template.
Unity membuat folder dengan nama yang sama dengan adegan baru, dan menyalin semua ketergantungan yang rentan ke dalam folder itu.
EditorSceneManager.sceneOpening
MonoBehavior.OnValidate
(pada semua GameObjects yang mengimplementasikannya)EditorSceneManager.sceneOpened
Unity remaps mengacu pada semua aset yang rentan, sehingga adegan baru poin ke kones.
Unity memicu ISceneTemplatePipeline.AfterTemplateInstantiation
untuk aset template, dan mengikat aset ke skrip ISceneTemplatePipeline
yang memicu.
Unity memicu acara SceneTemplate.NewTemplateInstantiated
.