From d0220611bbb9ac1b1b86dab8c99e0073d3f21911 Mon Sep 17 00:00:00 2001 From: Firerise9402 <90978630+Firerise9402@users.noreply.github.com> Date: Sat, 12 Aug 2023 12:26:08 -0400 Subject: [PATCH] stuffs --- Assets/Scenes/Editor.unity | 69 ++++++++++++++++++++++ Assets/Scripts/Minigames.cs | 10 +++- Assets/Scripts/StaticCamera.cs | 102 ++++++++++++++++++++++++++++++++- 3 files changed, 177 insertions(+), 4 deletions(-) diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 9a3a381a8..e460d2904 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -13774,14 +13774,34 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 0} m_Modifications: + - target: {fileID: 1535126665250126034, guid: 720073bc7682b1441bece7116681f72c, type: 3} + propertyPath: m_ConstrainProportionsScale + value: 0 + objectReference: {fileID: 0} - target: {fileID: 3558106557710386107, guid: 720073bc7682b1441bece7116681f72c, type: 3} propertyPath: m_BlockingMask.m_Bits value: 0 objectReference: {fileID: 0} + - target: {fileID: 3741076794236313655, guid: 720073bc7682b1441bece7116681f72c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 3788593923839736097, guid: 720073bc7682b1441bece7116681f72c, type: 3} propertyPath: m_RaycastTarget value: 0 objectReference: {fileID: 0} + - target: {fileID: 4035854539513523048, guid: 720073bc7682b1441bece7116681f72c, type: 3} + propertyPath: maskObj + value: + objectReference: {fileID: 2105509200} + - target: {fileID: 4035854539513523048, guid: 720073bc7682b1441bece7116681f72c, type: 3} + propertyPath: canvasObj + value: + objectReference: {fileID: 1638236449} + - target: {fileID: 4035854539513523048, guid: 720073bc7682b1441bece7116681f72c, type: 3} + propertyPath: letterboxMask + value: + objectReference: {fileID: 2105509201} - target: {fileID: 4820152107260776423, guid: 720073bc7682b1441bece7116681f72c, type: 3} propertyPath: m_RaycastTarget value: 0 @@ -33660,6 +33680,45 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1637160319} m_CullTransparentMesh: 1 +--- !u!1 &1638236449 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2464883521749415129, guid: 720073bc7682b1441bece7116681f72c, type: 3} + m_PrefabInstance: {fileID: 631525709} + m_PrefabAsset: {fileID: 0} +--- !u!1818360610 &1638236453 +ScaleConstraint: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1638236449} + m_Enabled: 1 + m_Weight: 1 + m_ScaleAtRest: {x: 1, y: 1, z: 1} + m_ScaleOffset: {x: 1, y: 1, z: 1} + m_AffectScalingX: 1 + m_AffectScalingY: 1 + m_AffectScalingZ: 1 + m_IsContraintActive: 1 + m_IsLocked: 1 + m_Sources: [] +--- !u!1818360608 &1638236454 +PositionConstraint: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1638236449} + m_Enabled: 1 + m_Weight: 1 + m_TranslationAtRest: {x: 0, y: 0, z: 0} + m_TranslationOffset: {x: 0, y: 0, z: 0} + m_AffectTranslationX: 1 + m_AffectTranslationY: 1 + m_AffectTranslationZ: 1 + m_IsContraintActive: 0 + m_IsLocked: 0 + m_Sources: [] --- !u!1 &1647324172 GameObject: m_ObjectHideFlags: 0 @@ -41557,6 +41616,16 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2098678239} m_CullTransparentMesh: 1 +--- !u!1 &2105509200 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7051539713125569525, guid: 720073bc7682b1441bece7116681f72c, type: 3} + m_PrefabInstance: {fileID: 631525709} + m_PrefabAsset: {fileID: 0} +--- !u!224 &2105509201 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8925473620302868482, guid: 720073bc7682b1441bece7116681f72c, type: 3} + m_PrefabInstance: {fileID: 631525709} + m_PrefabAsset: {fileID: 0} --- !u!1 &2125404435 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Minigames.cs b/Assets/Scripts/Minigames.cs index 9c91392f4..d662b30db 100644 --- a/Assets/Scripts/Minigames.cs +++ b/Assets/Scripts/Minigames.cs @@ -706,7 +706,6 @@ namespace HeavenStudio new Param("axis", StaticCamera.ViewAxis.All, "Axis", "The axis to scale the viewport in" ) } ), - new GameAction("screen shake", "Screen Shake", 1f, true, new List() { @@ -714,6 +713,15 @@ namespace HeavenStudio new Param("valB", new EntityTypes.Float(0, 10, 1), "Vertical Intensity") } ), + new GameAction("scale letterbox", "Scale Letterbox", 1f, true, new List() + { + new Param("valA", new EntityTypes.Float(0, 50, 1), "Scale Letterbox X"), + new Param("valB", new EntityTypes.Float(0, 50, 1), "Scale Letterbox Y"), + new Param("ease", Util.EasingFunction.Ease.Linear, "Ease Type"), + new Param("axis", StaticCamera.ViewAxis.All, "Axis", "The axis to scale the letterbox in"), + new Param("toggle", true, "Mirror scaling", "Mirror the scaling of the letterbox via scaling the minigame as well.") + } + ), new GameAction("display textbox", "Display Textbox", 1f, true, new List() { diff --git a/Assets/Scripts/StaticCamera.cs b/Assets/Scripts/StaticCamera.cs index c3f4b7b32..04407add8 100644 --- a/Assets/Scripts/StaticCamera.cs +++ b/Assets/Scripts/StaticCamera.cs @@ -20,6 +20,8 @@ namespace HeavenStudio [SerializeField] Image ambientBg; [SerializeField] GameObject ambientBgGO; [SerializeField] GameObject letterboxBgGO; + [SerializeField] RectTransform letterboxMask; + [SerializeField] GameObject maskObj; public static StaticCamera instance { get; private set; } public new Camera camera; @@ -37,18 +39,27 @@ namespace HeavenStudio private List panEvents = new(); private List scaleEvents = new(); private List rotationEvents = new(); + private List letterboxEvents = new(); static Vector3 defaultPan = new Vector3(0, 0, 0); static Vector3 defaultScale = new Vector3(1, 1, 1); static float defaultRotation = 0; + static Vector3 defaultLetterbox = new Vector3(1, 1, 1); private static Vector3 pan; private static Vector3 scale; private static float rotation; + private static Vector3 letterbox; + private static Vector3 panInv; + private static Vector3 scaleInv; + + private static bool toggle; + private Transform[] children = null; private static Vector3 panLast; private static Vector3 scaleLast; private static float rotationLast; + private static Vector3 letterboxLast; private void Awake() { @@ -64,11 +75,16 @@ namespace HeavenStudio Reset(); panLast = defaultPan; + letterboxLast = defaultLetterbox; scaleLast = defaultScale; rotationLast = defaultRotation; ToggleLetterboxBg(PersistentDataManager.gameSettings.letterboxBgEnable); ToggleLetterboxGlow(PersistentDataManager.gameSettings.letterboxFxEnable); + /* + children = new Transform[ maskObj.transform.childCount ]; + foreach(Transform T in transform) + children.add(T);*/ } public void OnBeatChanged(double beat) @@ -78,26 +94,54 @@ namespace HeavenStudio panEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "pan view" }); scaleEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "scale view" }); rotationEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "rotate view" }); + letterboxEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "scale letterbox" }); panLast = defaultPan; + letterboxLast = defaultLetterbox; scaleLast = defaultScale; rotationLast = defaultRotation; - + UpdatePan(); UpdateRotation(); UpdateScale(); + UpdateLetterbox(); } // Update is called once per frame void Update() { + UpdateLetterbox(); UpdatePan(); UpdateRotation(); UpdateScale(); - + canvas.localPosition = pan; - canvas.eulerAngles = new Vector3(0, 0, rotation); canvas.localScale = scale; + canvas.eulerAngles = new Vector3(0, 0, rotation); + //if(!toggle)canvas.localPosition = panInv; + //if(!toggle)canvas.localScale = scaleInv; + if(!toggle) + { + //canvas.transform.SetParent(null); dont do that + letterboxMask.localScale = letterbox; + canvas.transform.localScale = scale; + //letterboxMask.localScale = letterbox; + + } //heyo future me FIX THIS MESS PLEASEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + //canvas.localScale = canvas.InverseTransformDirection(scaleInv); + /*if(!toggle) + { + canvas.localPosition = canvas.InverseTransformVector(panInv); + + canvas.eulerAngles = canvas.TransformVector(new Vector3(0, 0, rotation)); + toggle = true; + }else{ + canvas.localPosition = pan; + canvas.localScale = scale; + canvas.eulerAngles = new Vector3(0, 0, rotation); + } + */ } private void UpdatePan() @@ -199,11 +243,63 @@ namespace HeavenStudio } } + private void UpdateLetterbox() + { + foreach (var e in letterboxEvents) + { + float prog = Conductor.instance.GetPositionFromBeat(e.beat, e.length); + if (prog >= 0f) + { + Util.EasingFunction.Function func = Util.EasingFunction.GetEasingFunction((Util.EasingFunction.Ease) e["ease"]); + switch (e["axis"]) + { + case (int) ViewAxis.X: + letterbox.x = func(letterboxLast.x, e["valA"], Mathf.Min(prog, 1f)) * AspectRatioWidth; + panInv = pan; + scaleInv = scale; + toggle = e["toggle"]; + break; + case (int) ViewAxis.Y: + letterbox.y = func(letterboxLast.y, e["valB"], Mathf.Min(prog, 1f)) * AspectRatioHeight; + panInv = pan; + scaleInv = scale; + toggle = e["toggle"]; + break; + default: + float dx = func(letterboxLast.x, e["valA"], Mathf.Min(prog, 1f)) * AspectRatioWidth; + float dy = func(letterboxLast.y, e["valB"], Mathf.Min(prog, 1f)) * AspectRatioHeight; + letterbox = new Vector3(dx, dy, 1); + panInv = pan; + scaleInv = scale; + toggle = e["toggle"]; + break; + } + } + if (prog > 1f) + { + switch (e["axis"]) + { + case (int) ViewAxis.X: + letterboxLast.x = e["valA"] * AspectRatioWidth; + break; + case (int) ViewAxis.Y: + letterboxLast.y = e["valB"] * AspectRatioHeight; + break; + default: + letterboxLast = new Vector3(e["valA"] * AspectRatioWidth, e["valB"] * AspectRatioHeight, 1); + break; + } + } + } + } + public static void Reset() { pan = defaultPan; scale = defaultScale; rotation = defaultRotation; + letterbox = defaultLetterbox; + toggle = true; } public void ToggleOverlayView(bool toggle)