草庐IT

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

凉鞋的笔记 2023-03-28 原文

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;
        }
    }
}

更多内容

有关【Unity 框架】QFramework v1.0 使用指南 工具篇:01. QFramework.Toolkits 简介 | Unity 游戏框架 | Unity 游戏开发 | Unity 独立游戏的更多相关文章

  1. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  2. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  3. unity---接入Admob - 2

    目录1.AdmobSDK下载地址2.将下载好的unityPackagesdk导入到unity里​编辑 3.解析依赖到项目中

  4. Unity 3D 制作开关门动画,旋转门制作,推拉门制作,门把手动画制作 - 2

    Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u

  5. TimeSformer:抛弃CNN的Transformer视频理解框架 - 2

    Transformers开始在视频识别领域的“猪突猛进”,各种改进和魔改层出不穷。由此作者将开启VideoTransformer系列的讲解,本篇主要介绍了FBAI团队的TimeSformer,这也是第一篇使用纯Transformer结构在视频识别上的文章。如果觉得有用,就请点赞、收藏、关注!paper:https://arxiv.org/abs/2102.05095code(offical):https://github.com/facebookresearch/TimeSformeraccept:ICML2021author:FacebookAI一、前言Transformers(VIT)在图

  6. ruby - 我需要从 facebook 游戏中抓取数据——使用 ruby - 2

    修改(澄清问题)我已经花了几天时间试图弄清楚如何从Facebook游戏中抓取特定信息;但是,我遇到了一堵又一堵砖墙。据我所知,主要问题如下。我可以使用Chrome的检查元素工具手动查找我需要的html-它似乎位于iframe中。但是,当我尝试抓取该iframe时,它​​是空的(属性除外):如果我使用浏览器的“查看页面源代码”工具,这与我看到的输出相同。我不明白为什么我看不到iframe中的数据。答案不是它是由AJAX之后添加的。(我知道这既是因为“查看页面源代码”可以读取Ajax添加的数据,也是因为我有b/c我一直等到我可以看到数据页面之后才抓取它,但它仍然不存在)。发生这种情况是因为

  7. ruby - sinatra 框架的 MVC 模式 - 2

    我想开始使用“Sinatra”框架进行编码,但我找不到该框架的“MVC”模式。是“MVC-Sinatra”模式或框架吗? 最佳答案 您可能想查看Padrino这是一个围绕Sinatra构建的框架,可为您的项目提供更“类似Rails”的感觉,但没有那么多隐藏的魔法。这是使用Sinatra可以做什么的一个很好的例子。虽然如果您需要开始使用这很好,但我个人建议您将它用作学习工具,以对您来说最有意义的方式使用Sinatra构建您自己的应用程序。写一些测试/期望,写一些代码,通过测试-重复:)至于ORM,你还应该结帐Sequel其中(imho

  8. python - Ruby 或 Python 的 3d 游戏引擎? - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion是否有适用于这些的3d游戏引擎?

  9. Ruby 和指南针路径与 yeoman 项目 - 2

    我安装了ruby​​、yeoman,当我运行我的项目时,出现了这个错误:Warning:Running"compass:dist"(compass)taskWarning:YouneedtohaveRubyandCompassinstalledthistasktowork.Moreinfo:https://github.com/gruUse--forcetocontinue.Use--forcetocontinue.我有进入可变session目标的路径,但它不起作用。谁能帮帮我? 最佳答案 我必须运行这个:geminstallcom

  10. Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板 - 2

    写在之前Shader变体、Shader属性定义技巧、自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用,方便后续回顾查看,如有以偏概全、不祥不尽之处,还望海涵。1、Shader变体先看一段代码......Properties{ [KeywordEnum(on,off)]USL_USE_COL("IsUseColorMixTex?",int)=0 [Toggle(IS_RED_ON)]_IsRed("IsRed?",int)=0}......//中间省略,后续会有完整代码 #pragmamulti_c

随机推荐