当前位置: 首页 > news >正文

R2D安装wordpress深圳百度seo优化

R2D安装wordpress,深圳百度seo优化,微小店网站建设哪家好,网站建设 部署与发布考试答案前提 继承MonoBehaviour的脚本不能new继承MonoBehaviour的脚本一定得依附在GameObject上 实现挂载式的单例模式基类 挂载式 继承Mono的单例模式基类 /// <summary> /// 挂载式 继承Mono的单例模式基类 /// </summary> /// <typeparam name"T">&…

前提

  1. 继承MonoBehaviour的脚本不能new
  2. 继承MonoBehaviour的脚本一定得依附在GameObject上

实现挂载式的单例模式基类

挂载式 继承Mono的单例模式基类


/// <summary>
/// 挂载式 继承Mono的单例模式基类
/// </summary>
/// <typeparam name="T"></typeparam>
public class SingletonMono<T>: MonoBehaviour where T:MonoBehaviour
{private static T instance;public static T Instance{get{return instance;}}// 子类可能要重写Awake函数,所以设置为虚函数protected virtual void Awake(){instance = this as T;}
}

TestMgr2继承单例模式的基类,然后把脚本挂在到游戏对象上去,才能在Awake赋值


public class TestMgr2 : SingletonMono<TestMgr2>
{private int i;protected override void Awake(){// 重写Awake时候,这里不能省略base.Awake();i = 0;}public void TestLog(){print("TestMgr2" + i);}}

测试

public class Main : MonoBehaviour
{private void Start(){TestMgr2.Instance.TestLog();}}

缺点

因为很容易被破坏单例模式的唯一性
1.挂载多个脚本
2.切换场景回来时,由于场景放置了挂载脚本的对象,回到该场景时 又会有一个该单例模式对象
3.还可以通过代码动态的添加多个该脚本 也会破坏唯一性

修改Awake


/// <summary>
/// 挂载式 继承Mono的单例模式基类
/// </summary>
/// <typeparam name="T"></typeparam>
public class SingletonMono<T>: MonoBehaviour where T:MonoBehaviour
{private static T instance;public static T Instance{get{return instance;}}// 子类可能要重写Awake函数,所以设置为虚函数protected virtual void Awake(){//已经存在一个对应的单例模式对象了 不需要在有一个了if(instance != null){Destroy(this);return;}instance = this as T;//我们挂载继承该单例模式基类的脚本后 依附的对象过场景时就不会被移除了//就可以保证在游戏的整个生命周期中都存在 DontDestroyOnLoad(this.gameObject);}
}

实现自动挂载式的单例模式基类

创建单例模式基类SingletonAutoMono,实现动态挂载脚本


/// <summary>
/// 自动挂载式的 继承Mono的单例模式基类
/// 推荐使用 
/// 无需手动挂载 无需动态添加 无需关心切场景带来的问题
/// </summary>
/// <typeparam name="T"></typeparam>
public class SingletonAutoMono<T> : MonoBehaviour where T:MonoBehaviour
{private static T instance;public static T Instance{get{if(instance == null){//动态创建 动态挂载//在场景上创建空物体GameObject obj = new GameObject();//得到T脚本的类名 为对象改名 这样再编辑器中可以明确的看到该//单例模式脚本对象依附的GameObjectobj.name = typeof(T).ToString();//动态挂载对应的 单例模式脚本instance = obj.AddComponent<T>();//过场景时不移除对象 保证它在整个游戏生命周期中都存在DontDestroyOnLoad(obj);}return instance;}}}

Test2Mgr2继承单例模式基类

public class Test2Mgr2 : SingletonAutoMono<Test2Mgr2>
{public void TestLog(){print("Test2Mgr2");}
}

测试

public class Main : MonoBehaviour
{private void Start(){Test2Mgr2.Instance.TestLog();}}

潜在的安全问题

  1. 构造函数问题:
    继承MonoBehaviour的函数,不能new,所以不用担心公共构造函数
  2. 多线程问题:
    Unity主线程中相关内容,不允许其他线程直接调用,很少有这样的需求,所以也不用太担心
  3. 重复挂载问题:
    1. 手动重复挂载
    2. 代码重复添加

需要人为干涉,定规则,或者通过代码逻辑强制处理

http://www.tj-hxxt.cn/news/69802.html

相关文章:

  • 用js做自适应网站百度手机助手应用商店下载
  • 锦州市城乡建设委员会官方网站阿里指数app下载
  • 贵州网站制作设计公司哪家好市场调研报告范文模板
  • 捕鱼网站怎么做seo运营专员
  • 门户网站功能模块深圳百度推广竞价托管
  • 做链接的网站网上广告宣传怎么做
  • 做网做网站建设网址查询网站
  • 西安专业做网站建设上海网站建设公司
  • 网站建设公司价应用商店下载
  • 做网站和做新媒体运营小说网站排名人气
  • asp网站只能打开首页单页关键词优化费用
  • 思帽西宁网站建设泰州seo
  • 怎么做代理人金沙网站合肥优化
  • 网站建设面试自我介绍网站关键词如何快速上首页
  • 织梦做电子商务网站制作网站要多少费用
  • 关于小城镇建设的网站推广业务
  • 上海纽约大学官网 wordpress日喀则网站seo
  • 网站建设 课程 说明seo技术培训教程视频
  • 1m宽带做网站企业做推广有用吗
  • 网站SEO做点提升流量象客被公司优化掉是什么意思
  • 潍坊网站空间seo网站推广收费
  • 建设网站需要哪些编程磁力天堂最佳搜索引擎入口
  • 西安企业模板网站建设网络营销成功案例3篇
  • 网站开发流程的认识杭州排名优化公司电话
  • 免费个人博客建站免费发布信息网
  • 做网站还得备案长沙互联网推广公司
  • 网站建设怎么记账关键词点击优化工具
  • 怎么自己做淘宝网站十大经典事件营销案例分析
  • 设计软件网站制作网站建设广告投放方案
  • wordpress多站点建站淘宝关键词优化工具