Hello. So i have been working on my script for movement for my character and untill recently, it was working just fine. here is the full error: NullReferenceException: Object reference not set to an instance of an object
PlayerMovement.FixedUpdate () (at Assets/Character/Scripts/PlayerMovement.cs:32)
Does anyone have any ideas on whats going on? Here is the script:
using UnityEngine;
using System.Collections;
public class PlayerMovement : MonoBehaviour {
public float speed = 6f;
Vector3 movement;
Rigidbody playerrigidbody;
bool IsFlying = false;
public float mousesensetivity = 2f;
void Start () {
playerrigidbody = GetComponent<Rigidbody>();
}
// Update is called once per frame
void FixedUpdate () {
// rotation
float h = Input.GetAxisRaw("Horizontal");
float v = Input.GetAxisRaw("Vertical");
move(h, v);
float Xrot = Input.GetAxisRaw("Mouse X") * mousesensetivity;
transform.Rotate (0, Xrot, 0);
float Yrot = Input.GetAxisRaw("Mouse Y") * mousesensetivity;
Camera.main.transform.Rotate(Yrot, 0, 0);
Vector3 speed = new Vector3(h, 0, v);
speed = transform.rotation * speed;
}
void move (float h, float v)
{
if (Input.GetKey(KeyCode.Space))
{
if (IsFlying == false)
{
IsFlying = true;
GetComponent<Rigidbody>().velocity = new Vector3(0, 6, 0);
}
}
Vector3 Speed = new Vector3(h, 0, v);
Speed = transform.rotation * Speed / 6;
movement.Set(h, 0f, v);
playerrigidbody.MovePosition(transform.position + Speed);
}
void OnCollisionEnter(Collision col)
{
if (col.gameObject.name == "floor" || col.gameObject.name == "PlatformPrototype08x01x08" || col.gameObject.name == "StepsPrototype04x02x02" || col.gameObject.name == "PlatformPrototype02x01x02")
{
IsFlying = false;
}
}
}