protected override void Update() { _Time += Time.deltaTime; float maxDistance = _DashTime * _manager.Stat.statData._DashSpeed; if (_Time < _DashReadyTime) { } else if (_Time < _DashReadyTime + _DashTime) { _manager.isNotChangeState = true; transform.position = Vector3.MoveTowards(this.transform.position, dashEndPos, _manager.Stat.statData._DashSpeed * Time.deltaTime); } else if (_Time < _DashReadyTime + _DashTime + _DashAfterDelay) { _manager.CC.detectCollisions = true; } else if (_Time > _DashReadyTime + _DashTime + _DashAfterDelay) { if (GameLib.DistanceToCharacter(_manager.CC, _manager.priorityTarget) <= _manager.Stat.AttackRange) { _manager.SetState(RedHatState.ATTACK); } else { _manager.SetState(RedHatState.CHASE); } } }
protected override void Update() { base.Update(); playerTrans = new Vector3(_manager.PlayerCapsule.transform.position.x, transform.position.y, _manager.PlayerCapsule.transform.position.z); DahsCheck(); this.transform.localRotation = Quaternion.RotateTowards(this.transform.rotation, Quaternion.LookRotation(PlayerFSMManager.GetLookTargetPos(transform) - transform.position, Vector3.up), 2f * Time.deltaTime); if (GameLib.DistanceToCharacter(_manager.CC, _manager.priorityTarget) < _manager.Stat.AttackRange) { _manager.SetState(RedHatState.ATTACK); } else { _manager.transform.LookAt(PlayerFSMManager.GetLookTargetPos(this.transform)); _manager.agent.destination = playerTrans; if (_manager.agent.remainingDistance >= 1.5f) { _manager.agent.isStopped = false; } else { _manager.agent.isStopped = true; } } }
protected override void Update() { base.Update(); if (isLookAt) { transform.LookAt(_manager.priorityTarget.transform); } if (GameLib.DistanceToCharacter(_manager.CC, _manager.priorityTarget) > _manager.Stat.statData._AttackRange) { _manager.SetState(MacState.CHASE); } }