monobehaviour是所有组件的基类
游戏中所有不动静止的东西都可以勾选为static,比如建筑,还要注意的是当用导航navigation的时候,要把物体设成static,要不然navigation导航bake时候会忽略该物体
选择scene的物体,按shift+f,镜头可以快速追踪到该物体
在c#脚本中有个
void Awake(){
}
函数,作用是在脚本初始化的时候运行该函数
void Destory(){
}
是在脚本析构时候执行
void OnEnable(){
}
脚本启用时候执行
void OnDisable(){
}
脚本禁用时候执行
外部导入c# 的dll文件:
在unity当中美术资源和c#代码都可以看到,如果工程师不想让人看到代码,只暴露接口,可以通过dll的方式,将.dll 导入到unity的asset中,在c#中using namespace,引入即可。
Android和ios平台调用c++代码步骤不做介绍了
写代码的时候打开profiler查看cpu,内存,可以寻找到那个函数比较消耗性能,来优化代码
为什么初始化时myString接收还是myString,因为你上一帧是myString下一帧修改后用myString接收,不冲突
Gizmos:在游戏中做一些辅助,指引的显示,
除了选择里面的内置选项以外,还可以选择外设,通过使用
比如把怪物的面向用射线画出来,在怪物的脚本中
.DrawRay第一个参数是射线的起点,第二个参数是朝向,如果没有效果查看gizmos里面有没有勾选使用这个脚本
效果图
多摄像机:将多个摄像机拍摄图片组合成一个图片
比如第一个摄像机拍摄立方体,第二个摄像机拍摄人,要把立方体放到人后面这样做:
立方体的摄像机属性Depth要小于人的摄像机,立方体摄像机的Clear Flags可以是Skybox,人的摄像机是Depth Only
light属性当中bounce intensity是光的弹跳强度,也即两个物体之间相互的反射光的强度
离线光照的特点:物体之间的相互光照提前计算好,就算移动物体,效果仍然不变,好处是节省性能
实时光照:随变化光照效果变化,消耗性能
优化性能的方式是对于静态物体采用烘焙,动态物体采用实时局部光照。
第四种烘焙+实时没什么必要,很耗性能
unity 4.x采用legacy shader也即传统shader,5.x采用standard shader(物理渲染)
屏幕特效:
首先在assets导入effects,在hierarchy的camera中add component——>image effects----->other----->antialiasing(反走样)
比如矩形边缘出现锯齿,走样,采用fxaa反走样算法可以优化
bloom属性:可以做出弥虹灯的效果
blur属性:(模糊效果)
motion blur属性:人物走动很快模糊
cubemap:如果表现一个物体十分光滑,该物体表面会反射出外界物体倒影,使用cubemap来模拟这种效果
LOD group;近处物体渲染十分精细物体到远处时为了提高效率不用渲染十分精细,步骤如下:添加一个gameobject添加LOD group属性,当LOD为100%时把原始尺寸物体asset拖动到add中,60%说明比较远了,拖动该物体小尺寸asset到add中。。。
2个特效: