- Home /
OnTriggerStay weird behaviour
Can somebody pleas take a look at this script ?`using UnityEngine; using System.Collections;
I'm trying to use it - it works, but i get the prints (e.g. ("Something went wrong. Where is the player?");) like three times per F key released. What did i do wrong ? Thanks in advance guys.
using UnityEngine;
using System.Collections;
public class EnterExit : MonoBehaviour {
public Drivetrain Drivetrain;
public CarController CarController;
public SoundController SoundController;
public GameObject Car;
public GameObject ExitPoint;
public GameObject CarCamera;
public GameObject Player ;
public GameObject PlayerCamera;
public string PlayerState;
bool IsPlayerInCar;
bool IsPlayerInTrigger;
// Use this for initialization
void Start () {
CarController = GetComponent (typeof (CarController)) as CarController;
SoundController = GetComponent (typeof (SoundController)) as SoundController;
IsPlayerInTrigger = false;
IsPlayerInCar = false;
}
void OnTriggerStay(Collider Player) {
if(Player.tag=="Player") {
IsPlayerInTrigger = true;
}
}
void OnTriggerExit(Collider Player) {
if(Player.tag=="Player") {
IsPlayerInTrigger = false;
}
}
void LateUpdate () {
if (Input.GetKeyUp(KeyCode.F)) {
if (!IsPlayerInCar && !IsPlayerInTrigger) {
print ("Something went wrong. Where is the player?");
}
if (!IsPlayerInCar && IsPlayerInTrigger) {
EnterCar();
}
if (IsPlayerInCar && !IsPlayerInTrigger) {
ExitCar();
}
if (IsPlayerInCar && IsPlayerInTrigger) {
print ("Something went wrong(Maybe ExitPoint not set right)");
}
}
if (IsPlayerInCar) {
PlayerState = "In Car";
}
if (!IsPlayerInCar) {
PlayerState = "Not in Car";
}
if (IsPlayerInTrigger) {
PlayerState = "In Trigger";
}
if (!IsPlayerInTrigger) {
PlayerState = "Out of Trigger";
}
}
void EnterCar () {
PlayerCamera.camera.enabled = false;
PlayerCamera.gameObject.GetComponent<AudioListener> ().enabled = false;
Player.gameObject.transform.parent = ExitPoint.transform;
Player.transform.localPosition = new Vector3(0,20,0);
Player.transform.localRotation = new Quaternion(0,0,0,0);
// Player.gameObject.SetActive(false);
Player.gameObject.GetComponent<CharacterMotor>().enabled = false;
CarController.enabled = true;
Drivetrain.enabled = true;
CarCamera.gameObject.GetComponent<Camera> ().enabled = true;
CarCamera.gameObject.GetComponent<AudioListener> ().enabled = true;
CarCamera.gameObject.GetComponent<MouseOrbit> ().enabled = true;
IsPlayerInCar = true;
SoundController.EngineOn = true;
}
void ExitCar () {
CarController.brake = 999;
CarController.enabled = false;
Drivetrain.enabled = false;
CarCamera.camera.enabled = false;
CarCamera.gameObject.GetComponent<Camera> ().enabled = false;
CarCamera.gameObject.GetComponent<AudioListener> ().enabled = false;
CarCamera.gameObject.GetComponent<MouseOrbit> ().enabled = false;
PlayerCamera.gameObject.GetComponent<AudioListener> ().enabled = true;
PlayerCamera.gameObject.GetComponent<Camera> ().enabled = true;
Player.transform.localPosition = new Vector3(0,0,0);
Player.gameObject.transform.parent = null;
Player.transform.localRotation = new Quaternion(0,0,0,0);
// Player.gameObject.SetActive(true);
Player.gameObject.GetComponent<CharacterMotor>().enabled = true;
IsPlayerInCar = false;
SoundController.EngineOn = false;
}
}
//void OnGUI ()
// {
//
// GUI.color = Color.black;
// GUI.Label (new Rect (5, 220, 1024, 300), "Current Player State = " + PlayerState);
// }
//}
Comment