原创
文章平均质量分 61
紫雪
卧看云袖穿林影,
坐听风铃打叶声。
展开
-
关于unity进行帧率控制的问题
unity帧率控制原创 2022-09-26 20:15:28 · 1902 阅读 · 1 评论 -
项目推进(偏重程序)
写这个文章的时候,主要是想总结一下这么多年开发当中对于如何立项、推进、迭代、收尾等等方面的一个看法和经验。 1、立项 一个项目立项需要考虑的因素是非常多的,有可能是拿到了一个好的IP,也有可能是几个项目负责人有了一个很棒的idea,又或者是老板想要做一个什么类型的游戏,还有的就是看到市场上某个游戏非常赚钱,想要介入等等,具体就不做过多的考虑。 立项当中包含市场调查、产品定位、需求分析、当前市场以及预测未来市场的趋势和时间,同时还要直到产品面对的对象以及研...原创 2020-08-24 09:02:48 · 305 阅读 · 0 评论 -
GitHub/ClientEngine项目使用
这个是一个包含了服务器/客户端/增量更新的一个项目,其中Assets和ProjectSettings属于客户端unity项目,OtherProject里面包含了增量计算,打印日志,服务器,其他项目等之后的工具以及项目相关内容。我们来说一下怎么样使用这个项目或者说运行整个框架。 首先说一下场景制作。因为有了光照贴图的动态加载,所以我们一共有三种,按照加载方式来讲,其实就两种,第一种是叠加场景的方法,这个方法当中存在真实的场景,我们通过工具“CreateSceneAB”来进行场...原创 2020-07-29 15:28:00 · 171 阅读 · 0 评论 -
项目框架——网络框架【GameNetManager】
这是一个简单的网络框架,其中使用到了线程管理对象【GameThreadManager】,关于线程管理对象,后面会详细讲解,这次我们主要讲解的是网络框架。 因为要测试的缘故,所以我们在框架测试项目当中的OtherProject包含了简单的服务器内容,后续也会不断扩展这里面的代码量和功能量来维持测试框架项目的不断推进。 首先我们来讲讲GameThreadManager的使用流程。 要想完整的使用整个网络流程,首先我们应该压入协议号与对应的控制类,比如 ...原创 2020-07-21 14:37:49 · 219 阅读 · 0 评论 -
框架使用流程和一些注意细节
写了那么多的框架内容,约束了这么多的接口,那么我们今天来实际操作一下这个框架。 首先我们将Engine这个内容拷贝到项目当中,然后在Engine同级目录下建立一个UseAB的目录,接下来生成XLua根,如果你需要使用lua的话。 然后建立新场景,找一个节点挂载相对应的管理控制类,当然,MessageManager这个是先挂载的,因为很多框架里面都会使用消息进行解耦,所以必须挂载,剩下的比如: 资源管理类:ResObjectManager,这个也是需要的,除非你要自己用自...原创 2020-07-02 10:41:24 · 1008 阅读 · 0 评论 -
项目框架——UI管理器【UIManager】
其实我一直没想好怎么写这个UI框架的管理内容,总觉得自己这个设计并不合理,之前的项目和当前的框架有相关联的内容,也有很大的出路。之前的有做过动态添加控制脚本,也有挂载脚本,这次更是一改前风,我使用了非mono类进行管理UI,然后用UIManager去管理协同程序,这里面就存在一定的弊端,那就是没有办法监听被动停止协程或者让协程结束。当然这样做的好处就是方便日后dll热更新或者是修改成别的热更新方式。 下面我们还是来谈一下这次的框架设计。 框架,无非就是设计接口,UI设计了打开界面...原创 2020-06-30 15:56:03 · 1113 阅读 · 0 评论 -
项目框架——场景管理器【GameSceneManager】
其实Unity自身的SceneManager已经继承了很多内容,为什么这里面我们要重新写一套场景管理器呢,其目的是为了更方便的管理场景已经线性打开切换场景,怎么样做到线性,就是不使用脚本驱动,使用生成顺序控制实例化的先后而达到Awake的运行先后。 可能上面说的有点笼统,下面我们来详细解释一下。 第一个考虑:自身的场景管理,能更好的输出场景切换进度; 第二个考虑:动态场景加载; 第三个考虑:统一的切换规则以及开始规则管理...原创 2020-06-28 18:09:22 · 559 阅读 · 0 评论 -
项目框架——Lua管理器【LuaManager】
首先我们需要集成XLua内容,或者直接将项目当中XLua相关的内容拷贝过去也可以,最好是直接拷贝吧,我怕版本不一样会导致内容的不一致。 当环境集成好了之后,我们LuaManager依然是一个继承框架单例来的一个内容,使用上跟单例一样一样的。 设计这个内容主要是用于Unity跟Lua之间的数据交互,并且统一管理Lua脚本的,其中框架当中包含了创建Table,获取节点或者Component,然后是UI相关的、场景以及消息相关的。 这些设计都是...原创 2020-06-17 14:18:48 · 839 阅读 · 0 评论 -
项目框架——项目时间管理【GameTimeManager】
现在这个内容还不完善,先说一小部分,后面完善之后会接着详细讲解。 设计原意是想统一管理游戏时间,比如游戏运行时长,服务器时间与本地时间,然后国际时间转换等等,目前只有一个游戏运行的时长。 游戏运行时长使用了unity的update进行计算,而且以秒为单位。 游戏运行时长:GameNowTime就能获取到。项目GitHub地址https://github.com/FengFaming/ClientEngine...原创 2020-06-17 11:53:02 · 209 阅读 · 0 评论 -
项目框架——显示fps【GameShowFPS】
这个内容,你只需要找个节点,挂载上去,然后打开显示就可以了。 他是利用OnGUI进行显示的,利用的是unity的Update函数,所以如果你挂载点是隐藏的话,那么你的fps也显示不出来。项目GitHub地址https://github.com/FengFaming/ClientEngine...原创 2020-06-17 11:47:19 · 354 阅读 · 0 评论 -
项目框架——控制台输出日志【SystemDebugManager】
这个其实是一个辅助工具,主要用于打包exe之后的输出显示,为了排查打包exe运行错误的一个内容。 这个使用的时候需要配合使用框架文件夹下面的Debug.dll数据,现在那个项目具体的也丢了,后续看看怎么补回来吧。 我们接着说下面的内容。 这个日志输出,在前面宏定义当中也讲到过,必须是不存在NEWWINDOW这个宏定义当中的,那么这个日志输出工具才起作用。 这个日志输出也是一个需要挂载的内容,自己随便哪里找个节点挂上去,然...原创 2020-06-17 11:43:29 · 394 阅读 · 0 评论 -
项目框架——反射【ReflexManager】
使用这个内容,没有经过平台测试,因为我一直没有打包Android和苹果平台,其他平台也没有去尝试,不敢保证一定可以,但是Windows平台下是可以使用的。 反射这个其实大家都明白是什么概念,就是通过字符串去创建类,分析类内容等等,在目前的框架当中,表现最突出的就是在对象池当中使用最为明显了。 明显来看,这个框架实际上是一个工具类内容,所以他并没有自己的成员内容,基本都是一堆的接口 不带参数或者带一个参数创建类:CreateClass...原创 2020-06-17 11:31:05 · 159 阅读 · 0 评论 -
项目框架——配置文件管理【ConfigurationManager】
目前的配置文件当中,因为不存在主节点的装箱拆箱内容,所以只针对于Xml文件,也是因为本人一直也喜欢Xml的配置风格,很有层次感,看起来比较舒服吧。其他的就不多说了,我们来简单的聊一聊这个配置文件管理框架。 其实很简单,一句话——单例存储,各自解析。 单例存储说的是管理类【ConfigurationManager】,各自解析说的是每一个继承自【XmlBase】的文件。 先说简单的,管理类。 管理类其实就做了两件事情,一个是...原创 2020-06-17 11:16:10 · 906 阅读 · 0 评论 -
项目框架——资源加载【ResObjectManager】
万物都有度,都有规则,这个资源加载的框架也不是万能的,只不过是罗列了大部分内容而已,所以使用的时候需要按照项目需求去摘取或者使用。 废话不多说,首先我们来讲一下资源加载框架当中都包含哪些内容。 第一:资源类型; 第二:资源信息; 第三:资源加载回调; 第四:资源打包。 总共来讲,就是这四个部分,下面我们按照顺序逐个进行讲解。 第一部分,资源类型,这个很好理解吧,其实就...原创 2020-06-16 10:40:09 · 450 阅读 · 0 评论 -
项目框架——消息分发系统【MessageManager】
首先这个消息分发系统是一个继承于Mono单例模式的,所以他也是一个单例内容,使用起来很简单,只需要知道以下几点即可。 第一,单例记得添加; 第二,添加消息监听; 第三,分发消息; 一共就这三个内容,第一点没有什么好说的,单例模式,添加在场景当中就好了,关于单例模式的内容,可以参考【项目框架——单例模式】进行详细的了解。主要是接下来的第二和第三点。 添加消息监听之前,我们来看看消息监听函数类。 ...原创 2020-06-16 10:38:53 · 2330 阅读 · 0 评论 -
关于项目宏定义说明
NEWWINDOW:使用新样式进行窗口大小控制;这个宏定义与打印日志是相互排斥的,也就是说如果使用这个宏定义,那么窗口样式修改起作用,但是打印日志的不起作用。 TEST_AB:这个宏定义是在Editor下使用打包流程进行运行,基本上这个时候跟打包出来运行的差别不大。...原创 2020-06-16 10:33:40 · 221 阅读 · 0 评论 -
项目框架——单例模式
这个框架当中,提供了两种单例模式,一种是继承至MonoBehaviour的,一种是单纯的类形式两种单例模式。 首先我们讲一下集成MonoBehaviour模式的,其中,框架当中对于MonoBehaviour也进行了一次封装,换而言之,这个框架当中,mono内部的一些内容我们也进行了修改,不过目前并没有修改多少内容,只是添加了关于鼠标监听方面的内容。 单例里面写了Awake方法,是生成单例的重要方法,后续继承该单例的如果需要使用Awake方法,一定要调用基类...原创 2020-06-16 10:36:20 · 210 阅读 · 0 评论 -
点在线上的投影与两直线的交点问题
点到直线上的投影首先关于一个点与直线交点的问题。我们首先确定点在直线外面。做一个过P点垂直于L的直线,那么相交的点我们叫I点。如果我们用y = kx + b来表示L直线,那么我们新的直线PI的表达式为y = (-1/K)x + b2。由此我们知道,I这个点,既满足y = kx + b,也满足 y = (-1/k)x + b2;通过一系列的推导,我们就可以得到b2 = P...原创 2018-11-28 14:37:52 · 2268 阅读 · 0 评论 -
Visual Studio 2015写代码常用的快捷键汇总
1、光标相关: 回到上一个光标位置:Ctrl + - 前进到下一个光标位置:Ctrl + Shift + -2、删除/复制/剪切相关 删除一行代码:光标移动到当前行,Ctrl + L 复制一行代码:光标移动到当前行,Ctrl + C 剪切一行代码:光标移动到当前行,Ctrl + X3、撤销/反撤销 撤销:Ctrl + Z 反撤销:Ctrl + Y4、查找相...原创 2018-05-12 15:10:42 · 3893 阅读 · 0 评论 -
SVN服务器 + SVN客户端的简单使用方法
【说明】我这个人比较懒,所以懒得排版,看的朋友们自己注意咯!SVN的下载与安装1· 我们需要下载SVN服务器以及客户端的安装程序,将服务器与客户端安装好。具体安装步骤:SVN的安装都很简单,跟普通的软件安装都没有什么差别。这里也附带一个SVN服务器与SVN客户端的下载地址:http://download.csdn.net/detail/zixue19911216/61980原创 2013-09-02 16:57:29 · 1239 阅读 · 0 评论