У меня есть скрипт, например, прикрепленный к огню, и я хочу нанести урон игроку, если он приблизится к значению этого огня.
public float fireDamageRange = 5;
public float fireDamage = 10;
private Vector3 origin;
private Vector3 direction;
void Update(){
origin = transform.position;
direction = transform.forward;
RaycastHit fireHit;
if (Physics.SphereCast(origin, fireDamageRange, direction, out fireHit) && fireHit.transform.gameObject.layer == LayerMask.NameToLayer("Player") && !makingDamage)
{
makingDamage = true;
MakeDamage(fireHit);
StartCoroutine(WaitToMakeDamage());
}
}
IEnumerator WaitToMakeDamage()
{
yield return new WaitForSecondsRealtime(0.2f);
makingDamage = false;
}
Скрипт прикреплен кПожар.Это возвращает true, только если Player находится на самом деле fireDamageRange от начала координат, а не если он приближается.Что я делаю не так?