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

网站建设包含域名怎么做淘宝客网站赚钱吗

网站建设包含域名,怎么做淘宝客网站赚钱吗,邢台seo公司,简单风景网站模版前言: Unity作为一款强大的游戏开发引擎,其基础框架的设计对于项目的结构和性能有着重要的影响。其中,单例模式是一种常用的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。 什么是单例模式&#xff1f…

前言:

Unity作为一款强大的游戏开发引擎,其基础框架的设计对于项目的结构和性能有着重要的影响。其中,单例模式是一种常用的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。

什么是单例模式?

单例模式是一种创建型设计模式,其目的是确保一个类只有一个实例,并提供一个全局访问点。在Unity中,单例模式常用于管理全局数据、游戏状态或者资源管理。通过单例模式,我们可以在整个应用程序中方便地访问特定的对象。

一、Unity中的单例模式实现(不继承Mono的)

1. 创建Singleton

         首先,我们需要创建一个BaseSingleton类,该类负责管理单例实例的创建和访问。以下是一个简单的BaseSingleton类示例:

//单例模式基类,泛型约束为:存在无参构造函数,非抽象类
//为什么约束,因为使用了instance = new T();
public class BaseSingleton<T> where T:new()
{private static T instance;//保护构造函数,保证单例只能在内部创建protected BaseSingleton() { }public static T Instance{get{if (instance == null){instance = new T();}return instance;}}
}

2. 应用到Unity中的管理器

      假设我们要创建一个GameManager作为全局的游戏管理器。我们可以通过继承BaseSingleton类来实现GameManager的单例模式:

public class GameManager : BaseSingleton<GameManager>
{// 在这里定义GameManager的其他属性和方法public void StartGame(){}}

3. 在其他类中访问单例

   现在,我们可以在其他类中轻松地访问GameManager的单例实例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Test : MonoBehaviour
{void Start(){// 通过GameManager.Instance访问GameManager的单例实例GameManger.Instance.StartGame();//StartGame()是在GameManager类里定义的一个方法}}

通过这种方式,我们可以方便地管理全局的游戏状态,而无需担心多个实例的创建。

二、Unity中的单例模式实现(继承Mono的)

在Unity中,经常会使用MonoBehaviour作为游戏对象的脚本组件,会需要使用MonoBehaviour的相关方法。因此将单例模式与MonoBehaviour结合可以更好地适应游戏开发的需求。

1. 创建Singleton类

以下是一个继承MonoBehaviour的单例模式基类的实现:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SingletonMono<T> : MonoBehaviour where T : MonoBehaviour
{private static T instance;public static T Instance{get{instance = FindObjectOfType<T>();///判断场景中存不存在 该T 类型的的实例,如果不存在 则在场景中创建一个空物体,并加上该T组件if (instance == null){GameObject singletonObject = new GameObject(typeof(T).Name + "_Singleton");singletonObject.AddComponent<T>();DontDestroyOnLoad(singletonObject);}return instance;}}//使用virtual虚函数,子类继承可能还需要用Awake()protected virtual void Awake(){// 确保在场景切换时不会销毁该实例DontDestroyOnLoad(gameObject);// 检查是否存在重复的实例if (instance == null){instance = this as T;}else{Debug.LogWarning("存在重复的单例" + typeof(T).Name + "删除");Destroy(gameObject);}}
}

2. 应用到Unity中的管理器


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManger : SingletonMono<GameManger>
{// 在这里定义GameManager的其他属性和方法public void StartGame(){Debug.LogError("调用单例!");}}

3. 在其他类中访问单例

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Test : MonoBehaviour
{void Start(){// 通过GameManager.Instance访问GameManager的单例实例GameManger.Instance.StartGame();//StartGame()是在GameManager类里定义的一个方法}}

4.运行效果

 当调用该单例中StartGame方法时, 先创建了一个GameManger_Singleton物体并挂载了 GameManger组件 如下图:

执行顺序如上图, 1 创建空物体,2 挂载组件 3 执行方法

总结

单例模式是Unity中常用的设计模式之一,特别适用于需要全局访问点的情况。通过创建一个Singleton类,我们可以轻松地将其应用到不同的管理器或者全局性的对象中,提高代码的可维护性和灵活性。在实际项目中,根据具体需求可以对单例模式进行扩展和优化。

Unity自定义框架开发-CSDN博客

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

相关文章:

  • ps做网站网页好吗自己能建网站吗
  • 做空包网站html编辑器怎么导入图片
  • 苏州市建设局招标网站首页最火网页游戏
  • 摄影网站建设需求分析长清网站建设费用
  • 静态手机网站广州网站建设培训
  • 一个网站上线的时间网站建设的元素
  • 推广网站和品牌网站的区别centos7 wordpress 安装
  • 企业网站手机端网站维护管理
  • 常见的网络营销方式seo一个空间建多个网站
  • 商标查询官方入口长沙优化科技
  • 河南住房和城乡建设厅门户网站潍坊个人做网站的公司
  • 多语言网站多域名推广泰安vx
  • 南山网站设计多少钱给人做传销网站
  • 淘宝网怎样做网站做网站销售有前景
  • 手机网站需要域名吗成都成立公司
  • 如何做网页游戏网站丰台网站建设推广
  • 国际站关键词推广北京市建设工程交易信息网官网
  • 曲靖市网站建设c语言做网站后端
  • 网页设计的网站配色方案初中做语文综合题的网站
  • 咸阳企业网站建设wordpress主题什么意思
  • 公司网站建设南宁深圳全网推广营销怎么做
  • 海外购物网站上填手机号码怎么做南宁求介绍seo软件
  • 外贸网站演示图片幻灯片插件 wordpress
  • 网站开发的技术类型有哪些品牌推广公司
  • 网站建设项目实训报告网站数据库建设
  • 公司网站打开很慢电子商务都包括什么
  • 做视频网站 版权怎么解决企业网络搭建书籍
  • 苏州网站建设自助建站模板遵义你想网
  • 学做淘宝网站是骗子吗西安建设工程网上交易平台
  • 网站规划的注意事项网站建设企划书