2016-06-30 3 views
0

Ich habe ein Board in Unity3D und ich habe einen Würfel an Bord. Das Board hat Textur- und Textur-Offset, die sich um die Y-Koordinate ändern, so dass es sich nach rückwärts zu bewegen scheint. Cube sollte sich auch mit der gleichen Geschwindigkeit bewegen wie der Offset des Boards, aber ich konnte nicht die gleiche Geschwindigkeit zwischen ihnen einstellen.Einheit - Textur Scroll-Geschwindigkeit mit Spielobjekt

My Board Scroll-Code:

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)); 
} 
} 

Und mein Würfel verschieben Code:

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) ; 
} 
} 

Also muss ich den Würfel mit der gleichen Geschwindigkeit des Boards versetzt Geschwindigkeit bewegen.

Antwort

1

Fügen Sie in beide Skripts eine öffentliche Geschwindigkeitsvariable ein.

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) ; } }

Während der Laufzeit versuchen, indem jeder dieser Geschwindigkeit Variablen Werte manuell im Editor Inspector zu synchronisieren. Nachdem Sie eine Feinabstimmung zwischen ihnen gefunden haben, wenden Sie diese Werte in der Entwurfszeit an.

+0

Sie sind wahr, aber der Benutzer kann Geschwindigkeitsvariablen in Spieloptionen ändern. Also sollte es eine perfekte Rate zwischen ihnen geben, sonst kann ich es nicht mit meinen Augen finden. –

+0

Sie benötigen irgendwo eine statische Variable, um die vom Benutzer gewählte Geschwindigkeit zu halten. Sie kalt multiplizieren beide Geschwindigkeiten damit. Wie auch immer, du musst diese Synchronisation vorher finden. – glaubergft

+0

Auch wenn Sie zuvor eine Synchronisationsgeschwindigkeit gefunden haben, muss die Synchronisationsvariable geändert werden, wenn Sie die wählbare Geschwindigkeit ändern. Andernfalls werden wir den Unterschied wieder sehen. –

Verwandte Themen