DontDestroy.csUnity記事: 目次
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
using UnityEngine; /// <summary> /// /// Unity 2018.2.17f1 /// /// シーン遷移後も保持したいGameObjectにアタッチ /// /// </summary> public class DontDestroy : MonoBehaviour { // Singleton: シーン遷移で増殖しないようにする [SerializeField] private bool singleton = true; // Awake private void Awake() { // Singletonが有効な場合 if (singleton) { // タグが設定されていない場合は警告する if (tag == "Untagged") { Debug.LogWarning("Untagged", gameObject); return; } // 同じタグが設定されているオブジェクトを全て取得 GameObject[] sameTagObjects = GameObject.FindGameObjectsWithTag(tag); foreach (GameObject sameTagObject in sameTagObjects) { // タグと名前の両方が一致する他のオブジェクトがあった場合 if (sameTagObject != gameObject && sameTagObject.name == gameObject.name) { // 自爆 Destroy(gameObject); return; } } } } // Use this for initialization private void Start() { // シーン遷移後も保持 DontDestroyOnLoad(gameObject); } } |