public void SetPosition(VideoPlacement placement) { var position = VideoPlacementSetting.Position(placement); container.transform.position = position; Logger.Instance.Log($"Player moved to {position.ToString()}", Logger.LogSeverity.DEBUG); }
void CreateScreen() { screen = new GameObject("Screen"); screen.AddComponent <BoxCollider>().size = new Vector3(16f / 9f + 0.1f, 1.1f, 0.1f); screen.transform.parent = transform; GameObject body = GameObject.CreatePrimitive(PrimitiveType.Cube); if (body.GetComponent <Collider>() != null) { Destroy(body.GetComponent <Collider>()); } body.transform.parent = screen.transform; body.transform.localPosition = new Vector3(0, 0, 0.1f); body.transform.localScale = new Vector3(16f / 9f + 0.1f, 1.1f, 0.1f); Renderer bodyRenderer = body.GetComponent <Renderer>(); bodyRenderer.material = new Material(Resources.FindObjectsOfTypeAll <Material>() .Last(x => x.name == "DarkEnvironmentSimple")); // finding objects is wonky because platforms hides them GameObject videoScreen = GameObject.CreatePrimitive(PrimitiveType.Quad); if (videoScreen.GetComponent <Collider>() != null) { Destroy(videoScreen.GetComponent <Collider>()); } videoScreen.transform.parent = screen.transform; videoScreen.transform.localPosition = Vector3.zero; videoScreen.transform.localScale = new Vector3(16f / 9f, 1, 1); vsRenderer = videoScreen.GetComponent <Renderer>(); vsRenderer.material = new Material(GetShader()) { color = Color.clear }; screen.transform.position = VideoPlacementSetting.Position(placement); screen.transform.eulerAngles = VideoPlacementSetting.Rotation(placement); screen.transform.localScale = VideoPlacementSetting.Scale(placement) * Vector3.one; screenSoftParentRotation = screen.AddComponent <SoftParent>(); videoPlayer = gameObject.AddComponent <VideoPlayer>(); videoPlayer.isLooping = true; videoPlayer.renderMode = VideoRenderMode.MaterialOverride; videoPlayer.targetMaterialProperty = "_MainTex"; videoPlayer.playOnAwake = false; videoPlayer.targetMaterialRenderer = vsRenderer; vsRenderer.material.SetTexture("_MainTex", videoPlayer.texture); videoPlayer.errorReceived += VideoPlayerErrorReceived; videoPlayer.prepareCompleted += source => source.Pause(); videoPlayer.waitForFirstFrame = true; OnMenuSceneLoaded(); BSEvents.levelQuit += unsetTransformParent; BSEvents.levelCleared += unsetTransformParent; BSEvents.levelFailed += unsetTransformParent; BSEvents.levelRestarted += unsetTransformParent; }
public static void SetPlacement(VideoPlacement placement) { ScreenManager.placement = placement; if (Instance.screen == null) { return; } Instance.screen.transform.position = VideoPlacementSetting.Position(placement); Instance.screen.transform.eulerAngles = VideoPlacementSetting.Rotation(placement); Instance.screen.transform.localScale = VideoPlacementSetting.Scale(placement) * Vector3.one; }
public void SetPlacement(VideoPlacement placement) { this.placement = placement; if (Instance.screen == null) { return; } // screen.GetComponent<SoftParent>() != screen.transform.position = VideoPlacementSetting.Position(placement); screen.transform.eulerAngles = VideoPlacementSetting.Rotation(placement); screen.transform.localScale = VideoPlacementSetting.Scale(placement) * Vector3.one; }
void CreateScreen() { screen = new GameObject("Screen"); screen.AddComponent <BoxCollider>().size = new Vector3(16f / 9f + 0.1f, 1.1f, 0.1f); screen.transform.parent = transform; GameObject body = GameObject.CreatePrimitive(PrimitiveType.Cube); if (body.GetComponent <Collider>() != null) { Destroy(body.GetComponent <Collider>()); } body.transform.parent = screen.transform; body.transform.localPosition = new Vector3(0, 0, 0.1f); body.transform.localScale = new Vector3(16f / 9f + 0.1f, 1.1f, 0.1f); Renderer bodyRenderer = body.GetComponent <Renderer>(); bodyRenderer.material = new Material(Resources.FindObjectsOfTypeAll <Renderer>().First(x => x.name == "Column").material); // finding objects is wonky because platforms hides them GameObject videoScreen = GameObject.CreatePrimitive(PrimitiveType.Quad); if (videoScreen.GetComponent <Collider>() != null) { Destroy(videoScreen.GetComponent <Collider>()); } videoScreen.transform.parent = screen.transform; videoScreen.transform.localPosition = Vector3.zero; videoScreen.transform.localScale = new Vector3(16f / 9f, 1, 1); vsRenderer = videoScreen.GetComponent <Renderer>(); vsRenderer.material = new Material(GetShader()); vsRenderer.material.color = Color.clear; screen.transform.position = VideoPlacementSetting.Position(placement); screen.transform.eulerAngles = VideoPlacementSetting.Rotation(placement); screen.transform.localScale = VideoPlacementSetting.Scale(placement) * Vector3.one; _customBloomPrePass = videoScreen.AddComponent <CustomBloomPrePass>(); videoPlayer = gameObject.AddComponent <VideoPlayer>(); videoPlayer.isLooping = true; videoPlayer.renderMode = VideoRenderMode.MaterialOverride; videoPlayer.targetMaterialProperty = "_MainTex"; videoPlayer.playOnAwake = false; videoPlayer.targetMaterialRenderer = vsRenderer; vsRenderer.material.SetTexture("_MainTex", videoPlayer.texture); videoPlayer.errorReceived += VideoPlayerErrorReceived; OnMenuSceneLoaded(); }