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

有没有做游戏评测的网站网站模板安装

有没有做游戏评测的网站,网站模板安装,医疗网站建设新闻,网站开发seo要求前言 在Unity程序设计过程中#xff0c;我们处理的第一个对象是Application Instance。 它的主要职责是启动流程管理、卸载流程管理#xff0c;次要职责是管理在内部的子系统生命周期。其他职责#xff0c;提供或桥接应用程序的配置信息、及其他第三方接口。 它通常以单例的…前言 在Unity程序设计过程中我们处理的第一个对象是Application Instance。 它的主要职责是启动流程管理、卸载流程管理次要职责是管理在内部的子系统生命周期。其他职责提供或桥接应用程序的配置信息、及其他第三方接口。 它通常以单例的形式存在在场景中即使在切换场景时也不会被删除。 设计需求         可以自定义异步启动流程、或卸载流程App 自动完成子系统的初始化和卸载工作子系统是可轻松扩展的通过App Instance可以轻松访问到子系统实例 UML结构 UML类结构示例 代码示例 // XApplication.Utils.cs // Create by UniMarknamespace XF {public interface IApplication {void Startup();void Initialize();void Deinitialize();void Shutdown();}public interface IApplicationSubSystem {int InitializeSequence { get; }void Initialize(XApplication application);void Deinitialize();} } // XApplication.cs // Create by UniMarkusing System; using System.Collections.Generic; using UnityEngine;namespace XF {public sealed class XApplication : MonoBehaviour{private IApplication Application;private IApplicationSubSystem[] ApplicationSubSystems new IApplicationSubSystem[0];private DictionaryType, IApplicationSubSystem QuickReferenceTable;private void Awake (){Debug.Log($启动 [XApplication] 实例 ({gameObject.name}));if ( ( Application GetComponentIApplication() ) null ){throw new Exception(你需要实现IApplication的接口);}ApplicationSubSystems GetAllApplicationSubSystemWithSequence();QuickReferenceTable GetQuickReferenceTableWithAppSubSystem(ApplicationSubSystems);Application.Startup();}private void Start (){if ( ApplicationSubSystems.Length 0 ){Debug.Log(实例化应用内联系统 ...);for ( int index 0; index ApplicationSubSystems.Length; index ){var subSystem ApplicationSubSystems[index];var time Time.time;subSystem.Initialize(this);Debug.Log($释放: {subSystem.GetType().Name} 耗时 {( Time.time - time ).ToString({0.000})}s);}}if ( Application ! null ){Debug.Log(实例化应用 ...);Application?.Initialize();}}private void OnDestroy (){if ( Application ! null ){Debug.Log(释放应用 ...);Application?.Deinitialize();}if ( ApplicationSubSystems.Length 0 ){Debug.Log(释放应用内联系统 ...); for ( int index ApplicationSubSystems.Length - 1; index 0; index-- ){var subSystem ApplicationSubSystems[index];var time Time.time;subSystem.Deinitialize();Debug.Log($释放: {subSystem.GetType().Name} 耗时 {(Time.time - time).ToString({0.000})}s);}}Debug.Log($关闭 [XApplication] 实例 ({gameObject.name}));Application.Shutdown();Application null;ApplicationSubSystems null;QuickReferenceTable null;}private IApplicationSubSystem[] GetAllApplicationSubSystemWithSequence (){var list new ListIApplicationSubSystem();GetComponentsInChildren(true, list);list.Sort(( a, b ) a.InitializeSequence.CompareTo(b.InitializeSequence));return list.ToArray();}private DictionaryType, IApplicationSubSystem GetQuickReferenceTableWithAppSubSystem ( IApplicationSubSystem[] systems ){DictionaryType, IApplicationSubSystem result new DictionaryType, IApplicationSubSystem();foreach ( var system in systems ){if ( false result.TryAdd(system.GetType(), system) ){throw new Exception($包含相同类型的子系统 {system.GetType().Name});}}return result;}#region APIpublic T GetSubSystemT () where T : MonoBehaviour, IApplicationSubSystem{if ( QuickReferenceTable.TryGetValue(typeof(T), out var system) ){return system as T;}throw new Exception($不存在的子系统 {typeof(T).Name});}#endregion} } // XGame.cs // Create by UniMarkusing System; using UnityEngine; using XF;public abstract class XGameT : MonoBehaviour, IApplicationwhere T : XGameT {public static T Instance{get; private set;}public XApplication Owner{get; private set;}// 定义你自己的系统在这里 public TestSubSystem TestSystem { get; private set; }void IApplication.Startup (){if ( Instance ! null ){throw new Exception($[{gameObject.name}]{this.GetType().Name}类存在多实例异常!);}Instance this as T;GameObject.DontDestroyOnLoad(gameObject);Owner GetComponentXApplication();// 初始化你的系统在这里TestSystem Owner.GetSubSystemTestSubSystem();}void IApplication.Shutdown (){Instance null;Owner null;// 释放你的系统在这里TestSystem null;}void IApplication.Initialize () StartGame();void IApplication.Deinitialize () QuitGame();protected abstract void StartGame ();protected abstract void QuitGame (); }// GameIns.cs // Create by UniMarkusing UnityEngine; using XF;public class GameIns : XGameGameIns {#region 生命周期protected override async void StartGame (){// 加载配置文件 // await 配置文件加载完毕// 做个测试var testSystem Owner.GetSubSystemTestSubSystem ();Debug.Log(testSystem.GetMessage());// 进入第一个场景}protected override void QuitGame (){// 在这里卸载业务载入的资源和数据}#endregion }// TestSubSystem.cs // Create by UniMarkusing UnityEngine;namespace XF {#region 非正式代码public class TestSubSystem : MonoBehaviour, IApplicationSubSystem{[SerializeField]private int InitializeSequence;int IApplicationSubSystem.InitializeSequence InitializeSequence;private XApplication Owner;void IApplicationSubSystem.Initialize ( XApplication application ){Owner application;}void IApplicationSubSystem.Deinitialize (){Owner null;}public string GetMessage (){return Hello Here!;}}#endregion } 代码组织结构 -| Scripts         --| Core                 ---| SubSystems                         ---- TestSubSystem.cs                 --- XApplication.cs                 --- XApplication.Utils.cs                 --- XGame.cs         -- GameIns.cs 创建应用程序预制体 预制体组织结构 XApplication 节点 TestSubSystem 节点 下载代码示例  下载demo
http://www.pierceye.com/news/403701/

相关文章:

  • 重庆网站开发商城最近新闻有哪些
  • 电商网站设计线路图有哪些网络推广平台
  • 海门市建设局网站科技与应用
  • 北京做网站s免费做app网站有哪些
  • 免费制作网页的网站网络营销师报名官网
  • 长沙网站制作好公司网络服务模型
  • 网站开发的时间流程微信平台可以做微网站吗
  • 镇江网站seo天猫网店代运营
  • 吴江城乡住房和城乡建设局网站怎么给别人做网站优化
  • 名师工作室网站建设 意义网站图片上浮动文字
  • 做co的网站商城网站不备案
  • 黄山建设网站公司电话网站下载链接怎么做
  • 开发企业网站多少钱电视剧排行榜百度搜索风云榜
  • 什么网站做软文装修公司报价如何计算
  • 网站开发免费视频播放器应用公园app免费制作
  • 道路建设去什么网站能看到做内贸注册什么网站
  • 代理东莞网站制作公司wordpress前台用户中心代码
  • 做拼团网站下载wap浏览器
  • 网站建设合同文百科阿里云加WordPress建站
  • 服装购物网站排名ppt制作神器
  • 长沙营销策划公司排名如何优化企业网站
  • 北京制卡厂家做卡公司北京制卡网站_北京制卡_北京 去114网wordpress 关闭注册
  • 网站建设技术优势广州天河区医院
  • python和php网站开发中国十大公司排行榜
  • 网站栅格如何建设一个外卖订餐平台网站
  • 浙江省网站建设报价群晖wordpress不成功
  • 音乐网站制作策划书网站建设公司的服务公司
  • 南昌定制网站开发多少钱手机在线网页制作
  • 无锡网站推广$做下拉去118cr高端网站建设苏州
  • 该网站未在腾讯云备案网页界面图