Exemplo n.º 1
0
    virtual public void StartNewAction()
    {
        float shouldMoveConfidence   = 0;
        float shouldAttackConfidence = 0;

        if (movementBehaviour)
        {
            shouldMoveConfidence = movementBehaviour.ShouldMove();
        }
        if (attackBehaviour)
        {
            shouldAttackConfidence = attackBehaviour.ShouldAttack();
        }

        if (shouldMoveConfidence == 0 && shouldAttackConfidence == 0)
        {
            return;
        }

        float totalConfidence = shouldMoveConfidence + shouldAttackConfidence;
        float random          = UnityEngine.Random.Range(0, totalConfidence);

        if (random < shouldMoveConfidence)
        {
            movementBehaviour.Move();
        }
        else
        {
            attackBehaviour.Attack();
        }
    }