diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 06c9df167..b47cd6273 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -13774,6 +13774,14 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 0} m_Modifications: + - target: {fileID: 198071653306764931, guid: 720073bc7682b1441bece7116681f72c, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 198071653306764931, guid: 720073bc7682b1441bece7116681f72c, type: 3} + propertyPath: m_PixelPerfect + value: 0 + objectReference: {fileID: 0} - target: {fileID: 1535126665250126034, guid: 720073bc7682b1441bece7116681f72c, type: 3} propertyPath: m_SizeDelta.x value: 16 @@ -13798,6 +13806,10 @@ PrefabInstance: propertyPath: m_RaycastTarget value: 0 objectReference: {fileID: 0} + - target: {fileID: 4035854539513523048, guid: 720073bc7682b1441bece7116681f72c, type: 3} + propertyPath: parent + value: + objectReference: {fileID: 1568335707} - target: {fileID: 4035854539513523048, guid: 720073bc7682b1441bece7116681f72c, type: 3} propertyPath: maskObj value: @@ -13818,6 +13830,10 @@ PrefabInstance: propertyPath: viewportTexture value: objectReference: {fileID: 1638236456} + - target: {fileID: 4500092555783399993, guid: 720073bc7682b1441bece7116681f72c, type: 3} + propertyPath: m_ScreenMatchMode + value: 1 + objectReference: {fileID: 0} - target: {fileID: 4820152107260776423, guid: 720073bc7682b1441bece7116681f72c, type: 3} propertyPath: m_RaycastTarget value: 0 @@ -33072,6 +33088,17 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1567318395} m_CullTransparentMesh: 1 +--- !u!114 &1568335707 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4500092555783399993, guid: 720073bc7682b1441bece7116681f72c, type: 3} + m_PrefabInstance: {fileID: 631525709} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1575762741 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Minigames.cs b/Assets/Scripts/Minigames.cs index 53800f1e9..06b0363ea 100644 --- a/Assets/Scripts/Minigames.cs +++ b/Assets/Scripts/Minigames.cs @@ -713,6 +713,7 @@ namespace HeavenStudio new Param("valB", new EntityTypes.Float(0, 10, 1), "Vertical Intensity") } ), + /* kinda broken idk if its useful but its here new GameAction("scale letterbox", "Scale Letterbox", 1f, true, new List() { new Param("valA", new EntityTypes.Integer(0, 200, 100), "Scale Letterbox X"), @@ -720,6 +721,15 @@ namespace HeavenStudio new Param("ease", Util.EasingFunction.Ease.Linear, "Ease Type"), new Param("axis", StaticCamera.ViewAxis.All, "Axis", "The axis to scale the letterbox in") } + ),*/ + new GameAction("fit to screen", "Fit Game To Screen", 0.5f, false, new List() + { + new Param("toggle", false, "Toggle", "Toggle the game fitting to the screen.") + }, + delegate + { + StaticCamera.instance.UpdateFitToScreen(eventCaller.currentEntity["toggle"]); + } ), new GameAction("tile screen", "Tile Screen", 1f, true, new List() { diff --git a/Assets/Scripts/StaticCamera.cs b/Assets/Scripts/StaticCamera.cs index a714aef9b..c0f79a799 100644 --- a/Assets/Scripts/StaticCamera.cs +++ b/Assets/Scripts/StaticCamera.cs @@ -17,6 +17,7 @@ namespace HeavenStudio [SerializeField] RectTransform canvas; [SerializeField] GameObject overlayView; [SerializeField] RectTransform parentView; + [SerializeField] UnityEngine.UI.CanvasScaler parent; [SerializeField] Image ambientBg; [SerializeField] GameObject ambientBgGO; @@ -43,6 +44,7 @@ namespace HeavenStudio private List letterboxEvents = new(); private List panTileEvents = new(); private List tileScreenEvents = new(); + private List fitToScreenEvents = new(); static Vector3 defaultPan = new Vector3(0, 0, 0); static Vector3 defaultScale = new Vector3(1, 1, 1); @@ -50,6 +52,7 @@ namespace HeavenStudio static Vector3 defaultLetterbox = new Vector3(1, 1, 1); static Vector3 defaultTilePan = new Vector3(0, 0, 0); static Vector3 defaultScreenTile = new Vector3(1, 1, 1); + static bool defaultFitToScreen = false; private static Vector3 pan; private static Vector3 scale; @@ -59,6 +62,7 @@ namespace HeavenStudio private static Vector3 scaleInv; private static Vector3 tilePan; private static Vector3 screenTile; + private static bool fitToScreen; private static Vector3 panLast; private static Vector3 scaleLast; @@ -86,6 +90,7 @@ namespace HeavenStudio rotationLast = defaultRotation; tilePanLast = defaultTilePan; screenTileLast = defaultScreenTile; + fitToScreen = defaultFitToScreen; ToggleLetterboxBg(PersistentDataManager.gameSettings.letterboxBgEnable); ToggleLetterboxGlow(PersistentDataManager.gameSettings.letterboxFxEnable); @@ -99,6 +104,7 @@ namespace HeavenStudio scaleEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "scale view" }); rotationEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "rotate view" }); letterboxEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "scale letterbox" }); + fitToScreenEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "fit to screen" }); panTileEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "pan tiles"}); tileScreenEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "tile screen" }); @@ -108,6 +114,7 @@ namespace HeavenStudio rotationLast = defaultRotation; tilePanLast = defaultTilePan; screenTileLast = defaultScreenTile; + fitToScreen = defaultFitToScreen; UpdatePan(); UpdateRotation(); @@ -127,6 +134,8 @@ namespace HeavenStudio UpdateTilePan(); UpdateScreenTile(); + if(fitToScreen) parent.screenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight; + else if (!fitToScreen) parent.screenMatchMode = CanvasScaler.ScreenMatchMode.Expand; canvas.localPosition = pan; canvas.eulerAngles = new Vector3(0, 0, rotation); letterboxMask.localScale = letterbox; @@ -360,6 +369,11 @@ namespace HeavenStudio } } + public void UpdateFitToScreen(bool toggle) + { + fitToScreen = toggle; + } + public static void Reset() { pan = defaultPan; @@ -368,6 +382,7 @@ namespace HeavenStudio letterbox = defaultLetterbox; tilePan = defaultTilePan; screenTile = defaultScreenTile; + fitToScreen = defaultFitToScreen; } public void ToggleOverlayView(bool toggle)