在上一篇,我们对框架和架构进行了一点探讨.我们在这一篇再接着探讨. 什么是库呢? 来自同一位大神的解释: 库, 插到 既有 架构 中, 补充 特定 功能. 很形象,库就是搞这个的.我们的库最初存在的目的,就是收集知识,而收集知识是一般的架构(项目)中是没有的,那么我们为了补充特定功能(收集知识),就要把我们的库导进来,然后收集一两个示例,再导出去,然后删除掉项目中库的文件,消除痕迹以免被其他人发现:) ,而这个库补充的收集知识这个功能是对于大家有用的,而不是对项目有用的,虽然对大家有用到最后也会…
第一章小结 为了强化教程的重点,会在合适的时候进行总结与快速复习. 第二章 简介 在第一章我们做了知识库的准备,从而让我们更高效地收集示例. 在第二章,我们就用准备好的导出工具试着收集几个示例,这些示例中有的是我们后续库的基础工具,也有的是在项目中非常实用的小工具,还有一些示例是实践了在框架搭建方向上非常重要的 C# 语法知识. 第二章大纲如下. 第八个示例(一) 在之前,我们完成了一个导出的功能.但是在完成这个功能的过程中,我们也遇到了一些问题.我们回忆一下,在<MenuItem 复用>的这…
昨天我们完成了第八个示例的第二个 MenuItem 菜单顺序的调整. 我们今天再往下接着调整. 我们来看下接下来的 MenuItem 代码如下: [MenuItem("QFramework/8.总结之前的方法/3.生成文件名到剪切板")] private static void MenuClicked3() { CommonUtil.CopyText(Exporter.GenerateUnityPackageName()); } CommonUtil 已经提取成第二个示例了. Expo…
第九个示例 目前代码如下: using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif namespace QFramework { public class ResolutionCheck { #if UNITY_EDITOR [MenuItem("QFramework/9.屏幕宽高比判断")] #endif private static void MenuClicked() { Debug.Log(IsPadResol…
第四章 简介 方法的结构重复问题 我们在上一篇正式整理完毕,从这一篇开始,我们要再次进入学习收集示例阶段了. 那么我们学什么呢?当然是学习设计工具,也就是在上篇中提到的关键知识点.这些关键知识点,大部分来自于 C# 语法. 不过在此之前,我们先实现一个功能,这个功能是,传入几个数字,随机取出其中一个数字. 比如传入 1,3,5,7 从这四个数字中随机取出一个数字出来. 其实现很简单 代码如下: using UnityEngine; namespace QFramework { public pa…
我们花了 5 篇文章学习了消息机制的方方面面.并且完成了一个简易消息机制,之后集成到了我们的 MonoBehaviourSimplify 里. 现在 MonoBehaviourSimplify 有一点框架的感觉了.因为 MonoBehaviourSimplify 在提供消息功能的同时,决定了项目脚本中的交互方式.而目前的这套结构,足够用它来完成一个比较小的项目了. 消息机制是笔者在接触单例之后,第二次被震撼到的设计模式(观察者模式/发布者订阅者模式).而笔者在初学的时候,还不太敢去设计 Mono…
我们的项目开始立项的时候,最常见的一个情况就是:几个人的小团队,一开始什么也不做,就开始写代码,验证逻辑,游戏就开始写起来了.而公司的一些所谓的领导层面一开始就把游戏定义为我们要做一个大作.这个事情本身就是一个笑话,因为没有任何的规划和设计,我们就妄图写出一个杰出的作品出来是不现实的.Unity 在好用,那么以这个心态去做游戏,一定会写不出来好的游戏来.- 刘钢<Unity 项目架构设计与开发管理> 以上这段话说得很清楚了,就是做一个项目的时候一定要做规划和设计,当然这是从整个项目的角度来看,…
在上一篇,我们得出了两个核心的学习思路: 根据问题去学习,并收集. 主动学习,并思考适用场景. 我们今天解决 MenuItem 显示顺序问题. 目前 MenuItem 显示如图所示: 我们来看下 MenuItem 这个属性构造的定义. 第二个参数是,是否是验证方法,目前不用理解,官网上默认是 false. 第三个参数,意思是优先级,表示 MenuItem 所在的显示顺序,数值越大越在底部. 我们先给第七个示例试一下.将代码改成如下: using System.IO; #if UNITY_EDIT…
在上一篇,我们把菜单的顺序从头到尾整理了一遍.在整理菜单顺序的过程中,记录了一个要做的事情. 要做的事情: (完成) 备份:导出文件,并取一个合理的名字. 整理完菜单顺序后,学习新的知识,解决随着示例增多,可能出现类需要合并的问题. 我们要学习新的知识,试着解决类的合并问题.首先我们来看下要合并的类是什么,在我们的示例中是 TransformSimplify,这个 TransformSimplify 是对 Transform API 的简化,而 Transform 有非常多的 API,那么以后肯…
MonoBehaviour 简化 在前两篇,我们完成了第九个示例.为了完善第九个示例,我们复习了类的继承,又学习了泛型和 params 关键字. 我们已经接触了类的继承了.接触继承之前,把类仅仅当做是方法的集合,接触了继承之后,我们的类还可以使用继承来解决一些问题. 第十个示例 在 Unity 中,我们的脚本都往往继承自 MonoBehaviour,继承了之后我们就可以在脚本内编写很多功能.比如访问 transform/gameObject,再比如控制动画接收碰撞事件等等.另外我们继承了 Mon…