Sto iniziando il mio sviluppo utilizzando Unity. sto facendo qualcosa di simile:Unity3D C# calcola l'avanzamento corretto dopo la rotazione
if(Input.GetKey(KeyCode.A))newValues[1]-=this.turnSpeed*(float)Time.deltaTime;
if(Input.GetKey(KeyCode.D))newValues[1]+=this.turnSpeed*(float)Time.deltaTime;
transform.Rotate(0, newValues[1], 0);
if(Input.GetKey(KeyCode.W))newValues[0]+=this.speed*transform.forward.z*(float)Time.deltaTime;
if(Input.GetKey(KeyCode.S))newValues[0]-=this.speed*transform.forward.z*(float)Time.deltaTime;
transform.position = new Vector3(transform.position.x, transform.position.y, (float)newValues[0]);
Così ho ruotare e posso passare, ma si muove solo nella linea Z, so che sto chiamando il movimento specifico Z. Ma con JavaScript posso fare qualcosa
transform.forward+=this.speed*transform.forward*(float)Time.deltaTime;
Quindi non ho bisogno di fare il nuovo processo vettoriale e copiare a una variabile indipendente e funziona come un fascino, utilizzando la rotazione e utilizzando come l'orientamento a se stesso quando è ruotato.
Probabilmente è opportuno modificare il titolo e tag. Il tag unity utilizzato si riferisce al contenitore di iniezione delle dipendenze nel blocco di applicazione MS. Probabilmente ti riferisci a unity-3D, anche se questo è per i videogiochi potresti voler aggiungere un tag appropriato. – Tod
Cosa succede se metti 'transform.forward + = this.speed * transform.forward * (float) Time.deltaTime;' nel codice C#? Javascript e C# compilano ciascuno lo stesso linguaggio intermedio .NET, quindi quasi tutto possibile in uno è possibile nell'altro, se codificato in modo un po 'diverso. –
Non funziona, è una variabile di sola lettura – Lefsler