2016-06-30 49 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

即使您之前找到同步速度,如果您更改可选速度,则必须更改同步变量,否则我们将再次看到差异。 –