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); }
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; } }