加载中
循环遍历二叉树

前序遍历 struct Node { Node*left; Node*right; int data; Node(){ func; } }; Node* create(Node*p, int depth) { if (p && depth) { p->left = new Node; p->right = new ...

2016/10/05 19:01
469
设计模式-行为-Interpreter(解释器)模式

建立一个解释器,对于特定的语言,解释预先定义的文法。解释语言的句子。 场景1:正则表达式解释器 场景2:脚本解释器 场景3:XML解释器 解释器模式提供了一个处理的框架

2016/05/07 11:08
52
WheelCollider组件

该组件是用来描述轮胎的(比如扭矩 转速等等),可用来附加在赛车游戏 的车轮上 A special collider for vehicle wheels. Wheel collider is used to model vehicle wheels. It simulates a ...

2016/05/24 21:20
168
重构-改善既有代码的设计-概述

注意事项 1.重构时不能添加新功能,只管改进程序的结构。 2.不要过早发布接口,请修改你的代码的所有权,使重构更流畅 3.1%的代码影响了90%的执行效率,不要只靠猜想来判断效率瓶颈,要量化出...

2016/05/15 14:37
92
粒子系统碰撞检测

MonoBehaviour.OnParticleCollision(GameObject) Description OnParticleCollision is called when a particle hits a collider. This can be used to apply damage to a game object when h...

2016/05/22 20:38
90
CRT源码-字符串处理

CRT的 源码分为3部分: c C语言 cpp c++ asm 性能优化汇编版本 strcat char * __cdecl strcat (         char * dst,         const char * src         )...

2016/05/07 19:41
62
重构-改善既有代码的设计-重新组织数据

重新组织数据相关重构手法 1.Self Encapsulate Field(自封装字段)(你直接访问一个字段,但是字段之间的耦合变得笨拙,为这个字段建立setter getter 并只用函数来访问字段) 2.Replace Da...

2016/05/16 20:02
59
连通图的最短路径

求如图的最短路径 PS:面试中也问过类似的题 递归遍历即可 class Node { public: Node*left = nullptr; Node*right = nullptr; int value = 0; }; void createNode(No...

2016/05/07 16:52
59
Double Dispatch手法

首先要明白Dispatch 是什么 多态的实现,是通过一个虚表 达到运行时决策,真正调用的 为真正的对象来决定,这叫做一次 dispatch (实现一次多态的 动态决定) Double dispatch 应用 在什么地...

2016/05/07 18:42
52
unity C# Mathf类源码

从 变量命名和大量的goto可以看出 大部分源码看似是自动生成的,也可能是反编译工具的问题 1.Repeat public static float Repeat(float t, float length) { return ...

2016/05/23 11:50
50
toLower toUpper

1.根据二进制规律很容易就发现 char toLower(char x) { if (x >= 'A' && x <= 'Z')return (x | 0x20); return x; } char toUpper(char x) { if (x >= 'a' && x <= 'z')return (x ...

2016/05/23 21:12
47
C# 与 JS通信

1.如果绑定在同一个游戏对象上,那么可以用GameObject.SendMessage 来通信(效率更高点的方式是用GetComponent) C#: public void OnRecv() { print("C# Recv"); } JS...

2016/05/21 21:04
47
重构-改善既有代码的设计-简化条件表达式

简化条件表达式相关重构手法 1.decompose conditional(分解条件表达式)(你有一个复杂的条件if then else语句,从if then else 中提炼出独立的函数) 如 2.consolidate conditional expres...

2016/05/18 10:57
42
重构-改善既有代码的设计-大型重构

大型重构 1.tease apart inheritance(梳理并分解继承体系) 某个继承体系同时承担2项责任。(建立2个继承体系,并通过委托关系让其中一个可以调用另外一个) 2.convert procedurel design ...

2016/05/19 20:33
41
再谈虚表

图上3类C3中继承关系,内存布局都有影响。class C 大小依次是16,20,24 多继承可导致子类有多个虚表指针,导致了成员变量排列在n*sizeof (void*) + XXXXX +XXXXX字节之后, 这会导致很多问题...

2016/05/19 23:12
39
代码加载 Prefabs

方法1:通过unityeditor提供的方法 从 路径加载(必须带扩展名,由于UnityEditor 所以不能打包) void Start() { GameObject obj = UnityEditor.AssetDatabase.LoadAssetAtPath...

2016/05/21 15:49
37
重构-改善既有代码的设计-代码的坏味道

代码坏的味道:(以下这些现象意味着你该重构了) 1.Duplicated Code(重复代码)(提炼出公共代码) 2.Long Method(函数过长) 3.Large Class(过大的类) 4.Long Parameter List(过长的参数列表...

2016/05/15 20:35
37
unity 特殊文件夹 和 脚本编译顺序

特殊文件夹:原文 http://docs.unity3d.com/Manual/SpecialFolders.html 脚本编译顺序:原文 http://docs.unity3d.com/Manual/ScriptCompileOrderFolders.html...

2016/05/21 22:02
35
多态的静态绑定(CRTP手法)

Curiously Recurring Template Pattern (CRTP手法) 原理很简单 通过模板函数 的强制转换调用子类同名函数,来模拟多态的动态绑定,实现和虚函数一样的功能,并且避免了动态绑定所带来的性能...

2016/05/20 16:28
35
设计模式-结构-Proxy(代理)模式

访问的中间媒介。Proxy模式最大的好处就是实现了逻辑和实现的彻底解耦 远程代理 虚代理 保护代理 智能指针 结构图 class SubObject { public: virtual void Request() = 0; }; class...

2016/05/02 18:20
32

没有更多内容

加载失败,请刷新页面

返回顶部
顶部