减少Unity 2d中脚本导致的延迟

时间:2015-10-04 15:54:06

标签: c# android performance unity3d-2dtools

我正在使用此脚本进行背景滚动。背景是四边形的材料:

using UnityEngine;
using System.Collections;

public class scrollBG : MonoBehaviour {


     Update is called once per frame
    void Update () {

        MeshRenderer mr = GetComponent<MeshRenderer> ();

        Material mat = mr.material;

        Vector2 offset = mat.mainTextureOffset;

        offset.x += Time.deltaTime / 6f;

        mat.mainTextureOffset = offset; 

    }
}

直到游戏玩法大约30秒才能正常工作,然后它非常迟钝并且逐渐变得更糟。游戏设置非常简单,只是从屏幕一侧飞到另一侧的行星的景观视图,你必须躲闪。我怎样才能改善滞后? (行星移动得很好)。可能值得一提的是我正在为Android开发。

1 个答案:

答案 0 :(得分:1)

1)我不知道你可以做多长的偏移纹理大小。我认为在这种情况下,只需移动物体,然后改变它......

2)GetComponent运行时间很长。 (mr.material也是)使用缓存。试试这个:

MeshRenderer mr;
Material mat;

    void Start(){
        mr = GetComponent<MeshRenderer> ();
        mat = mr.material;
    }

    void Update () {
        Vector2 offset = mat.mainTextureOffset;

        offset.x += Time.deltaTime / 6f;

        mat.mainTextureOffset = offset; 
    }