我如何在我的unity android游戏中消除滞后?
我是一个熟练的编程人员,因为场景中有很多物体,我的游戏已经落后了 我有消除比赛中落后的理论。 如果我可以在unity中控制渲染,我可以消除滞后。我如何在我的unity android游戏中消除滞后?,android,unity3d,unityscript,Android,Unity3d,Unityscript,我是一个熟练的编程人员,因为场景中有很多物体,我的游戏已经落后了 我有消除比赛中落后的理论。 如果我可以在unity中控制渲染,我可以消除滞后。 这要么在Unity中实现,要么实现它是一个坏主意,因为光线投射非常昂贵,而且需要很多光线投射。试着找出导致游戏滞后的其他问题,逐个功能禁用,并写下你有多少帧,这将让你最好地了解问题所在。联机查看哪些方法是昂贵的实例化、销毁、尝试合并您拥有的所有模型、数量较少的着色器、速度较快的着色器、要加载的纹理较少、FindGameObjectByName或tag
这要么在Unity中实现,要么实现它是一个坏主意,因为光线投射非常昂贵,而且需要很多光线投射。试着找出导致游戏滞后的其他问题,逐个功能禁用,并写下你有多少帧,这将让你最好地了解问题所在。联机查看哪些方法是昂贵的实例化、销毁、尝试合并您拥有的所有模型、数量较少的着色器、速度较快的着色器、要加载的纹理较少、FindGameObjectByName或tag……在这里,您将找到一个关于优化的优秀文档。它是为移动设备预先准备好的,但我希望您能找到您需要的:我建议将您的蓝色斑点放在对象池中,并禁用离开屏幕的蓝色斑点 您知道自己的位置,也知道池中对象的位置,您可以计算一个方向上的距离,例如在您身后,并禁用“x后数量”。 光线投射或碰撞非常丰富 在地形生成脚本上,检查是否存在禁用的池对象,如果存在,则应将其放在该级别的前面,并重新定位或使用您在该级别的逻辑 除非您真的需要,否则不要实例化和销毁,而是在水平负载上进行,而不是动态地进行。 很贵 unity页面上有一些非常好的教程,请看一下。
它们涵盖了无止境的跑步者之类的内容。这可能没有多大帮助,但最好记住,比较像gameObject这样的标记。CompareTagtag不带==运算符。这一切取决于您运行代码的次数,看看您运行得最多的是什么,并尽可能对其进行优化。
using UnityEngine;
using System.Collections;
public class Enemy : MonoBehaviour {
void Update(){
void Start(){
GetComponent<Renderer>().enabled = false;
}
object2 = GameObject.Find("TR");
var distance = Vector3.Distance(gameObject.transform.position, object2.transform.position);
print (distance);
if(distance <= 80){
GetComponent<Renderer>().enabled = true;
}
}
}
void OnTriggerEnter(Collider collision)
{
if(collision.gameObject.tag == "zone")
{
GetComponent<Renderer>().enabled = true;
}
else{
GetComponent<Renderer>().enabled = false;
}
void OnTriggerEnter(Collider collision)
{
if(collision.gameObject.tag == "zone")
{
gameObject.SetActive(false);
}
else{
gameObject.SetActive(true);
}