I am creating a 3rd person style game and I am having trouble getting the character to rotate to face the mouse. Can anyone help?
Here is the code, movement and all.
using UnityEngine;
public class PlayerMovement : MonoBehaviour { public float speed = 6f;
Vector3 movement;
Animator anim;
Rigidbody playerRigidbody;
int floorMask;
float CamRayLength = 100f;
void Awake()
{
floorMask = LayerMask.GetMask ("Floor");
anim = GetComponent <Animator> ();
playerRigidbody = GetComponent <Rigidbody> ();
}
void FixedUpdate()
{
float h = Input.GetAxisRaw ("Horizontal");
float v = Input.GetAxisRaw ("Vertical");
Move (h, v);
Turning ();
Animating (h, v);
}
void Move (float h, float v)
{
movement.Set (h, 0f, v);
movement = movement.normalized * speed * Time.deltaTime;
playerRigidbody.MovePosition (transform.position + movement);
}
void Turning()
{
Ray camRay = Camera.main.ScreenPointToRay (Input.mousePosition);
RaycastHit floorHit;
if (Physics.Raycast (camRay, out floorHit, CamRayLength, floorMask))
{
Vector3 playerToMouse = floorHit.point - transform.position;
playerToMouse.y = 0f;
Quaternion newRotation = Quaternion.LookRotation (playerToMouse);
playerRigidbody.MoveRotation (newRotation);
}
}
void Animating(float h, float v)
{
bool walking = h != 0f || v != 0f;
anim.SetBool ("IsWalking", walking);
}
}
Answer by Abhiroop-Tandon · Mar 23, 2016 at 03:52 PM
get the axis of your mouse using Input.GetAxis()
and then set your player tranform to that
do you think that you could be a little specific to where I need to put those? Sorry I'm a little new to coding and can't figure out how to implement these.
Either write a function doing all the turning and call it in the update or type it in update
Your answer
Follow this Question
Related Questions
Character won't rotate along with camera on y axis 0 Answers
Check if character rotation is 180 degree turn 0 Answers
rotation problems 0 Answers
Help for my character Rotation When using Joystick 0 Answers
Making Character Rotate 0 Answers