我如何在我的unity android游戏中消除滞后?

我如何在我的unity android游戏中消除滞后?,android,unity3d,unityscript,Android,Unity3d,Unityscript,我是一个熟练的编程人员,因为场景中有很多物体,我的游戏已经落后了 我有消除比赛中落后的理论。 如果我可以在unity中控制渲染,我可以消除滞后。 这要么在Unity中实现,要么实现它是一个坏主意,因为光线投射非常昂贵,而且需要很多光线投射。试着找出导致游戏滞后的其他问题,逐个功能禁用,并写下你有多少帧,这将让你最好地了解问题所在。联机查看哪些方法是昂贵的实例化、销毁、尝试合并您拥有的所有模型、数量较少的着色器、速度较快的着色器、要加载的纹理较少、FindGameObjectByName或tag

我是一个熟练的编程人员,因为场景中有很多物体,我的游戏已经落后了 我有消除比赛中落后的理论。 如果我可以在unity中控制渲染,我可以消除滞后。


这要么在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);
}