14 AndrewFan

尚未进行身份认证

编程是一种艺术

等级
博文 28
排名 3w+

ECS、代码抽象、继承与组合 杂谈

案例分析:现在有一个类A,近300行代码,10成员,20个方法,类A中的大部分成员变量和函数在子类中或者业务代码中都可能需要修改,其中有一个方法用到了业务逻辑,具体说就是用到了业务中肯定会变化的一个类,现在要将这个业务逻辑代码分离出去。这种情况下,怎么抽离?抽离时使用继承还是组合?更具体点谁就是isA和hasA的问题,具体用哪一个好?还是怎么用好?组合和继承:二者各有利弊,以下是我对这...

2019-06-02 16:14:07

JavaWeb杂记

1、在MyEclipse中编写代码JavaWeb代码时,如何使得代码修改后立刻更新到Tomcat,而不需要重新启动?其实无关MyEclipse的事情,需要在Tomcat的conf目录下找到context.xml,为Context增加reloadable子项,即:<Context reloadable="true">即可。...

2018-05-10 18:27:15

水系统插件Suimono 2.1.3中文文档 【转】

Suimono2.1.3文档英文原版链接:http://tanukidigital.com/suimono/documentation 参考文章:SuimonoWater基础设置Suimono213文档安装与快速入门导入基础文件到项目向场景中添加SUIMONO模组常见问题材质没有纹理属性_FoamOverlay等

2017-10-28 19:22:17

【Unity编程】Unity动画系统(二)

距离上次翻译Unity动画文档过去三个月,它已经从Unity5.6更新到了Unity2017,所以接下来的翻译在2017的文档上继续,动画文档的内容角度,为了能清楚显示当前阅读在哪里,我也作为分段落处理。我将根据2017版的文档段落来进行分段:AnimationAnimationSystemOverviewAnimationClipsAni

2017-09-23 13:55:11

Runtime Mesh Baker v1.1.2 发布了

RuntimeMeshBakerv1.1.2发布了

2017-09-21 01:37:45

【Unity 优化】Skinned-Mesh 能动态合并嘛?

————–2017.9.16I'vtryedtocombinetheskinnedmeshestoday.Icancombinealltheskinnedmeshestoonenow.Andtheylookslikeattherightpositionandwiththerightuvs.However,It'sjustastati

2017-09-18 14:27:05

【Unity编程】Unity动画系统(一)

Unity动画系统Unity动画系统,也称为“Mecanim”,提供了以下功能:简单的工作流程,设置动画的所有元素,包括对象,角色和属性。支持导入外部创建的动画片段和使用内置动画编辑器制作的动画片段。人型动画重新定位,动画角色的运动控制可以被所有的角色模型共享,即角色的外观(SkinedMesh)和运动(Animator)是分离的,它们互相组合之后形成最终的动画。用于编辑动画状态的的简化工作

2017-04-28 22:27:31

【Unity编程】Unity中关于四元数的API详解

Unity中关于四元数的API详解Quaternion类Quaternion(四元数)用于计算Unity旋转。它们计算紧凑高效,不受万向节锁的困扰,并且可以很方便快速地进行球面插值。Unity内部使用四元数来表示所有的旋转。

2017-03-27 01:06:27

【Unity优化】如何实现Unity编辑器中的协程

Unity编辑器中何时需要协程当我们定制Unity编辑器的时候,往往需要启动额外的协程或者线程进行处理。比如当执行一些界面更新的时候,需要大量计算,如果用户在不断修正一个参数,比如从1变化到2,这种变化过程要经历无数中间步骤,调用N多次Update,如果直接在Update中不断刷新,界面很容易直接卡死。所以在一个协程中进行一些优化,只保留用户最后一次参数修正,省去中间步骤,就会好很多。

2017-03-22 22:46:45

Unity零散笔记

1、预处理在C#中的预处理功能很弱。除了使用#if#else#end之外,还可以尝试使用[System.Diagnostics.Conditional(“UNITY_EDITOR”)]这种属性条件。

2017-03-21 20:28:13

【Unity编程】四元数(Quaternion)与欧拉角

四元数是高阶复数的数学,它用在游戏中的作用主要是计算三维矢量的旋转,它使用先将矢量映射到纯虚四元数,再应用旋转四元数的方式进行映射。最后可以达成旋转目的。

2017-03-18 01:21:53

【Unity优化】为C#定制联合(Union)提高序列化速度

当执行连续大量的序列化时,使用联合可以很好地避免GCAlloc产生,而且效率要比BitConvertor来的高。

2017-03-15 16:28:41

【Unity编程】欧拉角与万向节死锁(图文版)

总结来说,欧拉角的“万向节死锁”问题,是由于欧拉旋转定义本身造成的。这种围绕选旋转前固定轴的先Z、再X、再Y的旋转操作,与其最终所预期的三个轴向可以旋转的结果并非一定是一对一的映射。某些情况下是多对一的映射,造成一些旋转自由度的缺失,也就是“死锁”。

2017-03-11 17:08:08

【Unity优化】构建一个拒绝GC的List

Unity系统的泛型List存在的问题是:它在finally中回收枚举器时执行了Box操作。自定义List时,正确实现泛型格式的IEnumerable、IEnumerator是关键,需要避开枚举单元被Current时,值类型被强制转换成对象类型的Box操作。

2017-03-11 00:44:53

【Unity编程】Unity中的欧拉旋转

写这篇博客之前,我搜索了网上很多关于欧拉角的定义,发现大部分引用自维基百科的定义,而它们与Unity是不同的。在这篇文章中,我会深入解释Unity中欧拉角的定义,和欧拉旋转注意点。

2017-03-09 17:26:23

【Unity优化】Unity中究竟能不能使用foreach?

关于这个话题,网络上讨论的很多,我也收集了一些资料,都不是很齐全,所以自己亲自测试,这里把结果分享给大家。foreach究竟怎么了?研究过这个问题的人都应该知道,就是它会引起频繁的GCAlloc。也就是说,使用它之后,尤其在Update方法中频繁调用时,会快速产生小块垃圾内存,造成垃圾回收操作的提前到来,造成游戏间歇性的卡顿。

2017-03-04 01:13:17

【Unity优化】我所理解的IL指令

我所理解的IL指令,这里目前只列举了一些常见指令,box、unbox、newobj、ldc、stloc等等,我认为比较重要的指令,学习Unity最好是要深刻了解C#较为底层的IL实现。

2017-03-02 21:39:59

【Unity优化】Unity优化技巧进阶(持续更新中...)

关于Unity中的Foreach这个话题,网络上讨论的很多,我也收集了一些资料,都不是很齐全,所以自己亲自测试,这里把结果分享给大家。foreach究竟怎么了?研究过这个问题的人都应该知道,就是它会引起频繁的GCAlloc。也就是说,使用它之后,尤其在Update方法中频繁调用时,会快速产生小块垃圾内存,造成垃圾回收操作的提前到来,造成游戏间歇性的卡顿。

2017-03-01 11:23:40

【Unity Shader】如何修改LineRenderer与TrailRenderer 中的颜色

LineRender和TrailRender是两个好东西,很多Unity拖尾特效都会使用到它们。一些简单的介绍可以参见官方的API文档。在这里探讨一下它们具体的渲染方式,而后给出一些Shader以便更好地控制它们。

2017-02-25 21:21:53

【Unity编程】Unity3D-使用对象池高效管理内存

本节通过一个简单的射击子弹的示例来介绍一个比较通用的Unity对象池的写法

2017-02-21 08:01:34
奖章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。