1、C#中的四种访问修饰符
属性修饰符:
Serializable:按值将对象封送到远程服务器
STAThread:单线程套间
MATAThread:多线程套间
存取修饰符:
public:
private:
internal:当工程可存取
protected:只有包含该成员的类似及派生类可以存取
类修饰符:
abstract:抽象类,指示一个类只能作为其他类的基类,方法/属性未实现
sealed:密封方法,必须对基类的虚方法重载,和override同时使用
delegate:委托,基于delegate+event的事件驱动
Const:指定该成员的值只读不允许修改
event:声明一个事件
override:重写
readonly:一个域只能在声明时以及相同类的内部被赋值
Static:不经实例化便可使用,类型本身
virtual:指示一个方法或存区器的实现可以在继承类中被覆盖
new
2、Unity3d在移动端的一些优化资源的方法
- 使用assetbundle,实现资源分离和共享,将内存控制到200M内,同时也可以实现资源的在线更新
- 降低顶点数到8万以下,fps稳定到30帧左右
- 只使用一盏动态光,不用阴影,不用光照探头
- 剪裁粒子系统
- 合并同时出现的粒子系统
- 自己实现轻量级的粒子系统
- 不需跟骨骼动画和动作过渡的地方全部使用animation,控制骨骼数量在30根以下
- aniamtor出视野不更新,删除无意义的animator,粒子上尽量不用animator
- 绝对禁止掉那些不带刚体带包围盒的物体运动
- 每帧递归的计算final alpha改为只有初始化和变动时计算
- 去掉法线计算
- 不要每帧计算viewsize和windowsize
- filldrawcall时构建顶点缓存使用array.copy
- 代码裁剪:使用strip level,使用.net 2.0 Subset
- 尽量减少smouth group
给美术定一个严格的科学美术标准,并在U3D里配以相应的检查工具
3、Camera组件的ClearFlags选成Depth only
摄像机只渲染看见的对象,把背景完全透明,一般用在两个摄像机以上的场景中
4、设置游戏对象为Static时,这些部分被静态物体挡住而不可见时,将会被剔除<或禁用>网格对象
因此,场景中所有不会动的物体都应该标记为Static
5、渲染管道
本地坐标——视图坐标——背面裁剪——光照——裁剪——投影——视图变换——光栅化
6、插件
- 界面制作:NGUI
- 2D游戏制作:2DToolkit
- 可视化编程:PlayMaker
- 插值插件:iTween,HotWeen
- 路径搜寻:Simple Path
- 美术及动画制作:RageSpline,Smooth Moves
- 画面增强:BitMap2Material,Strumpy Shader Editor
- 摄像机管理:Security Camera
- 资源包:Nature Pack
- 造路插件:EasyRoad3D
7、面向对象的设计原则
- 单一职责原则(SRR):一个类最好只做一件事,只有一个引起它的变化
- 开放封闭原则(OCP):对应扩展是开放的,对于更改是封闭的
- Liskov替换原则(LSP):子类必须能够替换其基类
- 依赖倒置原则(DIP):依赖于抽象
- 接口隔离原则(ISP):使用多个小接口,不要使用一个大的总接口
8、Unity连接数据库
需要得到Mono.Data.Sqlite.dll文件与System.Data.dll文件