void Update() { _distanceTravelled += _speed * Time.deltaTime; var travelPercent = _distanceTravelled / _path.length; if (travelPercent > _startToFleePercent) { _startToFleeParticle.gameObject.SetActive(true); } if (travelPercent >= 1f) { OnDuckFlee?.Invoke(this); _OnDuckFlee.Invoke(); Destroy(gameObject); return; } transform.position = _path.GetPointAtDistance(_distanceTravelled); var forward = _path.GetDirectionAtDistance(_distanceTravelled); var rot = Quaternion.LookRotation(forward, Vector3.up); transform.rotation = rot; }
private void Flee() { OnDuckFlee?.Invoke(this); Destroy(gameObject); }