一、数学计算:
利用弧度判断范围:
向量点乘求夹角,求出弧度
float dot =Vector3.Dot(a.normalized, b.normalized);
float angle = Mathf.Acos(dot) * Mathf.Rad2Deg
二、降低DrawCalls:
①Occlusion Culling(OC):
a.定义:当物体被送进渲染流水线之前,将摄像机视角内看不到的物体进行剔除。从而减少,从而减少每帧渲染数据量,提高渲染性能
b.适用:场景中物体较密集
c.使用(Instance OC): 创建层→为游戏物体指定层(将参与遮挡剔除)与标签(将自动附加IOClod)→物体添加碰撞器Collider组件→摄像机附加脚本ICOcam
d.缺:需要判断物体是否渲染,增加CPU的开销
②精灵打包:
a.定义:做界面时使用小图,而在项目发布时引擎会根据精灵Packing Tag 自动将小图合并在一张大图集中,从而减少Draw Calls,减少GPU渲染物体次数。
b.设置打包方式:
Edit –> Project Settings –> Editor –> Sprite Packer
– Disabled 表示不启用
– Enabled For Builds 表示打包时启用
– Always Enabled 表示永远启用
③图集:
a.定义:美工制作图片时,尽量将需要在同个界面显示的小图做到一张大图中。
b.在Unity中切割精灵:
– 选中图集,在 Inspec