0
\$\begingroup\$

I want my player object rotate to face vector3 point on terrain.

public Vector3 RocketPointer;
public Transform pointer,Player;
public bool rocket_, button_move;

// Update is called once per frame
void Update()
{

    if (button_move == true)
    {
        Ray mouseRay = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit mousePoint;

        if (Physics.Raycast(mouseRay, out mousePoint, 100))
        {
            RocketPointer = mousePoint.point;
            pointer.transform.position = RocketPointer;
        }

        if (button_move == true && Input.GetMouseButtonDown(0))
        {
        // rotate player object to face rocketpointer point
            rocket_ = true;
            button_move = false;
        }

    }

    if (button_move == false && Input.GetMouseButtonUp(0))
    {
        rocket_ = false;
    }

}

public void move_button() // UI button
{
    button_move = !button_move;
}
\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

There is a handy convenience method for this: Transform.LookAt.

Assuming player is your player game object:

player.transform.LookAt(RocketPointer);
\$\endgroup\$
1
  • \$\begingroup\$ Thank you for answering. Now is rotate and if anyone want to use smooth rotation use "Quaternion.Slerp" \$\endgroup\$ Commented Sep 12, 2018 at 20:23

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.