美文网首页Unity
2020-10-23 Unity 两个特别好用的单例脚本

2020-10-23 Unity 两个特别好用的单例脚本

作者: VECTOR_Y | 来源:发表于2020-10-23 11:45 被阅读0次

单例模式在我们开发中使用频率非常的高,这两个脚本省略了我们手写单例的过程,非常好用

基于MonoBehaviour的单例,会创建实体,适合用于有对Unity原生有调用的脚本

using UnityEngine;

/// <summary>
/// 需要创建实体的单例对象,例如声音控制类等
/// </summary>
public class SingletonObject<T>  : MonoBehaviour where T:SingletonObject<T> {

    private static T _instance = null;

    private static readonly object syslock = new object();

    public static T Ins
    {
        get
        {
            if (_instance == null)
            {
                lock (syslock)
                {
                    if (_instance == null)
                    {
                        GameObject obj = new GameObject(typeof(T).Name,typeof(T));
                        _instance = obj.GetComponent<T>();
                         DontDestroyOnLoad(obj);
                        _instance.Spawn();
                    }
                }
            }
            return _instance;
        }
    }

    /// <summary>
    /// 初始化完成
    /// </summary>
    protected  virtual void Spawn()
    {
    }
}

普通单例

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

/// <summary>
/// 单例基类
/// </summary>
public class BaseClass<T> where T : class, new()
{
    private static T _instance;

    private static readonly object syslock = new object();

    public static T Ins
    {
        get
        {
            if (_instance == null)
            {
                //lock关键字用来确保代码块完成运行,避免多线程操作的时候出现问题
                lock (syslock)
                {

                    if (_instance == null)
                    {
                        _instance = new T();
                    }
                }
            }
            return _instance;
        }
    }
}

相关文章

  • 2020-10-23 Unity 两个特别好用的单例脚本

    单例模式在我们开发中使用频率非常的高,这两个脚本省略了我们手写单例的过程,非常好用 基于MonoBehaviour...

  • Android Studio 集成Unity 工程并相互调用

    新建Unity工程 unity泛型单例脚本 SingletonUnity.cs 调用Java脚本 MobPlugi...

  • 单例

    1.MonoBehavior单例 其实在unity中,如果脚本是继承monobehavior,那么使用起单例来更加...

  • GoogleVR插件简介

    Unity插件包包含以下内容:脚本· Cardboard.cs -本地代码虚拟现实设备的单例模式连...

  • Unity3D-单例类Instance

    今天介绍Unity中所有使用的单例类 万能单例类 雨落随风提供单例类

  • 单例-unity

    或者定义属性Instance访问

  • Unity单例

    在游戏场景切换或者实例化代码中,我们不希望某一代码或者类在此场景中多次出现,从而导致数据的混乱或者调用混淆。另一种...

  • Unity 游戏框架搭建 2019 (四十六) 简易消息机制

    在上一篇,我们接触了单例,使用单例解决了我们脚本之间访问的问题。 脚本之间访问其实有更好的方式。 我们先分下脚本访...

  • C# 单例

    Unity 单例模式[https://www.jianshu.com/p/97e4758ff4b4] 单例模式在开...

  • Unity基础-脚本生命周期

    1.Unity脚本 和 C#脚本区别? unity脚本继承自MonoBehavior。 unity脚本不能new。...

网友评论

    本文标题:2020-10-23 Unity 两个特别好用的单例脚本

    本文链接:https://www.haomeiwen.com/subject/sbhvmktx.html