i did another funny

This commit is contained in:
Firerise9402 2023-08-12 13:43:03 -04:00
parent d0220611bb
commit 3c2a867f3f
3 changed files with 141 additions and 85 deletions

View file

@ -6402,7 +6402,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 194, y: 0}
m_AnchoredPosition: {x: 194.00002, y: 0}
m_SizeDelta: {x: 40, y: 40}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &285739500
@ -13774,6 +13774,14 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1535126665250126034, guid: 720073bc7682b1441bece7116681f72c, type: 3}
propertyPath: m_SizeDelta.x
value: 1728
objectReference: {fileID: 0}
- target: {fileID: 1535126665250126034, guid: 720073bc7682b1441bece7116681f72c, type: 3}
propertyPath: m_SizeDelta.y
value: 972
objectReference: {fileID: 0}
- target: {fileID: 1535126665250126034, guid: 720073bc7682b1441bece7116681f72c, type: 3}
propertyPath: m_ConstrainProportionsScale
value: 0
@ -15753,7 +15761,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 100, y: 0}
m_AnchoredPosition: {x: 100.000015, y: 0}
m_SizeDelta: {x: 40, y: 40}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &689781278
@ -24782,7 +24790,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: 0, y: 129.94975}
m_AnchoredPosition: {x: 0, y: 105.87459}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &1154875944
@ -33259,7 +33267,7 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 1292844878}
m_HandleRect: {fileID: 1292844877}
m_Direction: 2
m_Value: 1
m_Value: 0
m_Size: 1
m_NumberOfSteps: 0
m_OnValueChanged:
@ -33685,40 +33693,6 @@ 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
@ -36943,7 +36917,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: -84.98999}
m_AnchoredPosition: {x: 0, y: -84.98996}
m_SizeDelta: {x: 320, y: -84.99}
m_Pivot: {x: 0, y: 1}
--- !u!1 &1852819572
@ -41664,7 +41638,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 147, y: 0}
m_AnchoredPosition: {x: 147.00002, y: 0}
m_SizeDelta: {x: 40, y: 40}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &2125404437

View file

@ -718,8 +718,23 @@ namespace HeavenStudio
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 Param("axis", StaticCamera.ViewAxis.All, "Axis", "The axis to scale the letterbox in")
}
),
new GameAction("complex pan", "Scale Viewport(Complex)", 1f, true, new List<Param>()
{
new Param("valA", new EntityTypes.Float(-50, 50, 1), "Pan Viewport X"),
new Param("valB", new EntityTypes.Float(-50, 50, 1), "Pan Viewport Y"),
new Param("ease", Util.EasingFunction.Ease.Linear, "Ease Type"),
new Param("axis", StaticCamera.ViewAxis.All, "Axis", "The axis to pan the viewport in")
}
),
new GameAction("complex scale", "Scale Viewport(Complex)", 1f, true, new List<Param>()
{
new Param("valA", new EntityTypes.Float(0, 50, 1), "Scale Viewport X"),
new Param("valB", new EntityTypes.Float(0, 50, 1), "Scale Viewport Y"),
new Param("ease", Util.EasingFunction.Ease.Linear, "Ease Type"),
new Param("axis", StaticCamera.ViewAxis.All, "Axis", "The axis to scale the viewport in")
}
),

View file

@ -21,7 +21,7 @@ namespace HeavenStudio
[SerializeField] GameObject ambientBgGO;
[SerializeField] GameObject letterboxBgGO;
[SerializeField] RectTransform letterboxMask;
[SerializeField] GameObject maskObj;
[SerializeField] RawImage viewportTexture;
public static StaticCamera instance { get; private set; }
public new Camera camera;
@ -40,11 +40,15 @@ namespace HeavenStudio
private List<RiqEntity> scaleEvents = new();
private List<RiqEntity> rotationEvents = new();
private List<RiqEntity> letterboxEvents = new();
private List<RiqEntity> complexPanEvents = new();
private List<RiqEntity> complexScaleEvents = 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);
static Vector3 defaultComplexPan = new Vector3(0, 0, 0);
static Vector3 defaultComplexScale = new Vector3(1, 1, 1);
private static Vector3 pan;
private static Vector3 scale;
@ -52,14 +56,15 @@ namespace HeavenStudio
private static Vector3 letterbox;
private static Vector3 panInv;
private static Vector3 scaleInv;
private static bool toggle;
private Transform[] children = null;
private static Vector3 complexPan;
private static Vector3 complexScale;
private static Vector3 panLast;
private static Vector3 scaleLast;
private static float rotationLast;
private static Vector3 letterboxLast;
private static Vector3 complexPanLast;
private static Vector3 complexScaleLast;
private void Awake()
{
@ -78,13 +83,11 @@ namespace HeavenStudio
letterboxLast = defaultLetterbox;
scaleLast = defaultScale;
rotationLast = defaultRotation;
complexPanLast = defaultComplexPan;
complexScaleLast = defaultComplexScale;
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)
@ -95,16 +98,22 @@ 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" });
complexPanEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "complex pan"});
complexScaleEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "complex scale" });
panLast = defaultPan;
letterboxLast = defaultLetterbox;
scaleLast = defaultScale;
rotationLast = defaultRotation;
complexPanLast = defaultComplexPan;
complexScaleLast = defaultComplexScale;
UpdatePan();
UpdateRotation();
UpdateScale();
UpdateLetterbox();
UpdateComplexPan();
UpdatecomplexScale();
}
// Update is called once per frame
@ -114,34 +123,18 @@ namespace HeavenStudio
UpdatePan();
UpdateRotation();
UpdateScale();
UpdateComplexPan();
UpdatecomplexScale();
canvas.localPosition = pan;
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);
}
*/
letterboxMask.localScale = letterbox;
scaleInv = scale;
scaleInv.x /= letterbox.x;
scaleInv.y /= letterbox.y;
scaleInv.z /= letterbox.z;
canvas.localScale = scaleInv;
viewportTexture.uvRect = new Rect(complexPan.x, complexPan.y, complexScale.x, complexScale.y);
}
private void UpdatePan()
@ -255,23 +248,14 @@ namespace HeavenStudio
{
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;
}
}
@ -293,13 +277,96 @@ namespace HeavenStudio
}
}
private void UpdateComplexPan()
{
foreach (var e in complexPanEvents)
{
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:
complexPan.x = func(complexPanLast.x, e["valA"], Mathf.Min(prog, 1f));
break;
case (int) ViewAxis.Y:
complexPan.y = func(complexPan.y, e["valB"], Mathf.Min(prog, 1f));
break;
default:
float dx = func(complexPanLast.x, e["valA"], Mathf.Min(prog, 1f));
float dy = func(complexPanLast.y, e["valB"], Mathf.Min(prog, 1f));
complexPan = new Vector3(dx, dy, 0);
break;
}
}
if (prog > 1f)
{
switch (e["axis"])
{
case (int) ViewAxis.X:
complexPanLast.x = e["valA"];
break;
case (int) ViewAxis.Y:
complexPanLast.y = e["valB"];
break;
default:
complexPanLast = new Vector3(e["valA"], e["valB"], 0);
break;
}
}
}
}
private void UpdatecomplexScale()
{
foreach (var e in complexScaleEvents)
{
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:
complexScale.x = func(complexScaleLast.x, e["valA"], Mathf.Min(prog, 1f)) * AspectRatioWidth;
break;
case (int) ViewAxis.Y:
complexScale.y = func(complexScaleLast.y, e["valB"], Mathf.Min(prog, 1f)) * AspectRatioHeight;
break;
default:
float dx = func(complexScaleLast.x, e["valA"], Mathf.Min(prog, 1f)) * AspectRatioWidth;
float dy = func(complexScaleLast.y, e["valB"], Mathf.Min(prog, 1f)) * AspectRatioHeight;
complexScale = new Vector3(dx, dy, 1);
break;
}
}
if (prog > 1f)
{
switch (e["axis"])
{
case (int) ViewAxis.X:
complexScaleLast.x = e["valA"] * AspectRatioWidth;
break;
case (int) ViewAxis.Y:
complexScaleLast.y = e["valB"] * AspectRatioHeight;
break;
default:
complexScaleLast = new Vector3(e["valA"] * AspectRatioWidth, e["valB"] * AspectRatioHeight, 1);
break;
}
}
}
}
public static void Reset()
{
pan = defaultPan;
scale = defaultScale;
rotation = defaultRotation;
letterbox = defaultLetterbox;
toggle = true;
complexPan = defaultComplexPan;
complexScale = defaultComplexScale;
}
public void ToggleOverlayView(bool toggle)