首页 > 其他分享 >Unity框架:JKFrame2.0学习笔记(二)——Singleton单例模式

Unity框架:JKFrame2.0学习笔记(二)——Singleton单例模式

时间:2023-04-08 23:33:48浏览次数:41  
标签:Singleton JKFrame2.0 SingletonMono Instance Unity 单例 基类 public

Singleton

单例模式的基类,不用mono的类可以直接继承

源码

namespace JKFrame
{
    /// <summary>
    /// 单例模式的基类
    /// </summary>
    public abstract class Singleton<T> where T : Singleton<T>, new()
    {
        private static T instance;

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

}

如何使用

例如我新建脚本 AnimalController.cs

using JKFrame;
using UnityEngine;

public class AnimalController:Singleton<AnimalController>
{
    public void Bark()
    {
        Debug.Log("狗叫!");
    }
}

调用

AnimalController.Instance.Bark();

SingletonMono

单例模式的基类,用mono的类可以直接继承

源码

using UnityEngine;

namespace JKFrame
{
    public abstract class SingletonMono<T> : MonoBehaviour where T : SingletonMono<T>
    {
        public static T Instance;
        protected virtual void Awake()
        {
            if (Instance == null)
            {
                Instance = this as T;
            }
        }
    }
}

如何使用

例如我新建脚本 AnimalController2.cs,这个脚本是继承了MonoBehaviour的,是可以挂载的

using JKFrame;
using UnityEngine;

public class AnimalController2:SingletonMono<AnimalController2>
{
    public void Bark()
    {
        Debug.Log("狗叫!");
    }
}

调用

AnimalController2.Instance.Bark();

总结

主要就是做了2个单例系统的基类,可以用来继承,看到底是用不用MonoBehaviour。

标签:Singleton,JKFrame2.0,SingletonMono,Instance,Unity,单例,基类,public
From: https://blog.51cto.com/u_16023649/6177944

相关文章

  • wpf CommunityToolkit.Mvvm8.1 MVVM工具包安装引用指南
    CommunityToolkit.Mvvm包(又名MVVM工具包,以前名为Microsoft.Toolkit.Mvvm)是一个现代、快速且模块化的MVVM库。它支持:.NETStandard2.0、.NETStandard2.1和.NET6(UIFramework不支持) 文档地址:https://learn.microsoft.com/zh-cn/dotnet/communitytoolkit/mvvm/......
  • Unity-浏览360图片
    1、导入360全景图,去掉GenerateMipMaps的勾选,防止出现接缝线。2、新建Sphere样式的空对象,坐标与Camera相同3、Camera的ClearFlags设置为:SolidColor4、新建材质球 Shader选择 Skybox/Panormic5、把全景附给材质球,再把材质球托给Sphere的空对象6、相机做一个自......
  • Unity Shader之自定义GUI
    可参考:https://zhuanlan.zhihu.com/p/384871087效果如下:转载请注明出处:https://www.cnblogs.com/jietian331/p/17296261.html......
  • unity xorpay使用HTTP中post方式请求调用接口
    结合:https://www.cnblogs.com/guangzhiruijie/p/16985533.htmlunity自带的UnityWebRequest提供了构成HTTP请求和处理HTTP响应。构造函数:publicUnityWebRequest();publicUnityWebRequest(Uriuri);publicUnityWebRequest(stringurl);publicUnityWebRequest(Uriuri,......
  • UnityWebRequest-与后台数据传输Get/Post请求
    现在越来越多的项目都要用到登录、成绩上传等功能,涉及到Unity与后台接口之前调用与发送,下面着重介绍Unity自带的Http请求,包含Get/Post请求(表单、json、有头文件的请求。)一、Get请求直接填入接口地址,即可接收后台返回的json数据,新手在这里可能有点懵,不知道接口是什么意思,这里接口......
  • Unity Editor 编辑器开发全通关
     https://github.com/XINCGer/UnityToolchainsTrick    https://zhuanlan.zhihu.com/p/503154643......
  • 如何在unity中手写一个四叉树地形lod系统(二)
    在根据四叉树节点创建了1365个地形分块网格并保存到本地后,我们接下来要在游戏运行的过程中动态地显示所需的网格,这是最关键的一步。如何根据摄像机位置动态地选择地形块?这其中体现了由整体到局部,从简单到复杂的原则。0、我们首先创建三个缓存列表。1、我们先......
  • Unity开发Hololens2—环境配置
    Unity开发Hololens2—环境配置配置如下:win11专业版Unity2018.4.26f1Hololens2VS2019参考链接:1、(https://blog.csdn.net/qq_38190562/article/details/116028371)2、(https://blog.csdn.net/zhangxiao13627093203/article/details/117038433)3、(https://blog.csd......
  • unity四叉树地形
    在unity中,我们可以使用unity自带的地形系统创建一个超大的地形场景,并且可以利用地形图层,创建出富有真实感的地表材质。但是当我们需要更改地形的渲染方式的时候,比如需要风格化渲染时,使用unity自带的地形系统就会很麻烦。因此,我尝试在unity中使用mesh的方式实现了一个简易的地形系......
  • Unity-NaughtAttributes
    SpecialAttributesAllowNestingStruct需要嵌套时使用DrawerAttributesAnimator显示下拉参数publicAnimatorsomeAnimator;[AnimatorParam("someAnimator")]publicintparamHash;Button直接执行函数[Button("ButtonText")]privatevoidMethodTwo(){}Ani......