2015-10-04 110 views
0

我正在使用此腳本進行背景滾動。背景是一個四的材料:減少由Unity 2d中的腳本引起的延遲

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

1)我不知道什麼尺寸的紋理,你可以做很長的偏移量。我認爲在這種情況下,只需移動對象,然後更改其...

2)GetComponent非常長時間運行。 (先生也是)使用緩存。試試這個:

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; 
    } 
+0

謝謝。我剛剛嘗試過,它在Unity的遊戲窗口中效果稍好一些,但在Android設備上仍然一樣。 – JGrn84

+0

我不喜歡你的抵消。你在課上看到了這個?你確定這是代碼的情況嗎?你是否試圖清理它?也許你在裝配過程中選擇了不正確的videadapter? – user2413972

+0

我從YouTube得到它是的。我還有什麼可以做的抵消? – JGrn84