I suddenly got this error. I don’t know what went wrong. I can still play my game, but I get this error when I slide my character.
using UnityEngine;
using System.Collections;
public class CameraController : MonoBehaviour {
private GameObject player;
PlayerController playerController;
public float cameraHeight = 4;
public float cameraDistance = 4;
public float smooth = 3;
private float newCameraHeight;
private int direction;
// Use this for initialization
void Start ()
{
player = GameObject.Find ("Player");
playerController = player.GetComponent<PlayerController>();
transform.position = new Vector3 (player.transform.position.x, cameraHeight, player.transform.position.z);
newCameraHeight = cameraHeight;
}
// Update is called once per frame
void Update ()
{
float speed = playerController.runSpeed;
direction = playerController.getDirection ();
if(newCameraHeight < cameraHeight)
{
cameraHeight -= 0.1f;
}
else if(newCameraHeight > cameraHeight)
{
cameraHeight += 0.1f;
}
Vector3 MoveTo = new Vector3 (player.transform.position.x, cameraHeight, player.transform.position.z);
switch(direction){
case 0:
MoveTo += new Vector3(0, 0, -cameraDistance);
break;
case 1:
MoveTo += new Vector3(-cameraDistance , 0, 0);
break;
case 2:
MoveTo += new Vector3(0, 0, cameraDistance);
break;
case 3:
MoveTo += new Vector3(cameraDistance , 0, 0);
break;
}
transform.position = Vector3.MoveTowards (transform.position, MoveTo, speed);
Vector3 LookAtVector = new Vector3 (player.transform.position.x, player.transform.position.y + 2, player.transform.position.z);
// Create a rotation based on the relative position of the player being the forward vector.
Quaternion neededRotation = Quaternion.LookRotation(LookAtVector - transform.position);
// Lerp the camera's rotation between it's current rotation and the rotation that looks at the player.
transform.rotation = Quaternion.Lerp(transform.rotation, neededRotation, smooth * Time.deltaTime);
}
public void changeHeight(float height)
{
newCameraHeight = height;
}
}