MisticX
@MisticX
Кратно обо мне

Как решить проблему со скриптом вхождения в машину?

Сделал скрипт для того, чтобы игрок смог садиться в машину, но после нажатия клавиши "F" ни один из сценариев управления машины не включался и не отключались скрипты управления игроком, такая же ситуация с камерой машины и игрока. Вот сам скрипт:
public class CarDoorScript : MonoBehaviour
{

    public GameObject player;
    public Camera playerCamera;
    public Camera carCamera;
    public GameObject car;

    public Transform DriverPoint;//позиция игрока при входе в машину
    public Transform ExitPoint;// позиция игрока при выходе из машины

    [SerializeField]
    private bool inCar = false;
    private void OnTriggerStay(Collider other)
    {

        if (other.GetComponent<PlayerCharacter>() && Input.GetKey(KeyCode.F) && !inCar
            && car.GetComponent<WheelScript>().enabled == !true && player.GetComponent<CharacterMove>().enabled == true)
        {
            playerCamera.enabled = false;
            carCamera.enabled = true;

            player.transform.position = DriverPoint.transform.position;

            car.GetComponent<WheelScript>().enabled = true;
            player.GetComponent<CharacterMove>().enabled = false;

            inCar = true;
        }
        if (Input.GetKey(KeyCode.F) && inCar
            && car.GetComponent<WheelScript>().enabled == true && player.GetComponent<CharacterMove>().enabled == false)
        {
            playerCamera.enabled = true;
            carCamera.enabled = false;

            player.transform.position = ExitPoint.transform.position;

            car.GetComponent<WheelScript>().enabled = false;
            player.GetComponent<CharacterMove>().enabled = true;

            inCar = false;
        }
    }
}
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Дебаггером пробовали подключаться? Глянул мельком, но всё выглядит так, что у вас после срабатывания первого условия сразу же сработает второе. Сделайте хотя бы else if, но лучше, конечно, сделать специальный компонент для кнопки и отделить логику входа/выхода из машины. По аналогии с UI.Button.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы