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

网站免费在线观看网络营销技巧和营销方法

网站免费在线观看,网络营销技巧和营销方法,手机网站的内容模块,利用google地图标注做网站目录 一、常规单例 二、Unity单例 1. MonoBehaviour单例 2.Simple单例 一、常规单例 常规的单例模式是指在普通类中实现单例模式的方式,而不依赖于任何框架或引擎。这种单例模式在许多编程语言中都非常常见,其主要特点是: 单例类有一个私…

目录

一、常规单例

二、Unity单例

1. MonoBehaviour单例

2.Simple单例


一、常规单例

        常规的单例模式是指在普通类中实现单例模式的方式,而不依赖于任何框架或引擎。这种单例模式在许多编程语言中都非常常见,其主要特点是:

  1. 单例类有一个私有的静态变量来保存唯一实例
  2. 提供一个公有的静态方法(通常是 Instance 方法)来获取唯一实例
  3. 将构造函数定义为私有,防止外部创建新的实例
public class Singleton
{// 用来保存唯一的实例private static Singleton instance = null;// 确保线程安全的锁对象private static readonly object lockObj = new object();// 私有构造函数,防止实例化private Singleton(){}// 获取唯一实例的公有静态方法public static Singleton Instance{get{// 双重检查锁定(double-checked locking)if (instance == null){lock (lockObj){if (instance == null){instance = new Singleton();}}}return instance;}}// 单例类中的方法示例public void DoSomething(){Console.WriteLine("Singleton instance is doing something.");}
}

二、Unity单例

1. MonoBehaviour单例

        适合在需要动态创建单例对象的场合,并能处理场景切换等复杂情况。

优点:

  1. 懒加载Instance属性只有在第一次访问时才会创建实例,这有助于减少不必要的开销。
  2. DontDestroyOnLoad:使用DontDestroyOnLoad保证实例在在场景切换时不被销毁。
  3. 防止重复创建单例:在销毁时设置mIsDestroying标记,防止对已销毁单例进行重复创建。

缺点:

  1. GameObject创建管理:它通过new GameObject().AddComponent<MonoBehaviourSingleton>()的方式创建实例,这在某些情况下过于灵活,可能导致难以管理和调试。
  2. 静态变量的潜在问题:如果游戏中对于对象销毁和创建的逻辑非常复杂,可能会因为静态变量状态互相干扰造成潜在的问题。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class MonoBehaviourSingleton : MonoBehaviour
{static bool mIsDestroying;               //判断销毁的静态变量static MonoBehaviourSingleton mInstance;public static MonoBehaviourSingleton Instance{get{if (mInstance == null){if (mIsDestroying){Debug.LogWarning("[MonoBehaviourSingleton] Instance '" + typeof(MonoBehaviourSingleton) +"' already destroyed. Returning null.");return null;     //如果已销毁则跳出,防止嵌套调用}mInstance = new GameObject("[MonoBehaviourSingleton]").AddComponent<MonoBehaviourSingleton>();DontDestroyOnLoad(mInstance.gameObject);  //创建实例并设置为DontDestroyOnLoad}return mInstance;}}public void Test(){Debug.Log("Test");}void OnDestroy(){mIsDestroying = true;  //销毁时将标记变量设置为true,防止对已销毁单例进行重复创建}
}

2.Simple单例

        更直观简单,但需要确保对象在场景中存在且被正确管理,不适合频繁切换场景的情况。

优点:

  1. 更容易管理:不用手动创建GameObject,更多依赖于Unity编辑器来管理单例对象的创建。
  2. 避免重复实例:通过比较instancethis,可以确保在同一场景中只存在一个实例。

缺点:

  1. 缺乏灵活性:不能像前一种方法那样灵活创建实例,必须确保在场景中包含该组件对应的对象。
  2. 潜在的实例丢失问题:如果SimpleSingleton对象不在初始场景中,可能会引发问题,如果有依赖该单例的其他代码在实例初始化之前执行,会出现空引用错误。
using UnityEngine;public class SimpleSingleton : MonoBehaviour
{private static SimpleSingleton instance;public static SimpleSingleton Instance{get{if (instance == null){Debug.LogError("Singleton instance has not been set. Make sure the singleton is properly instantiated.");}return instance;}}protected virtual void Awake(){if (instance == null){instance = this;DontDestroyOnLoad(gameObject);}else if (instance != this){Destroy(gameObject);}}public void Test(){Debug.Log("Test");}
}

http://www.dtcms.com/wzjs/44170.html

相关文章:

  • 网站开发与app开发网络营销策略实施的步骤
  • 如何用记事本做网站百度seo排名优化是什么
  • wordpress 主题采集seo网站推广助理
  • wordpress 访客ip网站优化公司
  • 山东今天新冠疫情最新消息百度优化教程
  • 设计图库关键词seo
  • 网站建设性能指标网站推广方案
  • 全网网站推广培训机构网站模板
  • 如何建造网站链接游戏推广赚佣金平台
  • 搭建公司网站的作用河北搜索引擎优化
  • 2020北京冬奥会网页制作南昌seo搜索优化
  • 怎样做网站刷qq会员永久seo研究中心倒闭
  • 网站后期的维护seo网站诊断价格
  • 上海最新新冠疫情通报搜索引擎优化解释
  • 如何建设简单小型网站seo入门基础知识
  • 番禺网站建设公司长沙企业seo服务
  • 政府网站建设管理总结安卓优化大师app下载安装
  • 天津网站建设流程seo网站有优化培训班吗
  • 1元免备案虚拟主机龙岩seo
  • 信阳做房产哪个网站好用关键词查询神器
  • 建设摩托车官方网站网站推广排名服务
  • 提供网站建设备案报价赚钱平台
  • 小程序可以做网站吗营销网站制作
  • 彩票网站建设dadi163郑州网络推广代理顾问
  • 做境外旅游的网站阿里大数据分析平台
  • 做网站一般要多少钱分销系统
  • 自己做投票网站怎么弄seo技术服务外包
  • 网站前台设计过程关键词查询工具哪个好
  • 做简单的动态网站教程网络营销广告
  • 福州网站建设外贸名词解释seo