Estoy comenzando mi desarrollo usando Unity. que estoy haciendo algo por el estilo:Unity3D C# calcule el avance correcto después de la rotación
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]);
Así que gire y me puedo mover, pero se mueve justo a la línea Z, sé que estoy llamando el movimiento específico Z. Pero con Javascript que puedo hacer algo
transform.forward+=this.speed*transform.forward*(float)Time.deltaTime;
Así que no necesito hacer el nuevo proceso de vectores y copiar a una variable independiente y funciona como un encanto, mediante la rotación y utilizando como orientación a sí mismo cuando está rotado
Probablemente debería editar el título y la etiqueta. La etiqueta de unidad como se usa hace referencia al contenedor de inyección de dependencia en el bloque de aplicación MS. Probablemente se esté refiriendo a unity-3D, también si esto es para juegos, es posible que desee agregar una etiqueta adecuada. – Tod
¿Qué sucede si coloca 'transform.forward + = this.speed * transform.forward * (float) Time.deltaTime;' en el código C#? El Javascript y C# compilan cada uno en el mismo lenguaje intermedio .NET, por lo que casi todo lo posible en uno es posible en el otro, si está codificado de forma un poco diferente. –
No funciona, es una variable de solo lectura – Lefsler