diff --git a/Assets/Misc/ChangeLog.txt b/Assets/Misc/ChangeLog.txt index c03a4ca..ccdb45d 100644 --- a/Assets/Misc/ChangeLog.txt +++ b/Assets/Misc/ChangeLog.txt @@ -1,6 +1,7 @@ 0.5.3 -- 加入对于未知颜色的 Arc 的支持 +- 支持用颜色为 3 的直角 Arc 模拟可变尺寸的 Arctap +- 支持未知颜色的 Arc - 修复特定情况下打击特效会渲染在 ArcTap 之后的问题 - 修复 NoInput 下 Arc 开头的渲染位置 - 修复负数 BPM 下 Arc 的渲染 diff --git a/Assets/Scripts/Gameplay/Chart/ArcChart.cs b/Assets/Scripts/Gameplay/Chart/ArcChart.cs index 4eac334..9eed8c7 100644 --- a/Assets/Scripts/Gameplay/Chart/ArcChart.cs +++ b/Assets/Scripts/Gameplay/Chart/ArcChart.cs @@ -905,6 +905,8 @@ public void Instantiate(ArcArc arc) arc.IsSfx ? ArcArcManager.Instance.SfxArcTapPrefab : ArcArcManager.Instance.ArcTapPrefab, arc.transform ); + ShadowRenderer.sprite=ArcArcManager.Instance.ArcTapShadowSkin; + UpdatePosition(); UpdateScale(); SetupArcTapConnection(); diff --git a/Assets/Scripts/Gameplay/Managers/ArcArcManager.cs b/Assets/Scripts/Gameplay/Managers/ArcArcManager.cs index 0d82d8a..83ec4e5 100644 --- a/Assets/Scripts/Gameplay/Managers/ArcArcManager.cs +++ b/Assets/Scripts/Gameplay/Managers/ArcArcManager.cs @@ -19,6 +19,7 @@ private void Awake() public GameObject ArcNotePrefab, ArcTapPrefab, SfxArcTapPrefab, ConnectionPrefab; public Transform ArcLayer; public Color ConnectionColor; + public Sprite ArcTapShadowSkin; public Texture2D ArcTapSkin; public Material ArcTapMaterial; public Texture2D SfxArcTapNoteSkin; @@ -157,10 +158,12 @@ private void RenderArcs() foreach (var t in Arcs) { - foreach(var arctap in t.ArcTaps){ + foreach (var arctap in t.ArcTaps) + { RenderArcTap(arctap); } - if (t.ConvertedVariousSizedArctap!=null){ + if (t.ConvertedVariousSizedArctap != null) + { RenderArcTap(t.ConvertedVariousSizedArctap); } int duration = t.EndTiming - t.Timing; @@ -257,10 +260,12 @@ private void JudgeArcs() { continue; } - foreach(var arcTap in arc.ArcTaps){ + foreach (var arcTap in arc.ArcTaps) + { JudgeArcTap(arcTap); } - if(arc.ConvertedVariousSizedArctap!=null){ + if (arc.ConvertedVariousSizedArctap != null) + { JudgeArcTap(arc.ConvertedVariousSizedArctap); } if (arc.Judged) continue; @@ -304,13 +309,19 @@ private void JudgeArcTap(ArcArcTap t) public void SetArcTapShadowSkin(Sprite sprite) { + ArcTapShadowSkin = sprite; ArcTapPrefab.GetComponentInChildren().sprite = sprite; + SfxArcTapPrefab.GetComponentInChildren().sprite = sprite; foreach (ArcArc arc in Arcs) { foreach (ArcArcTap t in arc.ArcTaps) { t.ShadowRenderer.sprite = sprite; } + if (arc.ConvertedVariousSizedArctap != null) + { + arc.ConvertedVariousSizedArctap.ShadowRenderer.sprite = sprite; + } } }