Exemplo n.º 1
0
    // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
    override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        if (animator.GetComponent <Enemy>().PlayerDistance < attackRange)
        {
            animator.SetTrigger("AttackTrigger");
            return;
        }
        int integerDir = enemy.MoveDir;

        if (enemy.WallTest[(integerDir + 1) / 2] || enemy.CliffTest[(integerDir + 1) / 2])
        {
            enemy.ChangeVelocityX_movement(0.0f);
        }
        else
        {
            enemy.ChangeVelocityX_movement(enemy.MoveDir * trackSpeed);
        }

        frameCounter += 1;
        if (frameCounter >= maxFrame)
        {
            NumeratedDir trackDir = (animatorRoot.position.x - player.transform.position.x > 0) ? NumeratedDir.Left : NumeratedDir.Right;
            enemy.ChangeDir_movement(trackDir);
            frameCounter = 0;
        }
    }
Exemplo n.º 2
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        // enemy_arrow = Resources.Load<GameObject>("Prefabs/Projectiles/enemy_arrow");
        //  waitBetweenShots = 1f;
        // shotCounter = waitBetweenShots;

        animatorRoot = animator.transform.parent;
        enemy        = animator.GetComponent <EnemyGround>();
        player       = GameManager.Instance.player;

        trackSpeed  = enemy.trackSpeed;
        attackRange = enemy.attackRange;

        NumeratedDir trackDir = (animatorRoot.position.x - player.transform.position.x > 0) ? NumeratedDir.Left : NumeratedDir.Right;

        enemy.ChangeDir_movement(trackDir);
        if (enemy.CliffTest[(enemy.MoveDir + 1) / 2] || animator.GetComponent <Enemy>().PlayerDistance < attackRange)
        {
            enemy.ChangeVelocityX_movement(0.0f);
        }
        else
        {
            enemy.ChangeVelocityX_movement(enemy.MoveDir * trackSpeed);
        }
    }
Exemplo n.º 3
0
    // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
    override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        shotCounter -= Time.deltaTime;
        if (animator.GetComponent <Enemy>().PlayerDistance < attackRange && shotCounter < 0)
        {
            animator.SetTrigger("AttackTrigger");

            Instantiate(jollarcher_arrow, enemy.transform.GetChild(0).position, Quaternion.identity);

            shotCounter = waitBetweenShots;
            return;
        }
        int integerDir = enemy.MoveDir;

        if (enemy.WallTest[(integerDir + 1) / 2] || enemy.CliffTest[(integerDir + 1) / 2])
        {
            enemy.ChangeVelocityX_movement(0.0f);
        }
        else
        {
            enemy.ChangeVelocityX_movement(enemy.MoveDir * trackSpeed);
        }

        frameCounter += 1;
        if (frameCounter >= maxFrame)
        {
            NumeratedDir trackDir = (animatorRoot.position.x - player.transform.position.x > 0) ? NumeratedDir.Left : NumeratedDir.Right;
            enemy.ChangeDir_movement(trackDir);
            frameCounter = 0;
        }
    }
Exemplo n.º 4
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        origin       = animator.transform.position;
        animatorRoot = animator.transform.parent;
        enemy        = animator.GetComponent <EnemyGround>();

        patrolRange = enemy.patrolRange;
        noticeRange = enemy.noticeRange;
        patrolSpeed = enemy.patrolSpeed;

        enemy.ChangeDir_movement(NumeratedDir.Left);
        if (patrolRange > 0)
        {
            enemy.ChangeVelocityX_movement(enemy.MoveDir * patrolSpeed);
        }
    }
Exemplo n.º 5
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        animatorRoot = animator.transform.parent;
        enemy        = animator.GetComponent <EnemyGround>();
        player       = GameManager.Instance.player;

        trackSpeed  = enemy.trackSpeed;
        attackRange = enemy.attackRange;

        NumeratedDir trackDir = (animatorRoot.position.x - player.transform.position.x > 0) ? NumeratedDir.Left : NumeratedDir.Right;

        enemy.ChangeDir_movement(trackDir);
        if (enemy.CliffTest[(enemy.MoveDir + 1) / 2] || animator.GetComponent <Enemy>().PlayerDistance < attackRange)
        {
            enemy.ChangeVelocityX_movement(0.0f);
        }
        else
        {
            enemy.ChangeVelocityX_movement(enemy.MoveDir * trackSpeed);
        }
    }
Exemplo n.º 6
0
    // OnStateUpdate is called on each Update frame between OnStateEnter and O  nStateExit callbacks
    override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        if (enemy.PlayerDistance < noticeRange)
        {
            animator.SetTrigger("TrackTrigger");
            return;
        }
        if (patrolRange > 0)
        {
            float span = animatorRoot.position.x - origin.x;

            if ((Mathf.Abs(span) > patrolRange && span * enemy.MoveDir > 0) ||
                enemy.WallTest[(enemy.MoveDir + 1) / 2] ||
                enemy.CliffTest[(enemy.MoveDir + 1) / 2]
                )
            {
                enemy.ChangeDir_movement(enemy.MoveDir * -1);
                enemy.ChangeVelocityX_movement(enemy.MoveDir * patrolSpeed);
            }
        }
    }