public GameObject GetObstacle(int obstacleId, IObstacleMovement movement, IObstacleClick click, IObstacleFinish finish = null)
    {
        GameObject obstacle = Instantiate(obstaclePrefabs[obstacleId], playArea.transform);
        Obstacle   o        = obstacle.GetComponent <Obstacle>();

        o.movement = movement;
        o.click    = click;
        o.finish   = finish;
        return(obstacle);
    }
Exemple #2
0
    private void Update()
    {
        if (Time.time > last)
        {
            int     obstacleId = Random.Range(0, 4);
            Vector3 spawn;
            if (obstacleId == 2)
            {
                spawn = spawns[2].position;
            }
            else
            {
                spawn = spawns[Random.Range(0, 5)].position;
            }

            IObstacleClick  click  = null;
            IObstacleFinish finish = null;
            switch (obstacleId)
            {
            case 0:     // 반사 - 원
                click = new ClickToDamagePlayer(engine.player);
                break;

            case 1:     // 방어 - 사각형
                click = new ClickToBlock();
                break;

            case 2:     // 추가 데미지 - 바
                click = new ClickToGainMoreDamage(engine.monster, engine.player, 9);
                break;

            case 3:     // 맨 밑 - 삼각형
                click  = new ClickToDestroy();
                finish = new FinishToDamagePlayer(engine.player);
                break;
            }


            GameObject o = obstacleFactory.GetObstacle(obstacleId, new MovementFalling(100), click, finish);
            o.transform.position = spawn;
            last = Time.time + 1f;
        }
    }