• 【Unity 框架】QFramework v1.0 使用指南 工具篇:01. QFramework.Toolkits 简介 | Unity 游戏框架 | Unity 游戏开发 | Unity 独立游戏


    QFramework.Toolkits 是包含 QFramework.cs 和 大量工具集的解决方案。

    在 QFramework v1.0 之前,QFramework.Toolkits 就是 QFramework 本身,而在 QFramework v1.0 开始,QFramework 拥有了自己的开发架构—QFramework.cs,于是原来的 QFramework 就变成了 QFramework.Toolkits。

    QFramework.Toolkits 称为 QFramework 工具集,是一套开箱即用的、渐进式快速开发框架。

    目标是作为无框架经验的公司、独立开发者、以及 Unity3D 初学者们的第一套框架。框架内部积累了多个项目在各个技术方向的解决方案。学习成本低,接入成本低(侵入性低),重构成本低,二次开发成本低。文档内容丰富。

    QFramework 工具集的设计哲学是追求极致的开发效率和开发体验。

    QFramework.Toolkits 特性一览

    • 工具集(QFramework.Toolkits v0.16)
      • UIKit 界面&View快速开发&管理解决方案
        • UI、GameObject 的代码生成&自动赋值
        • 界面管理
        • 层级管理
        • 界面堆栈
        • 默认使用 ResKit 方式管理界面资源
        • 可自定义界面的加载、卸载方式
        • Manager Of Manager 架构集成(不推荐使用)
      • ResKit 资源快速开发&管理解决方案
        • AssetBundle 提供模拟模式,开发阶段无需打包即可加载资源
        • 资源名称代码生成支持
        • 同一个 API 可加载 AssetBundle、Resources、网络 和 自定义来源的资源
        • 提供一套引用计数的资源管理模型
      • AudioKit 音频管理解决方案
        • 提供背景音乐、人声、音效 三种音频播放 API
        • 音量控制
        • 默认使用 ResKit 方式管理音频资源
        • 可自定义音频的加载、卸载方式
      • CoreKit 提供大量的代码工具
        • ActionKit:动作序列执行系统
        • CodeGenKit:代码生成 & 自动序列化赋值工具
        • EventKit:提供基于类、字符串、枚举以及信号类型的事件工具集
        • FluentAPI:对大量的 Unity 和 C# 常用的 API 提供了静态扩展的封装(链式 API)
        • IOCKit:提供依赖注入容器
        • LocaleKit:本地化&多语言工具集
        • LogKit:日志工具集
        • PackageKit:包管理工具,由此可更新框架和对应的插件模块。
        • PoolKit:对象池工具集,提供对象池的基础上,也提供 ListPool 和 Dictionary Pool 等工具。
        • SingletonKit:单例工具集
        • TableKit:提供表格类数据结构的工具集

    典型的 QFrameowrk.Toolkits 代码

    using QFramework;
    using UnityEngine;
    using UnityEngine.UI;
    
    namespace liangxiegame
    {
        public partial class UIGamePanel : UIPanel
        {
            private ResLoader mResLoader;
            
            protected override void OnInit(IUIData uiData = null)
            {
                mResLoader = ResLoader.Allocate();
                
                mResLoader.LoadSync<GameObject>("GameplayRoot")
                    .Instantiate()
                    .Identity()
                    .GetComponent<GameplayRoot>()
                    .InitGameplayRoot();
                
                
                BtnPause.onClick.AddListener(() =>
                {
                    AudioKit.PlaySound("btn_click");
                    
                    ActionKit.Sequence()
                        .Callback(() => BtnPause.interactable = false)
                        .Callback(() => BtnPause.PlayBtnFadeAnimation())
                        .Delay(0.3f)
                        .Callback(() => UIKit.OpenPanel<UIPausePanel>())
                        .Start(this);
                });
            }
    
            protected override void OnClose()
            {
                mResLoader.Recycle2Cache();
                mResLoader = null;
            }
        }
    }
    

    更多内容

  • 相关阅读:
    从头来之【图解针对虚拟机iOS开发环境搭建】 (转)
    换工作?请记得8、18、48与72这四个密码(转)
    php
    linux上svn连接visual svn server时ssl鉴权失败,问题解决(转)
    javamail发送邮件的简单实例(转)
    稀疏矩阵
    Redis11种Web应用场景
    说说ShellExecuteEx
    怎样从host之外连接到docker container
    hadoop日志分析
  • 原文地址:https://www.cnblogs.com/liangxiegame/p/16798693.html
Copyright © 2020-2023  润新知