예제 #1
0
    private void Chase(Enemy.EnemyController controller)
    {
        Vector2 dirMove = (controller.transform.position - controller.chaseTarget.position).normalized;

        controller.GetComponent <SpriteRenderer>().sprite = controller.monsterData.AttackSprite();
        if (dirMove.x < 0)
        {
            controller.transform.localScale = Vector3.one;
        }
        else
        {
            controller.transform.localScale = new Vector3(-1, 1, 1);
        }
        controller.transform.Translate(-dirMove * controller.monsterData.Stats().speed *Time.deltaTime);
    }
예제 #2
0
    public void Patrol(Enemy.EnemyController controller)
    {
        controller.eyes.right = Vector2.right;
        RaycastHit2D groundInfo = Physics2D.Raycast(controller.eyes.position, controller.eyes.TransformDirection(new Vector2(1, angle)), DISTANCE_RAYCAST, layerHit);
        RaycastHit2D wallInfo   = Physics2D.Raycast(controller.eyes.position, controller.eyes.TransformDirection(Vector2.right), DISTANCE_RAYCAST, layerHit);

        Debug.DrawRay(controller.eyes.position, controller.eyes.TransformDirection(new Vector2(1, angle)) * DISTANCE_RAYCAST, Color.red);
        Debug.DrawRay(controller.eyes.position, controller.eyes.TransformDirection(Vector2.right) * DISTANCE_RAYCAST, Color.red);
        controller.GetComponent <SpriteRenderer>().sprite = controller.monsterData.Sprite();
        if (groundInfo.collider == null || wallInfo.collider)
        {
            controller.dirMove = ChangeDirection(controller.dirMove);
        }
        if (controller.dirMove.x > 0)
        {
            controller.transform.localScale = Vector3.one;
        }
        else
        {
            controller.transform.localScale = new Vector3(-1, 1, 1);
        }
        controller.transform.Translate(controller.dirMove * controller.monsterData.Stats().speed *Time.deltaTime);
    }