Ejemplo n.º 1
0
    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);
            }
        }
    }
Ejemplo n.º 2
0
    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;
            }
        }
    }
Ejemplo n.º 3
0
    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);
        }
    }