У меня есть код, который, когда он выполняется, перетаскивает символ вперед. Проблема в том, что персонаж никогда не перестает двигаться и продолжает навсегда. Есть ли способ остановить движение персонажа через 2 секунды? Вот код, я использую:Остановка функции обновления в Unity
public class meleeAttack : MonoBehaviour
{
public int speed = 500;
Collider storedOther;
bool isHit = false;
void Start()
{
}
void Update()
{
if (isHit == true)
{
storedOther.GetComponent<Rigidbody>().AddForce(transform.forward * speed);
}
}
void OnTriggerStay(Collider other)
{
if (other.gameObject.tag == "Player" && Input.GetKeyUp(KeyCode.F))
{
storedOther = other;
isHit = true;
}
}
}
Я не уверен, если есть способ, чтобы остановить обновление функции(), поэтому он останавливает движение персонажа.
Не вызывайте 'storedOther.GetComponent ()' в функции обновления. Либо вызовите его один раз во время 'Start()' и сохраните Rigidbody, сделайте то же самое для 'OnTriggerStay', когда вы получите новый коллайдер. –