예제 #1
0
    private void FindTarget()
    {
        float targetRange = 100f;
        float attackRange = 15f;

        if (getEnemyTarget != null)
        {
            if (Vector3.Distance(getEnemyTarget().GetPosition(), GetPosition()) < attackRange)
            {
                StopMoving();
                state = State.Attacking;
                Vector3 attackDir = (getEnemyTarget().GetPosition() - GetPosition()).normalized;
                characterBase.PlayPunchSlowAnimation(attackDir, (Vector3 hitPosition) => {
                    if (getEnemyTarget() != null)
                    {
                        getEnemyTarget().Damage(this);
                    }
                }, SetStateNormal);
            }
            else
            {
                if (Vector3.Distance(getEnemyTarget().GetPosition(), GetPosition()) < targetRange)
                {
                    if (pathfindingTimer <= 0f)
                    {
                        pathfindingTimer = .3f;
                        SetTargetPosition(getEnemyTarget().GetPosition());
                    }
                }
            }
        }
    }