2016-06-30 78 views
0

我有一個在unity3D板,我有一個立方體板。 Board通過Y座標獲得紋理和紋理偏移,所以它看起來像向後移動。立方體也應該以相同的速度移動,但我無法在它們之間設置相同的速度。Unity - 紋理滾動速度與gameobject

我的板滾動代碼:

public class moveBoard : MonoBehaviour 
{ 

// Use this for initialization 
void Start() 
{ 

} 

// Update is called once per frame 
void Update() 
{ 

    this.GetComponent<MeshRenderer>().material.SetTextureOffset("_MainTex", new Vector2(0, -1 * Time.time)); 
} 
} 

我的立方體移動代碼:

public class moveTus : MonoBehaviour 
{ 
public GameObject board; 
float offsetY = 0f; 
// Use this for initialization 
void Start() 
{ 

} 

// Update is called once per frame 
void Update() 
{ 
    this.transform.Translate(Vector3.back * -10 * Time.deltaTime) ; 
} 
} 

所以,我需要與董事會的偏移速度相同的速度移動立方體。

回答

1

在兩個腳本中都包含公共速度變量。

public class moveBoard : MonoBehaviour { public float speed=1; void Update() { this.GetComponent().material.SetTextureOffset("_MainTex", new Vector2(0, -1 * Time.deltaTime * speed * UserOptions.speed)); } }

public class moveTus : MonoBehaviour { public float speed=1; void Update() { this.transform.Translate(Vector3.back * -10 * Time.deltaTime * speed * UserOptions.speed) ; } }

在運行時間期間嘗試通過改變任何這些速度變量的值在編輯器檢查員手動同步。在找到它們之間的微調之後,在設計時應用這些值。

+0

你是真實的,但用戶將能夠更改遊戲選項中的速度變量。所以他們之間應該有一個完美的比率,否則我無法用眼睛找到它。 –

+0

您需要一個靜態變量來保存用戶選擇的速度。你冷卻乘以這兩個速度。無論如何,你必須先找到這個同步。 – glaubergft

+0

即使您之前找到同步速度,如果您更改可選速度,則必須更改同步變量,否則我們將再次看到差異。 –