Car Controller not manipulating player's camera on enter
Hi. I'm relatively new to Unity and Programming in general, and I've been making a car controller for my simple game. I've run into a bit of trouble, and I can't figure out why. I've approached with several methods and I can't find anything wrong. I've even used Debug.Log to make sure that It's referencing the right Child Object (The player's camera). I'm trying to rotate the player's camera to face straight so that if he enters the car looking down it will make it look forward again. It's the line referencing the Player's GameObject Child in the 0 Index in the EnterExit Car function. Please tell me what's wrong, it's likely a simple mistake.
CarController
using UnityEngine;
using System.Collections;
public class CarController : MonoBehaviour {
public bool carOccupied;
public Vector3 CarSeatPosition;
public Quaternion CarSeatRotation;
public GameObject player;
public GameObject playerCamera;
public int CarSpeed;
public int rotateSpeed;
public int AccelerationDecelerationSpeed;
PlayerMovement playerMovScript;
Rigidbody plyRigidBody;
// Use this for initialization
void Start () {
playerMovScript = player.GetComponent<PlayerMovement>();
plyRigidBody = player.GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update () {
if (Input.GetButton("Forward") && carOccupied == true){
transform.position += transform.forward * CarSpeed * Time.deltaTime;
}
if (Input.GetButton("Backward") && carOccupied == true)
{
transform.position += -transform.forward * CarSpeed * Time.deltaTime;
}
if (Input.GetButton("Left") && carOccupied == true)
{
transform.Rotate(0, -rotateSpeed * Time.deltaTime, 0);
}
if (Input.GetButton("Right") && carOccupied == true)
{
transform.Rotate(0, rotateSpeed * Time.deltaTime, 0);
}
if (Input.GetButtonDown("Interact") && carOccupied == true)
{
EnterExitCar();
}
}
public void EnterExitCar()
{
if (!carOccupied)
{
//Destroy(player.GetComponent<Rigidbody>());
plyRigidBody.isKinematic = true;
player.transform.GetChild(0).transform.Rotate(new Vector3(-player.transform.GetChild(0).transform.rotation.x, 0, 0));
player.transform.localRotation = CarSeatRotation;
player.transform.parent = gameObject.transform;
player.transform.localPosition= CarSeatPosition;
playerMovScript.mouselookEnabled = false;
playerMovScript.walkEnabled = false;
carOccupied = true;
} else
{
// player.AddComponent<Rigidbody>();
// player.GetComponent<Rigidbody>().isKinematic = false;
plyRigidBody.isKinematic = false;
player.transform.parent = null;
player.transform.position = transform.position - new Vector3(-1, 0, 0);
playerMovScript.mouselookEnabled = true;
playerMovScript.walkEnabled = true;
carOccupied = false;
}
}
}
Your answer
Follow this Question
Related Questions
I'm having issues with collision and Physics 1 Answer
Rotate player to camera direction when using cinemachine FreeLook Camera 0 Answers
Camera flickers while chasing the player 0 Answers
Make character face movement direction 0 Answers
Scene tearing after making camera child of player character. 0 Answers