Untitled
unknown
csharp
3 years ago
3.5 kB
5
Indexable
using System.Collections; using System.Collections.Generic; using UnityEngine; using Invector.vCharacterController; public class CarEnterExit : MonoBehaviour { public GameObject player; // The player object public GameObject car; // The car object public Transform carSeat; // The transform of the seat in the car where the player will be seated public bool inCar = false; // Flag to track whether the player is in the car (set to false by default) private vThirdPersonInput playerController; // The CharacterController component on the player object private CarController carController; // The CarController component on the car object void Start() { // Get the CharacterController component on the player object playerController = player.GetComponent<vThirdPersonInput>(); // Get the CarController component on the car object carController = car.GetComponent<CarController>(); } void Update() { // If the player is in the car and press the "E" key, exit the car if (inCar && Input.GetKeyDown(KeyCode.E)) { ExitCar(); } // If the player is not in the car and press the "E" key, try to enter the car else if (!inCar && Input.GetKeyDown(KeyCode.E)) { EnterCar(); } } void OnTriggerEnter(Collider other) { // If the player collides with the car, show the "Press E to enter" prompt if (other.gameObject == player) { Debug.Log("Press E to enter car"); } } void OnTriggerExit(Collider other) { // If the player exits the car's trigger zone, hide the "Press E to enter" prompt if (other.gameObject == player) { Debug.Log(""); } } void EnterCar() { // Enable the CharacterController component on the player object playerController.enabled = false; // Set the player's parent to the car player.transform.parent = car.transform; // Set the player's position to the car seat player.transform.position = carSeat.position; // Set the player's rotation to match the car seat's rotation player.transform.rotation = carSeat.rotation; // Set the player's flag to indicate that they are in the car inCar = true; // Enable the CarController component on the car object carController.enabled = true; // Disable the player's mesh renderer //player.GetComponentInChildren<MeshRenderer>().enabled = false; } void ExitCar() { // Disable the CarController component on the car object carController.enabled = false; // Set the player's parent to the default parent (null) player.transform.parent = null; // Set the player's position to the position of the car player.transform.position = car.transform.position; // Set the player's rotation to match the car's rotation player.transform.rotation = car.transform.rotation; // Set the player's flag to indicate that they are not in the car inCar = false; // Enable the CharacterController component on the player object playerController.enabled = true; // Enable the player's mesh renderer //player.GetComponentInChildren<MeshRenderer>().enabled = true; } }
Editor is loading...