Как сделать триггер правильно?

Я не знаю как сделать так что бы когда перс стоял на триггере то тогда клавиша работала а когда не стоит не работала вот скрипт

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class TpGGhaus : MonoBehaviour
{
    public int levelToLoad;

    public Vector3 position;
    public VectorValue playerStorage;

    if (Input.GetKeyUp("e"))
        {
            playerStorage.initialValue = position;
            SceneManager.LoadScene(levelToLoad);
        }

}

Просто у меня клавиша работает в любой точке карты


Ответы (1 шт):

Автор решения: Andrew_STOP_RU_AGRESSION_IN_UA
Bool IsInTriger = false;

private void OnTriggerEnter(Collider other)
{
    IsInTriger = true;
}

void OnTriggerExit(Collider other) 
{
    IsInTriger = false;
}

void Update()
{
    if (IsInTriger && Input.GetKeyUp("e") ) {
        playerStorage.initialValue = position;
        SceneManager.LoadScene(levelToLoad);
    }
}

https://docs.unity3d.com/ScriptReference/Collider.html

PS:

OnTriggerStay is called almost all the frames for every Collider other that is touching the trigger.The function is on the physics timer so IT WON'T NECESSARILY RUN EVERY FRAME. - поэтому не подходит

→ Ссылка