Пример #1
0
    /// <summary>
    ///
    /// </summary>
    /// <returns></returns>
    public override INpcState DoAction()
    {
        RotateTowardsTarget(Npc.Target);
        ChooseAttackType();
        NpcAnimatorController.Tick();

        return(GetNextState());
    }
Пример #2
0
    /// <summary>
    /// Selects how to attack (Light, Heavy, etc.)
    /// </summary>
    private void ChooseAttackType()
    {
        // TODO: Works random right now, should calculated
        var random           = new System.Random();
        var type             = typeof(AttackType);
        var attackTypes      = type.GetEnumValues();
        var randomIndex      = random.Next(attackTypes.Length);
        var randomAttackType = attackTypes.GetValue(randomIndex);

        switch (randomAttackType)
        {
        case AttackType.Light:
            NpcAnimatorController.LightAttack();
            break;
            //case AttackType.Heavy:
            //  break;
        }
    }
Пример #3
0
 private void Awake()
 {
     animatorController = new NpcAnimatorController(GetComponent <Animator>());
     _agent             = GetComponent <NavMeshAgent>();
 }