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

河北秦皇岛建设局网站seo搜索优化技术

河北秦皇岛建设局网站,seo搜索优化技术,网站开发是前端还是,做营销网站企业前言 在Unity程序设计过程中,我们处理的第一个对象是Application Instance。 它的主要职责是启动流程管理、卸载流程管理,次要职责是管理在内部的子系统生命周期。其他职责,提供或桥接应用程序的配置信息、及其他第三方接口。 它通常以单例的…
前言

        在Unity程序设计过程中,我们处理的第一个对象是Application Instance。

        它的主要职责是启动流程管理、卸载流程管理,次要职责是管理在内部的子系统生命周期。其他职责,提供或桥接应用程序的配置信息、及其他第三方接口。

        它通常以单例的形式存在在场景中,即使在切换场景时,也不会被删除。

设计需求        
  1. 可以自定义异步启动流程、或卸载流程
  2. App 自动完成子系统的初始化和卸载工作
  3. 子系统是可轻松扩展的
  4. 通过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 Dictionary<Type, IApplicationSubSystem> QuickReferenceTable;private void Awake (){Debug.Log($"启动 [XApplication] 实例 ({gameObject.name})");if ( ( Application = GetComponent<IApplication>() ) == 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 List<IApplicationSubSystem>();GetComponentsInChildren(true, list);list.Sort(( a, b ) => a.InitializeSequence.CompareTo(b.InitializeSequence));return list.ToArray();}private Dictionary<Type, IApplicationSubSystem> GetQuickReferenceTableWithAppSubSystem ( IApplicationSubSystem[] systems ){Dictionary<Type, IApplicationSubSystem> result = new Dictionary<Type, IApplicationSubSystem>();foreach ( var system in systems ){if ( false == result.TryAdd(system.GetType(), system) ){throw new Exception($"包含相同类型的子系统 {system.GetType().Name}");}}return result;}#region APIpublic T GetSubSystem<T> () 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 XGame<T> : MonoBehaviour, IApplicationwhere T : XGame<T>
{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 = GetComponent<XApplication>();//> 初始化你的系统在这里TestSystem = Owner.GetSubSystem<TestSubSystem>();}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 : XGame<GameIns>
{#region 生命周期protected override async void StartGame (){//> 加载配置文件 //> await 配置文件加载完毕//> 做个测试var testSystem =  Owner.GetSubSystem<TestSubSystem> ();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.hkea.cn/news/489395/

相关文章:

  • 做违法网站会怎样外贸独立站怎么建站
  • 云主机建网站教程深圳全网推互联科技有限公司
  • 做网站赚50万谷歌搜索引擎363入口
  • 台州网站设计外包网页制作公司排名
  • 网站建设投标文件范本亚马逊提升关键词排名的方法
  • 学做网站需要多长时间免费推广平台排行
  • wordpress运行php 404360优化大师下载
  • seo排名网站 优帮云线上推广的三种方式
  • 平凉哪有做网站的百度推广登录入口官网网
  • 娄底网站优化自建网站平台有哪些
  • 做网站需要多少兆空间wix网站制作
  • 哪些网站教做生物实验今日新闻联播
  • 铜川市住房和城乡建设局网站信息流广告哪个平台好
  • 太原市建设交易中心网站首页百度手机助手app安卓版官方下载
  • 昆山网站建设网站建设郑州网络推广哪个好
  • 瑜伽网站设计国外推广网站
  • 什么网站做国外批发百度推广自己怎么做
  • 网站管理工具百度推广可以自己开户吗
  • 三水网站制作中山做网站推广公司
  • ysl网站设计论文郑州seo地址
  • 做食品的网站设计要注意片多多可以免费看电视剧吗
  • 网站排名推广自己怎么做长沙seo代理商
  • 手机网站改版公司加盟关键词优化排名查询
  • html5 图片网站建设企业网站多少钱
  • 企业网站定制开发流程网络营销的概念及特点
  • 做火影网站背景图农村电商平台有哪些
  • 国内html5网站建设seo兼职工资一般多少
  • 青海西宁网站建设公司百度网络推广
  • 服装公司网站设计百度站长收录入口
  • 做搜索关键词任务网站网站维护是什么意思