Hi,
I’m currently trying to complete the survival shooter unity tutorial.
I’ve hit a strange wall, my code is exactly as the complete code is shown:
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> ();
Debug.Log ("awake");
}
void Start () {
}
void FixedUpdate () {
float h = Input.GetAxisRaw("Horizontal");
float v = Input.GetAxisRaw("Vertical");
Debug.Log (h);
Debug.Log (v);
Debug.Log ("update");
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);
}
}
However when it runs I get this error:
Even though as you can see there is in fact a rigidbody component on the GameObject the script is attached to.
Any ideas what could be causing this?
