unity3d 单例模式

本文介绍如何在Unity3D中实现单例模式,并通过GameManager类实例展示单例模式的使用方法。同时探讨了单例模式对于提高代码重用性和简化调用方式的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个模式不一定 符合单例模式的意思,因为我是菜鸟,在实践中摸索前进。
unity3d 脚步之间相互调用的话,一开始写的时候是获取到那个script,
getcompenont<"script">().Do()
Do() 是个方法。
现在 用 单例模式的话 就会简单一些,具体性能和运算量 我不知道。

public class GameManager:MonoBehaviour
{
        public static GameManager instance;
        void Awake()
        {
        instance= this;
        }
        public void Do()
        {
        Debug.Log("单例模式");
        }
}
public class Singleton :MonoBehaviour
{
        void Start()
        {
        GameManager.instance.Do();
        }
}

上面写的每个类都需要些一个Awake(), 代码重用,进行整理一下。

public class Singleton<T> : IInstance where T : IInstance, new()
{
    private static T instance;

    public static T Instance
    {
        get {
            if (instance == null)
            {
                instance = new T();
                instance.OnInstance();
            }
            return instance;
        }
    }

    public virtual void OnInstance()    
    {

    }
}

public interface IInstance {
    /// <summary>
    /// 使用前 初始化数据
    /// </summary>
    void OnInstance();
}




public class GameManager:Singleton<GameManager> 
{
    ...........
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值