1、Draw Call
2、资源(模型、贴图、粒子)
3、渲染(相机,光照,Shader)
4、网络
5、代码(代码编写,资源加载,物理系统)
可以在Profiler窗口查看项目性能消耗主要在那几个地方,然后有针对性的进行优化
下面给大家分享一些常用的代码方面的内容
1、在场景中有大量物体频繁的激活或隐藏时,不适用SetActive(),在需要隐藏的时候移除屏幕,显示的时候移到屏幕内(也就是修改物体的位置)。还有一个方法,就是把需要隐藏的物体设置为一个已经隐藏的物体的子物体(父物体是隐藏的,子物体自然也看不到),这种方法和SetActive()方法差不多,不推荐使用。
2、动态实例化到场景中的物体,名字都会有一个后缀(Clone),但是为了方便识别,会修改它的名字,这样同样会产生性能消耗。
3、在不影响正常运行结果的情况下,减少对Update或者FixUpdate的调用次数
假设显示将所有的Update刷新逻辑写在RefreshUpdate中
void RefreshUpdate()
{
Debug.Log("RefreshUpdate");
}
3-1每隔一定帧数,执行一次RefreshUpdate();
int SpaceCount=10;
int UpdateCount;
void Update()
{
if(UpdateCount % SpaceCount==0)
{
UpdateCount =0;
}
UpdateCount ++;
}
3-2使用协程While(true)循环,每次循环间隔一定的时间,调用RefreshUpdate(),需要在Satrt函数中开启协程
float SpaceTime=0.1f;
IEnumerat