Beispiel #1
0
    public void OnStateFixedUpdate()
    {
        timer += Time.fixedDeltaTime;

        if (timer > enemy.stats.minPathUpdateTime)
        {
            UpdatePath();
        }

        if (enemy.path == null)
        {
            return;
        }

        if (enemy.targetIndex < enemy.path.Length - 1 || enemy.targetIndex == enemy.path.Length - 1 && enemy.rb.position != enemy.destination)
        {
            enemy.rb.position         = enemy.ReturnNextPoint();
            enemy.sGroup.sortingOrder = Info.SortingOrder(enemy.sortingTransform.position.y);
        }

        else if (enemy.targetIndex == enemy.path.Length - 1 && enemy.rb.position == enemy.destination)
        {
            UpdatePath(true);
        }

        attackTimer += Time.fixedDeltaTime;
        if (attackTimer > enemy.currentAttack.attackInterval)
        {
            if (enemy.currentAttack.attackRange != 0)
            {
                if (enemy.CheckRangeToPlayer(enemy.currentAttack.attackRange))
                {
                    enemy.state.ChangeState(enemy.attackState);
                }
            }
        }
    }