Rotiți caracterul în direcția de mișcare

Bună ziua tuturor! Am următorul apel pentru ajutor: Trebuie să fac o schimbare în direcția mișcării. Folosesc CharacterController, caracterul se mișcă în coordonatele XZ, vă rog să-mi spuneți cum să determinați unghiul Y în care doriți să rotiți caracterul, astfel încât axa Z "arăta" în direcția mișcării.






Iată scriptul:

private void MoveUnit # 40; # 41;
# 123;
comutator # 40; controlType # 41;
# 123;
Teste de control pentru cazuri. Keybord.
moveDirection = Vector3 nou # 40; Intrare. GetAxis # 40; „Orizontală“ # 41; * speed_X, 0f, Input. GetAxis # 40; "Vertical" # 41; * speed_Z # 41; ;
pauză;
Teste de control pentru cazuri. VirtualJoystick.
moveDirection = Vector3 nou # 40; moveJoystick. AxisX * speed_X, 0f, mutaJoystick. AxisY * speed_Z # 41; ;
pauză;
# 125;

moveDirection = Camera. mainCamera. transformare. TransformDirection # 40; moveDirection # 41; ;
controler. SimpleMove # 40; moveDirection # 41; ;

//this.transform.rotation = Quaternion.Euler (Vector3 nou (0f,






/ / Vector3.Angle (transform.TransformDirection (Vector3.forward), controller.velocity),
// 0f));
# 125;

Mi-am rupt deja capul. Întrebarea este un lucru elementar, dar nu pot decide. Aș aprecia cu adevărat orice ajutor.

Rinal a scris (a): Bună ziua tuturor! Am următorul apel pentru ajutor: trebuie să fac o schimbare a caracterului în direcția mișcării. Utilizați CharacterController, caractere se mută în coordonatele XZ, vă rugăm să-mi spuneți cum să se determine unghiul Y, care este necesar pentru a transforma un caracter care ar fi axa Z este „în căutarea“ în direcția de deplasare.
Iată scriptul:

private void MoveUnit # 40; # 41;
# 123;
comutator # 40; controlType # 41;
# 123;
Teste de control pentru cazuri. Keybord.
moveDirection = Vector3 nou # 40; Intrare. GetAxis # 40; „Orizontală“ # 41; * speed_X, 0f, Input. GetAxis # 40; "Vertical" # 41; * speed_Z # 41; ;
pauză;
Teste de control pentru cazuri. VirtualJoystick.
moveDirection = Vector3 nou # 40; moveJoystick. AxisX * speed_X, 0f, mutaJoystick. AxisY * speed_Z # 41; ;
pauză;
# 125;

moveDirection = Camera. mainCamera. transformare. TransformDirection # 40; moveDirection # 41; ;
controler. SimpleMove # 40; moveDirection # 41; ;

//this.transform.rotation = Quaternion.Euler (Vector3 nou (0f,
/ / Vector3.Angle (transform.TransformDirection (Vector3.forward), controller.velocity),
// 0f));
# 125;

Mi-am rupt deja capul. Întrebarea este un lucru elementar, dar nu pot decide. Aș aprecia cu adevărat orice ajutor.

Totul, înțeles. Aici, citiți aici







Trimiteți-le prietenilor: