public void StartMinigame(MinigameDisplayComponent display, MinigameType type, int playerID, Action <MinigameTickResult> callback = null) { BaseMinigame minigame = null; switch (type) { case MinigameType.Sequence: minigame = new SequenceMinigame(); minigame.Setup(m_CurrentMinigameID, display, new Rect(100, 100, 10, 10), playerID, callback); break; case MinigameType.Screwdriver: minigame = new ScrewdriverMinigame(); minigame.Setup(m_CurrentMinigameID, display, new Rect(200, 100, 10, 10), playerID, callback); break; case MinigameType.Morse: minigame = new MorseMinigame(); minigame.Setup(m_CurrentMinigameID, display, new Rect(300, 100, 10, 10), playerID, callback); break; case MinigameType.Matcher: minigame = new MatcherMinigame(); minigame.Setup(m_CurrentMinigameID, display, new Rect(400, 100, 10, 10), playerID, callback); break; } BeginMinigame(minigame); m_CurrentMinigameID++; }
public void Setup(int id, MinigameDisplayComponent displayComponent, Rect rect, int playerID, Action <MinigameTickResult> callback = null) { m_MiniGameID = id; m_DisplayComponent = displayComponent; m_PlayerID = playerID; m_GamePlayRect = rect; FinishCallback = callback; GameObject cameraObject = new GameObject("Minigame Camera"); cameraObject.transform.localRotation = Quaternion.Euler(90, 0, 0); m_MinigameCamera = cameraObject.AddComponent <Camera>(); m_MinigameCamera.transform.position = new Vector3(rect.center.x, 5.0f, rect.center.y); m_MinigameCamera.orthographic = true; m_MinigameCamera.aspect = rect.size.x / rect.size.y; m_MinigameCamera.orthographicSize = rect.size.x / 2.0f; m_RenderTexture = new RenderTexture((int)rect.size.x * 64, (int)rect.size.y * 64, 24, RenderTextureFormat.Default); m_MinigameCamera.targetTexture = m_RenderTexture; m_DisplayComponent.SetRenderTexture(m_RenderTexture); }