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

做网站的电脑需要什么配置东莞网页制作设计培训

做网站的电脑需要什么配置,东莞网页制作设计培训,做网站好还是app好,绵阳商城网站建设Unity中单例模式是非常常用的写法,可以基于C#语言的几种不同方法来实现。 下面我将列出几种常见的实现方式: 1. 经典的单例模式 public class SingletonExample : MonoBehaviour {private static SingletonExample instance;public static SingletonEx…

Unity中单例模式是非常常用的写法,可以基于C#语言的几种不同方法来实现。
下面我将列出几种常见的实现方式:

1. 经典的单例模式

public class SingletonExample : MonoBehaviour
{private static SingletonExample instance;public static SingletonExample Instance{get{if (instance == null){instance = FindObjectOfType<SingletonExample>();if (instance == null){GameObject obj = new GameObject("SingletonExample");instance = obj.AddComponent<SingletonExample>();DontDestroyOnLoad(obj);}}return instance;}}private void Awake(){if (instance == null){instance = this;DontDestroyOnLoad(this.gameObject);}else if (instance != this){Destroy(gameObject);}}
}

优点:

  • 易于理解和实现。
  • 可以在Unity的场景中直接使用,提供了与Unity生命周期事件的结合。

缺点:

  • 不是完全的线程安全。在多线程环境下,可能会创建多个实例。
    如果没有在场景中找到实例,它会创建一个新的GameObject,这可能会导致意外的副作用。

2. 使用静态构造函数

public class SingletonExample
{private static readonly SingletonExample instance = new SingletonExample();static SingletonExample(){}private SingletonExample(){}public static SingletonExample Instance{get{return instance;}}
}

优点:

  • 实现简单,线程安全由CLR (公共语言运行时)保证。
  • 静态构造函数只会被执行一次,保证了实例的唯一性。

缺点:

  • 实例在程序运行时立即创建,无论是否使用,可能会导致资源的浪费。
    不适合在Unity场景对象中使用,因为它与MonoBehaviour断开了联系,不能直接应用到GameObject上。

3. 使用Lazy类型确保线程安全

using System;public class SingletonExample
{private static readonly Lazy<SingletonExample> lazy =new Lazy<SingletonExample>(() => new SingletonExample());public static SingletonExample Instance { get { return lazy.Value; } }private SingletonExample(){}
}

优点:

  • 实现简单,线程安全由CLR (公共语言运行时)保证。
  • 静态构造函数只会被执行一次,保证了实例的唯一性。

缺点:

  • 实例在程序运行时立即创建,无论是否使用,可能会导致资源的浪费。
    不适合在Unity场景对象中使用,因为它与MonoBehaviour断开了联系,不能直接应用到GameObject上。

4. 双重校验锁(Double-Check Locking)

public class SingletonExample
{private static SingletonExample instance;private static readonly object lockObject = new object();public static SingletonExample Instance{get{if (instance == null){lock (lockObject){if (instance == null){instance = new SingletonExample();}}}return instance;}}private SingletonExample(){}
}

优点:

  • 线程安全,并且在需要时才创建实例。
  • 相对于Lazy,在早期的.NET版本中也可以使用。

缺点:

  • 实现复杂,需要正确管理锁,否则可能会导致死锁。
  • 性能开销,每次访问实例时都需要进行双重检查。
  • 不直接与MonoBehaviour兼容,同样不适合直接应用于Unity场景中的对象。

总结:

在选择实现单例的方法时,应当考虑是否需要延迟初始化、是否在多线程环境中使用、以及是否需要与Unity的MonoBehaviour系统集成等因素。
在Unity中,经常使用第一种方法,因为它能够更好地与Unity的组件和生命周期集成。
不过,如果你在Unity项目中需要使用单例模式管理非MonoBehaviour类型的资源或类,例如数据管理或服务类,那么**第三种方法(Lazy)**是一个非常好的选择。

http://www.yayakq.cn/news/262964/

相关文章:

  • h5响应式网站开发本地集团网站建设
  • python做博客网站包头建设工程安全监督站网站
  • 临清网站建设服务做盗版网站的
  • 宁波象山网站建设动易网站 教程
  • 网页制作与网站建设广州网络营销策划方案15篇要求
  • 杭州企业网站建设公司怎么样门户网站建设 增强责任意识
  • 网站先做前端还是后端做网站植入广告赚钱
  • 怎么申请免费的网站空间找个免费的网站这么难吗
  • 宝山宜昌网站建设谷歌chrome安卓版
  • 怎样做网站软件wordpress付费观看
  • .net网站前端工作一年工资多少正常
  • 作风建设活动网站北京市工程建设交易中心网站
  • 网站的盈利方式win7优化大师官方网站
  • 现如今网站开发用什么框架爱奇艺推广联盟
  • 网站开发电话广告设计app
  • 论坛建立网站景点介绍网站模板
  • 专门做兼职的网站有哪些网站设计团队介绍
  • 国内免费可商用图片素材网站网站怎么做不违法
  • 公司网站公司网站学校网站首页模板
  • 自建网站注册域名很有必要本地的佛山网站建设
  • 东莞360推广的网站是谁做的做现货黄金的金融网站
  • 网站cms管理后台电话号码wordpress结合小程序
  • asp语言的网站建设ui设计师需要考什么证书
  • 网站设计欣赏移动单位写材料素材网站
  • 怎么浏览国外的设计网站家具flash网站模板下载
  • seo网站优化工具高端 网站开发
  • 如果是自已建设的网站_那你在数据库想改成什么时间都可以.优化系统软件
  • js企业网站模板永久免费手机建站
  • 外贸网站外链平台cms监控软件电脑版官方下载
  • 网站开发时ie11的兼容wordpress元关键词