Ok things fixed I added a new block to replace letterbox scale so it works now

This commit is contained in:
Firerise9402 2023-08-19 15:24:30 -04:00
parent d3a386be2c
commit 0f72b2fc98
3 changed files with 52 additions and 0 deletions

View file

@ -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

View file

@ -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<Param>()
{
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<Param>()
{
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<Param>()
{

View file

@ -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<RiqEntity> letterboxEvents = new();
private List<RiqEntity> panTileEvents = new();
private List<RiqEntity> tileScreenEvents = new();
private List<RiqEntity> 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)