- Home /
How to Rotate like b.transform.rotation = Quaternion.Euler(x, y, z); ?
Hi. I assigned a Vector3 to a gameobject's position:
player2.transform.position = new Vector3(x1, y1, z1);
And player translated perfectly. But I can't do it for rotation:
player2.transform.rotation = Quaternion.Euler(x2, y2, z2);
It actually rotates. The value changes. And if I turn right and move, it goes to right. There is no problem. But player doesn't rotate in scene. It turns right but it still looking forward.
EDIT: I found that it actually works. It was not rotating because my values were wrong.
I don't understand why doesn't it look at the direction it rotated ?
Answer by I_Am_Err00r · Jul 11, 2019 at 07:04 PM
Quaternion's are different because you have to find rotation speed and angle you are rotating to, it requires a lot of code that personally I have no idea what it means, but I know how to copy an paste and then plug in my values where it needs them.
To find rotation, you need this:
using UnityEngine;
public class SlerpToLookAt: MonoBehaviour
{
//values that will be set in the Inspector
public Transform Target;
public float RotationSpeed;
//values for internal use
private Quaternion _lookRotation;
private Vector3 _direction;
// Update is called once per frame
void Update()
{
//find the vector pointing from our position to the target
_direction = (Target.position - transform.position).normalized;
//create the rotation we need to be in to look at the target
_lookRotation = Quaternion.LookRotation(_direction);
//rotate us over time according to speed until we are in the required rotation
transform.rotation = Quaternion.Slerp(transform.rotation, _lookRotation, Time.deltaTime * RotationSpeed);
}
This was actually directly copied from this post on Unity: https://answers.unity.com/questions/254130/how-do-i-rotate-an-object-towards-a-vector3-point.html
Well I tried it. I assigned the "players position + 5 of z axis" to the target transform. It looked like it worked. But after 180 degrees of turning right, it started to turn left.
Your answer
Follow this Question
Related Questions
how to ignore transform.position.y 3 Answers
Position and rotate 3 sprites perpendicular to the edges of a triangle 1 Answer
How to make rotation return to starts after key release? #c 1 Answer
Objects Instantiating at wrong position 3 Answers
How do I get the Rotation postition of a gameobject 1 Answer