コード例 #1
0
ファイル: WaypointFollower.cs プロジェクト: pdxparrot/assets
        protected virtual void FixedUpdate()
        {
            if (!CanMove)
            {
                return;
            }

            float dt = Time.fixedDeltaTime;

            _transform.MoveTowards(_nextWaypoint.Transform.position, _speed * dt);

            if (Vector3.Distance(_transform.position, _nextWaypoint.Transform.position) < float.Epsilon)
            {
                if (_nextWaypoint.HasCooldown)
                {
                    _cooldown.Start(_nextWaypoint.Cooldown);
                }

                _transform.position = _nextWaypoint.Transform.position;

                ArrivalEvent?.Invoke(this, EventArgs.Empty);

                SetWaypoint(_nextWaypoint.NextWaypoint);
            }
        }