コード例 #1
0
 public override void Awake()
 {
     //Debug.Log("Search State Awake");
     if (_minionController.isBoss == false)
     {
         return;
     }
     _nodes       = GameManager.Instance.nodesList;
     _closestNode = FindNearestNode();
     _destinyNode = GetRandomNode();
     _pointer     = 0; // Reset Pointer.
     _avoid.SetTarget(_minionController.currentNode);
     _path = _aStar.Run(_closestNode, Satisfies, GetNeighbours, GetCost, Heuristic);
 }
コード例 #2
0
    private void CheckDistance()
    {
        if (_enemyTransform == null)
        {
            return;
        }
        currentDistance = (_enemyTransform.position - _minionController.transform.position).magnitude;

        if (currentDistance > 8)
        {
            avoid.SetTarget(_minionController.currentEnemy);
            _minionController.Move(avoid.GetDirection());
            _minionController.Look(_enemyTransform.position);

            //Debug.Log($"Enemy Transform: {_enemyTransform.position}");
        }

        if (currentDistance <= 10)
        {
            AttackEnemy();
        }
    }
コード例 #3
0
    public override void Awake()
    {
        Debug.Log("Pursuit State Awake");
        if (_minionController.IsBossAlive() == false)
        {
            _enemyController = _minionController.SelectRandomEnemy();
            _enemyTransform  = _enemyController.transform;
        }

        _enemyTransform = _minionController.currentEnemy;

        if (_enemyTransform == null || _enemyController == null)
        {
            _enemyController = _minionController.SelectRandomEnemy();
            _enemyTransform  = _enemyController.transform;
        }

        _enemyController = _enemyTransform.GetComponent <MinionController>();

        avoid = new Avoid(_minionController.transform, _minionController.lineOfSight.obstaclesLayer, _minionController.obstacleRadius, _minionController.obstacleWeight);
        avoid.SetTarget(_enemyTransform);
    }