예제 #1
0
        void chase()
        {
            EnemyScanner.Range range = scanner.getRange();

            if (range == EnemyScanner.Range.FAR || range == EnemyScanner.Range.NONE)
            {
                //or shoot
                state = State.PATROLLING;
            }

            if (range == EnemyScanner.Range.MEDIUM)
            {
                if (plr.position.x - transform.position.x > 1.5f)
                {
                    right = true;
                }
                if (plr.position.x - transform.position.x < -1.5f)
                {
                    right = false;
                }

                transform.Translate(speed * Time.deltaTime * (right ? 1 : -1), 0, 0);
            }

            if (range == EnemyScanner.Range.CLOSE)
            {
                state = State.ATTACKING;
            }
        }
예제 #2
0
        void attack()
        {
            //melee

            EnemyScanner.Range range = scanner.getRange();

            if (range == EnemyScanner.Range.NONE)
            {
                right = !right;
                state = State.CHASING;
            }

            if (range != EnemyScanner.Range.CLOSE)
            {
                //or shoot
                state = State.CHASING;
                anim.SetBool("melee", false);
                return;
            }
            anim.SetBool("melee", true);
        }
예제 #3
0
        void patrol()
        {
            anim.SetBool("isWalking", true);

            if (transform.position.x <= lLimit.position.x)
            {
                right = true;
            }
            if (transform.position.x >= rLimit.position.x)
            {
                right = false;
            }

            transform.Translate(speed * Time.deltaTime * (right ? 1 : -1), 0, 0);

            EnemyScanner.Range range = scanner.getRange();

            if (range == EnemyScanner.Range.MEDIUM || range == EnemyScanner.Range.CLOSE)
            {
                state = State.CHASING;
            }
        }