Unity_挂载类型的单例模式避免重复问题

小鸟游星野
小鸟游星野
发布于 2025-03-08 / 10 阅读
0
0

Unity_挂载类型的单例模式避免重复问题

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[DisallowMultipleComponent]
public class 挂载式的单例<T> : MonoBehaviour where T : MonoBehaviour
{
    private static T instance;

    public static T Instance => instance;

/// <summary>
/// 解释 每一个脚本被放置到对象上去的时候就会去执行Awake函数
/// 因为instance是静态的,早已存在于内存之中,所以每当awake执行的时候就会把自己实例化并且将自身的地址传给
/// instance导致会造成性能上的浪费,所以我们让除了第一个的其余脚本自我删除
/// </summary>
    private void Awake()
    {
        if (instance != null)
        {
            Destroy(this);
            return;
        }

        instance = this as T;
        DontDestroyOnLoad(this.gameObject);
        
    }
}


评论