From 5f64c4faf85ede61966b89a23fb429f61b17358a Mon Sep 17 00:00:00 2001 From: SoulliesOfficial <77235731+SoulliesOfficial@users.noreply.github.com> Date: Thu, 30 Jan 2025 22:45:33 -0500 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E5=86=85=E5=AE=B9-6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 技术性调整; Note效果; --- Assets/Prefabs/BasePrefabsCollection.asset | 11 ++ Assets/Prefabs/GameElements/Tap.prefab | 99 ++++++++++++++++++ Assets/Prefabs/GameElements/Tap.prefab.meta | 7 ++ Assets/Scenes/SampleScene.unity | 18 +++- Assets/Scripts/Animations/AnimationBase.cs | 6 +- .../Animations/Color/BaseColorChange.cs | 2 +- .../Animations/Color/EmissionColorChange.cs | 2 +- .../Animations/Track/TrackTotalTimeChange.cs | 2 +- .../Animations/Transform/Displacement.cs | 2 +- Assets/Scripts/Animations/Transform/LookAt.cs | 2 +- Assets/Scripts/Animations/Transform/Scale.cs | 2 +- Assets/Scripts/Animations/Transform/Swirl.cs | 2 +- Assets/Scripts/Base/BaseElement.cs | 33 +++++- .../Base/GeneralSubmodules/ColorSubmodule.cs | 39 +++++-- .../Base/GeneralSubmodules/EffectSubmodule.cs | 5 + .../Base/GeneralSubmodules/SubmoduleBase.cs | 7 ++ .../TimeDurationSubmodule.cs | 8 +- .../GeneralSubmodules/TransformSubmodule.cs | 51 ++++----- Assets/Scripts/Base/Manager/EditorManager.cs | 26 +++-- .../Base/Manager/ThemeBundleManager.cs | 10 +- Assets/Scripts/GameElements/ElementFolder.cs | 10 +- .../EnvironmentObjects/EnvironmentObject.cs | 4 +- .../GameElements/GameCamera/GameCamera.cs | 6 +- .../GameElements/GeneralEffects/BloomShake.cs | 1 - Assets/Scripts/GameElements/Notes/Flick.cs | 21 ++-- .../JudgeSubmodules/NoteJudgeSubmodule.cs | 5 +- Assets/Scripts/GameElements/Notes/NoteBase.cs | 16 ++- .../Notes/NoteVisual/NoteVisualBase.cs | 2 +- Assets/Scripts/GameElements/Notes/Stay.cs | 21 ++-- Assets/Scripts/GameElements/Notes/Tap.cs | 21 ++-- .../Scripts/GameElements/SubstantialObject.cs | 9 +- Assets/Scripts/GameElements/Track/PathNode.cs | 31 +++--- Assets/Scripts/GameElements/Track/Track.cs | 31 +++--- .../Track/TrackPoints/TrackHeadPoint.cs | 4 +- .../Track/TrackPoints/TrackPercentPoint.cs | 4 +- .../TrackSubmodules/TrackPathSubmodule.cs | 14 +-- .../TrackSubmodules/TrackRendererSubmodule.cs | 10 +- .../Track/TrackSubmodules/TrackSubmodule.cs | 6 ++ .../TrackSubmodules/TrackTimeSubmodule.cs | 23 ++-- Assets/StreamingAssets/ThemeBundles/OSX/OSX | Bin 1025 -> 1025 bytes .../ThemeBundles/OSX/OSX.manifest | 2 +- Assets/StreamingAssets/ThemeBundles/OSX/basic | Bin 78571 -> 78557 bytes .../ThemeBundles/OSX/basic.manifest | 6 +- .../Basic/Prefabs/BasicNoteTap3D.prefab | 11 +- .../NoteVisual/BasicNoteGenerateExpand.cs | 58 ++++++++-- .../NoteVisual/BasicNotePerfectBurst.cs | 25 ++++- .../Scripts/NoteVisual/BasicNoteVisual.cs | 23 +++- 47 files changed, 493 insertions(+), 205 deletions(-) create mode 100644 Assets/Prefabs/GameElements/Tap.prefab create mode 100644 Assets/Prefabs/GameElements/Tap.prefab.meta diff --git a/Assets/Prefabs/BasePrefabsCollection.asset b/Assets/Prefabs/BasePrefabsCollection.asset index 1073ccd8..a95477cd 100644 --- a/Assets/Prefabs/BasePrefabsCollection.asset +++ b/Assets/Prefabs/BasePrefabsCollection.asset @@ -25,10 +25,21 @@ MonoBehaviour: type: 3} elementFolder: {fileID: 5524510864018492689, guid: 5a9a2433580c2451b8200185cb45f867, type: 3} + gameCamera: {fileID: 0} track: {fileID: 8828428123186639208, guid: 20234a708961745eeafa459c79524348, type: 3} pathNode: {fileID: 7248180033186031075, guid: 609cdf441cd2f4c78a430e7df78a40f4, type: 3} defaultTrackMaterial: {fileID: 2100000, guid: 2424431729f1047c4b42f971c2cdd2b6, type: 2} + tapNote: {fileID: 8182686472733940155, guid: 9b2da5f6faa9c4d2abe557fc8f79f806, type: 3} + stayNote: {fileID: 0} + holdNote: {fileID: 0} + flickNote: {fileID: 0} + tapNoteSound: {fileID: 0} + stayNoteSound: {fileID: 0} + holdNoteStartSound: {fileID: 0} + holdNoteLoopSound: {fileID: 0} + holdNoteEndSound: {fileID: 0} + flickNoteSound: {fileID: 0} bloomShake: {fileID: 845605030242152257, guid: 1ea739ef6f1bf4e87835b0f554587451, type: 3} diff --git a/Assets/Prefabs/GameElements/Tap.prefab b/Assets/Prefabs/GameElements/Tap.prefab new file mode 100644 index 00000000..5708e652 --- /dev/null +++ b/Assets/Prefabs/GameElements/Tap.prefab @@ -0,0 +1,99 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8182686472733940155 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3154956539503596607} + - component: {fileID: 1476474925599486088} + m_Layer: 0 + m_Name: Tap + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3154956539503596607 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8182686472733940155} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1476474925599486088 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8182686472733940155} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6b1bd7cbcd49b4f0b805e902cd7c3025, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: + - Name: elementGuid + Entry: 2 + Data: 00000000000000000000000000000000 + - Name: timeDurationSubmodule + Entry: 6 + Data: + - Name: transformSubmodule + Entry: 6 + Data: + - Name: colorSubmodule + Entry: 6 + Data: + - Name: generateEffects + Entry: 6 + Data: + - Name: generalJudgeEffects + Entry: 6 + Data: + - Name: perfectJudgeEffects + Entry: 6 + Data: + - Name: goodJudgeEffects + Entry: 6 + Data: + - Name: badJudgeEffects + Entry: 6 + Data: + - Name: missJudgeEffects + Entry: 6 + Data: + - Name: noteJudgeSubmodule + Entry: 6 + Data: + elementName: + serialNumber: 0 + parentElement: {fileID: 0} + childElementList: [] + exactJudgeTime: 0 + isOnTrack: 0 + track: {fileID: 0} + trackPositioner: {fileID: 0} + noteVisual: {fileID: 0} + noteScreenPosition: {x: 0, y: 0} + isJudged: 0 diff --git a/Assets/Prefabs/GameElements/Tap.prefab.meta b/Assets/Prefabs/GameElements/Tap.prefab.meta new file mode 100644 index 00000000..0af32441 --- /dev/null +++ b/Assets/Prefabs/GameElements/Tap.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9b2da5f6faa9c4d2abe557fc8f79f806 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 0684419d..43896a49 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -182,6 +182,9 @@ MonoBehaviour: - Name: timeDurationSubmodule Entry: 7 Data: 0|Ichni.RhythmGame.TimeDurationSubmodule, Assembly-CSharp + - Name: attachedElement + Entry: 6 + Data: - Name: isOverridingDuration Entry: 5 Data: false @@ -197,6 +200,9 @@ MonoBehaviour: - Name: transformSubmodule Entry: 7 Data: 1|Ichni.RhythmGame.TransformSubmodule, Assembly-CSharp + - Name: attachedElement + Entry: 6 + Data: - Name: originalPosition Entry: 7 Data: UnityEngine.Vector3, UnityEngine.CoreModule @@ -1059,6 +1065,9 @@ MonoBehaviour: - Name: timeDurationSubmodule Entry: 7 Data: 0|Ichni.RhythmGame.TimeDurationSubmodule, Assembly-CSharp + - Name: attachedElement + Entry: 6 + Data: - Name: isOverridingDuration Entry: 5 Data: false @@ -1074,6 +1083,9 @@ MonoBehaviour: - Name: transformSubmodule Entry: 7 Data: 1|Ichni.RhythmGame.TransformSubmodule, Assembly-CSharp + - Name: attachedElement + Entry: 6 + Data: - Name: originalPosition Entry: 7 Data: UnityEngine.Vector3, UnityEngine.CoreModule @@ -1612,7 +1624,7 @@ MonoBehaviour: Data: 0|Ichni.SongModule, Assembly-CSharp - Name: songTime Entry: 4 - Data: 1 + Data: 0 - Name: songBeat Entry: 4 Data: 0 @@ -1620,6 +1632,7 @@ MonoBehaviour: Entry: 8 Data: basePrefabs: {fileID: 11400000, guid: 266f4a39c512c46eea7e44336e4fc600, type: 2} + elementList: [] --- !u!4 &1197505579 Transform: m_ObjectHideFlags: 0 @@ -1675,6 +1688,9 @@ MonoBehaviour: - Name: effectSubmodule Entry: 7 Data: 2|Ichni.RhythmGame.EffectSubmodule, Assembly-CSharp + - Name: attachedElement + Entry: 6 + Data: - Name: effectList Entry: 6 Data: diff --git a/Assets/Scripts/Animations/AnimationBase.cs b/Assets/Scripts/Animations/AnimationBase.cs index c600d4ed..940e534b 100644 --- a/Assets/Scripts/Animations/AnimationBase.cs +++ b/Assets/Scripts/Animations/AnimationBase.cs @@ -14,7 +14,7 @@ namespace Ichni.RhythmGame public void NewInitialize(string elementName, BaseElement targetObject) { - base.NewInitialize(elementName); + base.Initialize(elementName); this.targetObject = targetObject; SetParent(this.targetObject); } @@ -35,12 +35,12 @@ namespace Ichni.RhythmGame } } - timeDurationSubmodule = new TimeDurationSubmodule(startTimes.Min(), endTimes.Max()); + timeDurationSubmodule = new TimeDurationSubmodule(this, startTimes.Min(), endTimes.Max()); } public virtual void SetTimeDuration(float startTime, float endTime) { - timeDurationSubmodule = new TimeDurationSubmodule(startTime, endTime); + timeDurationSubmodule = new TimeDurationSubmodule(this, startTime, endTime); } protected abstract void UpdateAnimation(float songTime); diff --git a/Assets/Scripts/Animations/Color/BaseColorChange.cs b/Assets/Scripts/Animations/Color/BaseColorChange.cs index e117c156..4c950bd7 100644 --- a/Assets/Scripts/Animations/Color/BaseColorChange.cs +++ b/Assets/Scripts/Animations/Color/BaseColorChange.cs @@ -13,7 +13,7 @@ namespace Ichni.RhythmGame public static BaseColorChange GenerateElement(string elementName, BaseElement targetObject, FlexibleFloat colorR, FlexibleFloat colorG, FlexibleFloat colorB, FlexibleFloat colorA) { - BaseColorChange baseColorChange = LeanPool.Spawn(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); + BaseColorChange baseColorChange = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); baseColorChange.NewInitialize(elementName, targetObject); baseColorChange.colorR = colorR; diff --git a/Assets/Scripts/Animations/Color/EmissionColorChange.cs b/Assets/Scripts/Animations/Color/EmissionColorChange.cs index 6cb1991a..d1173394 100644 --- a/Assets/Scripts/Animations/Color/EmissionColorChange.cs +++ b/Assets/Scripts/Animations/Color/EmissionColorChange.cs @@ -13,7 +13,7 @@ namespace Ichni.RhythmGame public static EmissionColorChange GenerateElement(string elementName, BaseElement targetObject, FlexibleFloat colorR, FlexibleFloat colorG, FlexibleFloat colorB, FlexibleFloat colorI) { - EmissionColorChange baseColorChange = LeanPool.Spawn(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); + EmissionColorChange baseColorChange = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); baseColorChange.NewInitialize(elementName, targetObject); baseColorChange.colorR = colorR; diff --git a/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs b/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs index b5196e01..7803b6eb 100644 --- a/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs +++ b/Assets/Scripts/Animations/Track/TrackTotalTimeChange.cs @@ -12,7 +12,7 @@ namespace Ichni.RhythmGame public static TrackTotalTimeChange GenerateElement(string elementName, Track targetTrack, FlexibleFloat totalTime) { - TrackTotalTimeChange trackTotalTimeChange = LeanPool.Spawn(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); + TrackTotalTimeChange trackTotalTimeChange = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); trackTotalTimeChange.NewInitialize(elementName, targetTrack); if (targetTrack.trackTimeSubmodule is TrackTimeSubmoduleStatic submoduleStatic) diff --git a/Assets/Scripts/Animations/Transform/Displacement.cs b/Assets/Scripts/Animations/Transform/Displacement.cs index 261f1f25..59aab96a 100644 --- a/Assets/Scripts/Animations/Transform/Displacement.cs +++ b/Assets/Scripts/Animations/Transform/Displacement.cs @@ -18,7 +18,7 @@ namespace Ichni.RhythmGame public static Displacement GenerateElement(string elementName, BaseElement targetObject, FlexibleFloat positionX, FlexibleFloat positionY, FlexibleFloat positionZ) { - Displacement displacement = LeanPool.Spawn(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); + Displacement displacement = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); displacement.NewInitialize(elementName, targetObject); diff --git a/Assets/Scripts/Animations/Transform/LookAt.cs b/Assets/Scripts/Animations/Transform/LookAt.cs index fad10cc7..5ee0075e 100644 --- a/Assets/Scripts/Animations/Transform/LookAt.cs +++ b/Assets/Scripts/Animations/Transform/LookAt.cs @@ -19,7 +19,7 @@ namespace Ichni.RhythmGame public static LookAt GenerateElement(string elementName, BaseElement targetObject, BaseElement lookAtTarget, FlexibleBool enabling) { - LookAt swirl = LeanPool.Spawn(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); + LookAt swirl = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); swirl.NewInitialize(elementName, targetObject); diff --git a/Assets/Scripts/Animations/Transform/Scale.cs b/Assets/Scripts/Animations/Transform/Scale.cs index 42e1e8e2..08be57a2 100644 --- a/Assets/Scripts/Animations/Transform/Scale.cs +++ b/Assets/Scripts/Animations/Transform/Scale.cs @@ -12,7 +12,7 @@ namespace Ichni.RhythmGame public static Scale GenerateElement(string elementName, BaseElement targetObject, FlexibleFloat scaleX, FlexibleFloat scaleY, FlexibleFloat scaleZ) { - Scale scale = Lean.Pool.LeanPool.Spawn(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); + Scale scale = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); scale.NewInitialize(elementName, targetObject); diff --git a/Assets/Scripts/Animations/Transform/Swirl.cs b/Assets/Scripts/Animations/Transform/Swirl.cs index 906eda37..3ce086f2 100644 --- a/Assets/Scripts/Animations/Transform/Swirl.cs +++ b/Assets/Scripts/Animations/Transform/Swirl.cs @@ -13,7 +13,7 @@ namespace Ichni.RhythmGame public static Swirl GenerateElement(string elementName, BaseElement targetObject, FlexibleFloat eulerAngleX, FlexibleFloat eulerAngleY, FlexibleFloat eulerAngleZ) { - Swirl swirl = LeanPool.Spawn(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); + Swirl swirl = Instantiate(EditorManager.instance.basePrefabs.emptyObject).AddComponent(); swirl.NewInitialize(elementName, targetObject); diff --git a/Assets/Scripts/Base/BaseElement.cs b/Assets/Scripts/Base/BaseElement.cs index 765c0b91..4fb7bbe6 100644 --- a/Assets/Scripts/Base/BaseElement.cs +++ b/Assets/Scripts/Base/BaseElement.cs @@ -20,6 +20,9 @@ namespace Ichni.RhythmGame //标识 GUID public Guid elementGuid; + //标签 + public List tags; + //存档 //public BaseElement_BM matchedBM; @@ -38,13 +41,14 @@ namespace Ichni.RhythmGame /// 首次初始化 /// /// 物体名 - public virtual void NewInitialize(string name) + public virtual void Initialize(string name) { this.elementName = name; this.elementGuid = Guid.NewGuid(); + EditorManager.instance.elementList.Add(this); //GameManager.beatMapContainer.beatMapElementList.Add(this); //serialNumber = totalSerialNumber++; - SetTransformObserver(); + //SetTransformObserver(); } /// @@ -63,6 +67,14 @@ namespace Ichni.RhythmGame } + /// + /// 当物体被删除时执行的方法 + /// + public virtual void OnDelete() + { + + } + /// /// 设置父物体 /// @@ -76,6 +88,23 @@ namespace Ichni.RhythmGame transform.SetParent(parentElement.transform); } } + + public virtual void Delete() + { + if (this.childElementList != null) + { + for (int i = 0; i < childElementList.Count; i++) + { + childElementList[i].Delete(); //删除子GameElement、 + } + } + + OnDelete(); + + EditorManager.instance.elementList.Remove(this); //从保存列表中剔除 + this.parentElement.childElementList.Remove(this); + Destroy(gameObject); //销毁 + } } public abstract partial class BaseElement diff --git a/Assets/Scripts/Base/GeneralSubmodules/ColorSubmodule.cs b/Assets/Scripts/Base/GeneralSubmodules/ColorSubmodule.cs index ce609f4a..b92de51a 100644 --- a/Assets/Scripts/Base/GeneralSubmodules/ColorSubmodule.cs +++ b/Assets/Scripts/Base/GeneralSubmodules/ColorSubmodule.cs @@ -10,45 +10,62 @@ namespace Ichni.RhythmGame public bool emissionEnabled; public Color originalEmissionColor; public float originalEmissionIntensity; - + public List baseColorOffset = new List(); public List emissionColorOffset = new List(); public List emissionIntensityOffset = new List(); - + public Color currentBaseColor; public Color currentEmissionColor; public float currentEmissionIntensity; public bool baseColorDirtyMark; public bool emissionColorDirtyMark; - - public ColorSubmodule() + + public ColorSubmodule(BaseElement attachedElement) : base(attachedElement) { - + this.originalBaseColor = Color.white; + this.emissionEnabled = false; + this.originalEmissionColor = Color.black; + this.originalEmissionIntensity = 0; + + this.currentBaseColor = Color.white; + this.currentEmissionColor = Color.black; + this.currentEmissionIntensity = 0; + + this.baseColorDirtyMark = false; + this.emissionColorDirtyMark = false; } - - public ColorSubmodule(Color originalBaseColor) + + public ColorSubmodule(BaseElement attachedElement, Color originalBaseColor) : base(attachedElement) { this.originalBaseColor = originalBaseColor; this.emissionEnabled = false; this.originalEmissionColor = Color.black; this.originalEmissionIntensity = 0; - + this.currentBaseColor = originalBaseColor; this.currentEmissionColor = Color.black; this.currentEmissionIntensity = 0; + + this.baseColorDirtyMark = false; + this.emissionColorDirtyMark = false; } - - public ColorSubmodule(Color originalBaseColor, bool emissionEnabled, Color originalEmissionColor, float originalEmissionIntensity) + + public ColorSubmodule(BaseElement attachedElement, Color originalBaseColor, bool emissionEnabled, + Color originalEmissionColor, float originalEmissionIntensity) : base(attachedElement) { this.originalBaseColor = originalBaseColor; this.emissionEnabled = emissionEnabled; this.originalEmissionColor = originalEmissionColor; this.originalEmissionIntensity = originalEmissionIntensity; - + this.currentBaseColor = originalBaseColor; this.currentEmissionColor = originalEmissionColor; this.currentEmissionIntensity = originalEmissionIntensity; + + this.baseColorDirtyMark = false; + this.emissionColorDirtyMark = false; } } } \ No newline at end of file diff --git a/Assets/Scripts/Base/GeneralSubmodules/EffectSubmodule.cs b/Assets/Scripts/Base/GeneralSubmodules/EffectSubmodule.cs index 6e980d42..1ee96325 100644 --- a/Assets/Scripts/Base/GeneralSubmodules/EffectSubmodule.cs +++ b/Assets/Scripts/Base/GeneralSubmodules/EffectSubmodule.cs @@ -7,6 +7,11 @@ namespace Ichni.RhythmGame public class EffectSubmodule : SubmoduleBase { public List effectList; + + public EffectSubmodule(BaseElement attachedElement) : base(attachedElement) + { + effectList = new List(); + } } public abstract class EffectBase diff --git a/Assets/Scripts/Base/GeneralSubmodules/SubmoduleBase.cs b/Assets/Scripts/Base/GeneralSubmodules/SubmoduleBase.cs index f318edf5..8bf8042c 100644 --- a/Assets/Scripts/Base/GeneralSubmodules/SubmoduleBase.cs +++ b/Assets/Scripts/Base/GeneralSubmodules/SubmoduleBase.cs @@ -6,6 +6,13 @@ namespace Ichni.RhythmGame { public abstract class SubmoduleBase { + public BaseElement attachedElement; + + public SubmoduleBase(BaseElement attachedElement) + { + this.attachedElement = attachedElement; + } + public virtual void InitialRefresh() { diff --git a/Assets/Scripts/Base/GeneralSubmodules/TimeDurationSubmodule.cs b/Assets/Scripts/Base/GeneralSubmodules/TimeDurationSubmodule.cs index de9a5e48..102825b1 100644 --- a/Assets/Scripts/Base/GeneralSubmodules/TimeDurationSubmodule.cs +++ b/Assets/Scripts/Base/GeneralSubmodules/TimeDurationSubmodule.cs @@ -11,14 +11,14 @@ namespace Ichni.RhythmGame public bool isOverridingDuration; //是否手动设置了时间区间,开启时,子物体的时间区间将被忽略 public float startTime, endTime; //起止时间 - public TimeDurationSubmodule() + public TimeDurationSubmodule(BaseElement attachedElement) : base(attachedElement) { isOverridingDuration = false; - startTime = 0; - endTime = 0; + startTime = -999;//TODO: 换为-delay + endTime = 999;//TODO: 换为songLength } - public TimeDurationSubmodule(float startTime, float endTime) + public TimeDurationSubmodule(BaseElement attachedElement, float startTime, float endTime) : base(attachedElement) { this.isOverridingDuration = false; this.startTime = startTime; diff --git a/Assets/Scripts/Base/GeneralSubmodules/TransformSubmodule.cs b/Assets/Scripts/Base/GeneralSubmodules/TransformSubmodule.cs index 7b3565d8..c1aac24a 100644 --- a/Assets/Scripts/Base/GeneralSubmodules/TransformSubmodule.cs +++ b/Assets/Scripts/Base/GeneralSubmodules/TransformSubmodule.cs @@ -14,83 +14,70 @@ namespace Ichni.RhythmGame public Vector3 originalPosition; public Vector3 originalEulerAngles; public Vector3 originalScale; - + public List positionOffset; public List eulerAnglesOffset; public List scaleOffset; - + public Vector3 currentPosition; public Vector3 currentEulerAngles; public Vector3 currentScale; - + public bool positionDirtyMark; public bool eulerAnglesDirtyMark; public bool scaleDirtyMark; public bool eulerAnglesOffsetLock; - + public UnityAction OnPositionChanged; public UnityAction OnEulerAnglesChanged; public UnityAction OnScaleChanged; - public TransformSubmodule() + public TransformSubmodule(BaseElement attachedElement) : base(attachedElement) { this.originalPosition = Vector3.zero; this.originalEulerAngles = Vector3.zero; this.originalScale = Vector3.one; - + positionOffset = new List(); eulerAnglesOffset = new List(); scaleOffset = new List(); - + currentPosition = Vector3.zero; currentEulerAngles = Vector3.zero; currentScale = Vector3.one; - + positionDirtyMark = false; eulerAnglesDirtyMark = false; scaleDirtyMark = false; - + eulerAnglesOffsetLock = false; + + attachedElement.SetTransformObserver(); } - public TransformSubmodule(Vector3 originalPosition, Vector3 originalEulerAngles, Vector3 originalScale) + public TransformSubmodule(BaseElement attachedElement, + Vector3 originalPosition, Vector3 originalEulerAngles, Vector3 originalScale) : base(attachedElement) { this.originalPosition = originalPosition; this.originalEulerAngles = originalEulerAngles; this.originalScale = originalScale; - + positionOffset = new List(); eulerAnglesOffset = new List(); scaleOffset = new List(); - + currentPosition = originalPosition; currentEulerAngles = originalEulerAngles; currentScale = originalScale; - + positionDirtyMark = false; eulerAnglesDirtyMark = false; scaleDirtyMark = false; - + eulerAnglesOffsetLock = false; - } - - public void SetObserver(BaseElement target) - { - Observable.EveryUpdate().Subscribe(_ => - { - if (positionDirtyMark) - { - Vector3 offset = Vector3.zero; - foreach (var positionOffset in positionOffset) - { - offset += positionOffset; - } - currentPosition = originalPosition + offset; - positionDirtyMark = false; - } - positionOffset.Clear(); - }).AddTo(target); + + attachedElement.SetTransformObserver(); } } } \ No newline at end of file diff --git a/Assets/Scripts/Base/Manager/EditorManager.cs b/Assets/Scripts/Base/Manager/EditorManager.cs index 31eb362d..b36938db 100644 --- a/Assets/Scripts/Base/Manager/EditorManager.cs +++ b/Assets/Scripts/Base/Manager/EditorManager.cs @@ -2,6 +2,7 @@ using System; using System.Collections; using System.Collections.Generic; using Ichni.RhythmGame; +using Ichni.RhythmGame.ThemeBundles.Basic; using Sirenix.OdinInspector; using UnityEngine; @@ -13,6 +14,8 @@ namespace Ichni public SongModule songModule; public BasePrefabsCollection basePrefabs; + + public List elementList = new List(); private void Awake() { @@ -22,17 +25,20 @@ namespace Ichni private void Start() { var f0 = ElementFolder.GenerateElement("Folder", null); + var dis0 = Displacement.GenerateElement("Displacement-0", f0, + new FlexibleFloat(), + new FlexibleFloat(new List(){new (0,2,0,2, AnimationCurveType.Linear)}), + new FlexibleFloat()); var t0 = Track.GenerateElement("Track", f0, Vector3.left * 5f); - t0.trackPathSubmodule = new TrackPathSubmodule(); - t0.trackTimeSubmodule = new TrackTimeSubmoduleMovable(); - t0.trackRendererSubmodule = new TrackRendererSubmoduleAutoOrient(); - (t0.trackPathSubmodule).NewInitialize(t0, false, Track.TrackSpaceType.Linear, Track.TrackSamplingType.TimeDistributed); - (t0.trackTimeSubmodule as TrackTimeSubmoduleMovable).NewInitialize(t0, 0, 1, 1, AnimationCurveType.Linear); - (t0.trackRendererSubmodule as TrackRendererSubmoduleAutoOrient).NewInitialize(t0); - var p0 = PathNode.GeneratePathNode("PathNode-0", t0, 0, Vector3.zero, Vector3.forward, 1, Color.white); - var p1 = PathNode.GeneratePathNode("PathNode-1", t0, 1, Vector3.one * 10f, Vector3.left, 0, Color.red); - - t0.AfterInitialize(); + t0.trackPathSubmodule = new TrackPathSubmodule(t0, Track.TrackSpaceType.Linear, Track.TrackSamplingType.TimeDistributed, false); + t0.trackTimeSubmodule = new TrackTimeSubmoduleMovable(t0, 0, 2, 1, AnimationCurveType.Linear); + t0.trackRendererSubmodule = new TrackRendererSubmoduleAutoOrient(t0); + var p0 = PathNode.GenerateElement("PathNode-0", t0, 0, new Vector3(-5,5,10), Vector3.forward, 1, Color.white); + var p1 = PathNode.GenerateElement("PathNode-1", t0, 1, new Vector3(5,-5,10), Vector3.forward, 0, Color.red); + var n0 = Tap.GenerateElement("Note-0", 1f, t0); + var n0v = BasicNoteVisual.GenerateElement("Note-0-V", "basic", "BasicNoteTap3D", Vector3.zero, Vector3.zero, Vector3.one, n0); + + elementList.ForEach(e => e.AfterInitialize()); } private void Update() diff --git a/Assets/Scripts/Base/Manager/ThemeBundleManager.cs b/Assets/Scripts/Base/Manager/ThemeBundleManager.cs index 5bfa8b13..ddec957b 100644 --- a/Assets/Scripts/Base/Manager/ThemeBundleManager.cs +++ b/Assets/Scripts/Base/Manager/ThemeBundleManager.cs @@ -20,20 +20,16 @@ namespace Ichni private void Awake() { instance = this; - } - - private void Start() - { + loadedThemeBundleList = new List(); AssetBundle.UnloadAllAssetBundles(true); LoadAllThemeBundlesAbstract(); - //DontDestroyOnLoad(gameObject); - - LoadThemeBundle("fundamental"); + LoadThemeBundle("basic"); } + public T GetObject(string themeBundleName, string objectName) where T : class { return loadedThemeBundleList.Find(bundle => bundle.themeBundleName == themeBundleName)?.GetObject(objectName); diff --git a/Assets/Scripts/GameElements/ElementFolder.cs b/Assets/Scripts/GameElements/ElementFolder.cs index 7d8c5c30..ef7839a2 100644 --- a/Assets/Scripts/GameElements/ElementFolder.cs +++ b/Assets/Scripts/GameElements/ElementFolder.cs @@ -10,12 +10,16 @@ namespace Ichni.RhythmGame { public static ElementFolder GenerateElement(string name, BaseElement parentElement) { - ElementFolder elementFolder = LeanPool.Spawn(EditorManager.instance.basePrefabs.elementFolder).GetComponent(); + ElementFolder elementFolder = Instantiate(EditorManager.instance.basePrefabs.elementFolder).GetComponent(); - elementFolder.NewInitialize(name); + elementFolder.Initialize(name); elementFolder.SetParent(parentElement); - elementFolder.transformSubmodule = new TransformSubmodule(Vector3.zero, Vector3.zero, Vector3.one); + + elementFolder.transformSubmodule = new TransformSubmodule(elementFolder); + elementFolder.timeDurationSubmodule = new TimeDurationSubmodule(elementFolder); //elementFolder.GenerateTab(parentElement); + + elementFolder.SetTransformObserver(); return elementFolder; } diff --git a/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs b/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs index 6f8c7107..53ab5416 100644 --- a/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs +++ b/Assets/Scripts/GameElements/EnvironmentObjects/EnvironmentObject.cs @@ -14,8 +14,8 @@ namespace Ichni.RhythmGame bool isStatic, bool isFirstGenerated = true) { EnvironmentObject themeBundleObject = ThemeBundleManager.instance.GetObject(themeBundleName, objectName); - EnvironmentObject environmentObject = LeanPool.Spawn(themeBundleObject, parent.transform).GetComponent(); - environmentObject.NewInitialize(elementName); + EnvironmentObject environmentObject = Instantiate(themeBundleObject, parent.transform).GetComponent(); + environmentObject.Initialize(elementName); environmentObject.isStatic = isStatic; return environmentObject; } diff --git a/Assets/Scripts/GameElements/GameCamera/GameCamera.cs b/Assets/Scripts/GameElements/GameCamera/GameCamera.cs index 124ba416..7ae7d93e 100644 --- a/Assets/Scripts/GameElements/GameCamera/GameCamera.cs +++ b/Assets/Scripts/GameElements/GameCamera/GameCamera.cs @@ -24,15 +24,15 @@ namespace Ichni.RhythmGame CameraViewType cameraViewType, float perspectiveAngle, float orthographicSize, Vector3 initialPosition, Vector3 initialEulerAngles) { - GameCamera gameCamera = LeanPool.Spawn(EditorManager.instance.basePrefabs.gameCamera).GetComponent(); + GameCamera gameCamera = Instantiate(EditorManager.instance.basePrefabs.gameCamera).GetComponent(); - gameCamera.NewInitialize(elementName); + gameCamera.Initialize(elementName); gameCamera.parentElement = parentElement; gameCamera.cameraViewType = cameraViewType; gameCamera.camera.orthographic = cameraViewType == CameraViewType.Orthographic; gameCamera.perspectiveAngle = perspectiveAngle; gameCamera.orthographicSize = orthographicSize; - gameCamera.transformSubmodule = new TransformSubmodule(initialPosition, initialEulerAngles, Vector3.one); + gameCamera.transformSubmodule = new TransformSubmodule(gameCamera, initialPosition, initialEulerAngles, Vector3.one); gameCamera.cameraTransform = gameCamera.transform; gameCamera.SetParent(parentElement); diff --git a/Assets/Scripts/GameElements/GeneralEffects/BloomShake.cs b/Assets/Scripts/GameElements/GeneralEffects/BloomShake.cs index 73298048..eb8e1a0f 100644 --- a/Assets/Scripts/GameElements/GeneralEffects/BloomShake.cs +++ b/Assets/Scripts/GameElements/GeneralEffects/BloomShake.cs @@ -5,7 +5,6 @@ using Lean.Pool; using MoreMountains.Feedbacks; using MoreMountains.FeedbacksForThirdParty; using Sirenix.OdinInspector; -using UnityEngine; namespace Ichni.RhythmGame { diff --git a/Assets/Scripts/GameElements/Notes/Flick.cs b/Assets/Scripts/GameElements/Notes/Flick.cs index 49c40ed5..21a3128b 100644 --- a/Assets/Scripts/GameElements/Notes/Flick.cs +++ b/Assets/Scripts/GameElements/Notes/Flick.cs @@ -1,6 +1,8 @@ using System.Collections; using System.Collections.Generic; +using Dreamteck.Splines; using Lean.Pool; +using Unity.VisualScripting; using UnityEngine; namespace Ichni.RhythmGame @@ -10,9 +12,12 @@ namespace Ichni.RhythmGame public List availableFlickDirections; public static Flick GenerateElement(string elementName, float exactJudgeTime, BaseElement attach, List directions) { - Flick flick = LeanPool.Spawn(EditorManager.instance.basePrefabs.tapNote, attach.transform).GetComponent(); - flick.NewInitialize(elementName, exactJudgeTime); + Flick flick = Instantiate(EditorManager.instance.basePrefabs.tapNote, attach.transform).GetComponent(); + flick.Initialize(elementName); + flick.exactJudgeTime = exactJudgeTime; flick.availableFlickDirections = directions; + flick.transformSubmodule = new TransformSubmodule(flick); + flick.timeDurationSubmodule = new TimeDurationSubmodule(flick); flick.SetParent(attach); if (attach.TryGetComponent(out Track track)) @@ -20,6 +25,7 @@ namespace Ichni.RhythmGame if (track.trackTimeSubmodule != null) { flick.track = track; + flick.trackPositioner = flick.AddComponent(); flick.trackPositioner.spline = track.trackPathSubmodule.path; flick.isOnTrack = true; flick.UpdateNoteInTrack(); @@ -31,18 +37,11 @@ namespace Ichni.RhythmGame } else { - + flick.track = null; + flick.isOnTrack = false; } return flick; } - - public void NewInitialize(string elementName, float exactJudgeTime) - { - base.NewInitialize(elementName); - this.exactJudgeTime = exactJudgeTime; - this.track = null; - this.isOnTrack = false; - } } } \ No newline at end of file diff --git a/Assets/Scripts/GameElements/Notes/JudgeSubmodules/NoteJudgeSubmodule.cs b/Assets/Scripts/GameElements/Notes/JudgeSubmodules/NoteJudgeSubmodule.cs index af9ab8c6..581ba12b 100644 --- a/Assets/Scripts/GameElements/Notes/JudgeSubmodules/NoteJudgeSubmodule.cs +++ b/Assets/Scripts/GameElements/Notes/JudgeSubmodules/NoteJudgeSubmodule.cs @@ -6,7 +6,10 @@ namespace Ichni.RhythmGame { public class NoteJudgeSubmodule : SubmoduleBase { - + public NoteJudgeSubmodule(BaseElement attachedElement) : base(attachedElement) + { + + } } public class NoteJudgeUnit diff --git a/Assets/Scripts/GameElements/Notes/NoteBase.cs b/Assets/Scripts/GameElements/Notes/NoteBase.cs index a3d7caff..0ab99f3a 100644 --- a/Assets/Scripts/GameElements/Notes/NoteBase.cs +++ b/Assets/Scripts/GameElements/Notes/NoteBase.cs @@ -40,7 +40,19 @@ namespace Ichni.RhythmGame [Title("In-Game Info")] public Vector2 noteScreenPosition; public bool isJudged; - + + public override void Initialize(string name) + { + base.Initialize(name); + generateEffects = new EffectSubmodule(this); + generalJudgeEffects = new EffectSubmodule(this); + perfectJudgeEffects = new EffectSubmodule(this); + goodJudgeEffects = new EffectSubmodule(this); + badJudgeEffects = new EffectSubmodule(this); + missJudgeEffects = new EffectSubmodule(this); + noteJudgeSubmodule = new NoteJudgeSubmodule(this); + } + /// /// 在MovableTrack上更新Note的位置,注意HoldNote需要重写这个方法 /// @@ -97,7 +109,7 @@ namespace Ichni.RhythmGame { if (!isJudged) { - AudioSource.PlayClipAtPoint(EditorManager.instance.basePrefabs.tapNoteSound, Camera.main.transform.position, 1f); + //AudioSource.PlayClipAtPoint(EditorManager.instance.basePrefabs.tapNoteSound, Camera.main.transform.position, 1f); isJudged = true; } } diff --git a/Assets/Scripts/GameElements/Notes/NoteVisual/NoteVisualBase.cs b/Assets/Scripts/GameElements/Notes/NoteVisual/NoteVisualBase.cs index 2e6ccd1c..eda11174 100644 --- a/Assets/Scripts/GameElements/Notes/NoteVisual/NoteVisualBase.cs +++ b/Assets/Scripts/GameElements/Notes/NoteVisual/NoteVisualBase.cs @@ -16,7 +16,7 @@ namespace Ichni.RhythmGame public void NewInitialize(NoteBase note) { - base.NewInitialize(note.elementName + " Note Visual"); + base.Initialize(note.elementName + " Note Visual"); this.note = note; } } diff --git a/Assets/Scripts/GameElements/Notes/Stay.cs b/Assets/Scripts/GameElements/Notes/Stay.cs index 7a39c2a7..9e0388c0 100644 --- a/Assets/Scripts/GameElements/Notes/Stay.cs +++ b/Assets/Scripts/GameElements/Notes/Stay.cs @@ -1,6 +1,8 @@ using System.Collections; using System.Collections.Generic; +using Dreamteck.Splines; using Lean.Pool; +using Unity.VisualScripting; using UnityEngine; namespace Ichni.RhythmGame @@ -9,8 +11,11 @@ namespace Ichni.RhythmGame { public static Stay GenerateElement(string elementName, float exactJudgeTime, BaseElement attach) { - Stay stay = LeanPool.Spawn(EditorManager.instance.basePrefabs.tapNote, attach.transform).GetComponent(); - stay.NewInitialize(elementName, exactJudgeTime); + Stay stay = Instantiate(EditorManager.instance.basePrefabs.tapNote, attach.transform).GetComponent(); + stay.Initialize(elementName); + stay.exactJudgeTime = exactJudgeTime; + stay.transformSubmodule = new TransformSubmodule(stay); + stay.timeDurationSubmodule = new TimeDurationSubmodule(stay); stay.SetParent(attach); if (attach.TryGetComponent(out Track track)) @@ -18,6 +23,7 @@ namespace Ichni.RhythmGame if (track.trackTimeSubmodule != null) { stay.track = track; + stay.trackPositioner = stay.AddComponent(); stay.trackPositioner.spline = track.trackPathSubmodule.path; stay.isOnTrack = true; stay.UpdateNoteInTrack(); @@ -29,18 +35,11 @@ namespace Ichni.RhythmGame } else { - + stay.track = null; + stay.isOnTrack = false; } return stay; } - - public void NewInitialize(string elementName, float exactJudgeTime) - { - base.NewInitialize(elementName); - this.exactJudgeTime = exactJudgeTime; - this.track = null; - this.isOnTrack = false; - } } } \ No newline at end of file diff --git a/Assets/Scripts/GameElements/Notes/Tap.cs b/Assets/Scripts/GameElements/Notes/Tap.cs index 97beadfe..c4c6fe83 100644 --- a/Assets/Scripts/GameElements/Notes/Tap.cs +++ b/Assets/Scripts/GameElements/Notes/Tap.cs @@ -1,6 +1,8 @@ using System.Collections; using System.Collections.Generic; +using Dreamteck.Splines; using Lean.Pool; +using Unity.VisualScripting; using UnityEngine; namespace Ichni.RhythmGame @@ -9,8 +11,11 @@ namespace Ichni.RhythmGame { public static Tap GenerateElement(string elementName, float exactJudgeTime, BaseElement attach) { - Tap tap = LeanPool.Spawn(EditorManager.instance.basePrefabs.tapNote, attach.transform).GetComponent(); - tap.NewInitialize(elementName, exactJudgeTime); + Tap tap = Instantiate(EditorManager.instance.basePrefabs.tapNote, attach.transform).GetComponent(); + tap.Initialize(elementName); + tap.exactJudgeTime = exactJudgeTime; + tap.transformSubmodule = new TransformSubmodule(tap); + tap.timeDurationSubmodule = new TimeDurationSubmodule(tap); tap.SetParent(attach); if (attach.TryGetComponent(out Track track)) @@ -18,6 +23,7 @@ namespace Ichni.RhythmGame if (track.trackTimeSubmodule != null) { tap.track = track; + tap.trackPositioner = tap.AddComponent(); tap.trackPositioner.spline = track.trackPathSubmodule.path; tap.isOnTrack = true; tap.UpdateNoteInTrack(); @@ -29,18 +35,11 @@ namespace Ichni.RhythmGame } else { - + tap.track = null; + tap.isOnTrack = false; } return tap; } - - public void NewInitialize(string elementName, float exactJudgeTime) - { - base.NewInitialize(elementName); - this.exactJudgeTime = exactJudgeTime; - this.track = null; - this.isOnTrack = false; - } } } \ No newline at end of file diff --git a/Assets/Scripts/GameElements/SubstantialObject.cs b/Assets/Scripts/GameElements/SubstantialObject.cs index 8024fee1..d8051193 100644 --- a/Assets/Scripts/GameElements/SubstantialObject.cs +++ b/Assets/Scripts/GameElements/SubstantialObject.cs @@ -14,8 +14,13 @@ namespace Ichni.RhythmGame bool isFirstGenerated = true) { GameObject themeBundleObject = ThemeBundleManager.instance.GetObject(themeBundleName, objectName); - SubstantialObject substantialObject = LeanPool.Spawn(themeBundleObject, parent.transform).GetComponent(); - substantialObject.NewInitialize(elementName); + SubstantialObject substantialObject = Instantiate(themeBundleObject, parent.transform).GetComponent(); + substantialObject.Initialize(elementName); + + substantialObject.transformSubmodule = new TransformSubmodule(substantialObject, position, eulerAngles, scale); + substantialObject.timeDurationSubmodule = new TimeDurationSubmodule(substantialObject); + substantialObject.colorSubmodule = new ColorSubmodule(substantialObject); + substantialObject.SetParent(parent); return substantialObject; } diff --git a/Assets/Scripts/GameElements/Track/PathNode.cs b/Assets/Scripts/GameElements/Track/PathNode.cs index 06501e0c..bdfb5124 100644 --- a/Assets/Scripts/GameElements/Track/PathNode.cs +++ b/Assets/Scripts/GameElements/Track/PathNode.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using Dreamteck.Splines; using Ichni; using Lean.Pool; +using Sirenix.OdinInspector; using UnityEngine; namespace Ichni.RhythmGame @@ -12,34 +13,30 @@ namespace Ichni.RhythmGame public ColorSubmodule colorSubmodule; public Track track; - public int index; + + public int index => track.trackPathSubmodule.pathNodeList.IndexOf(this); + public SplinePoint node; - public static PathNode GeneratePathNode(string elementName, Track track, int index, Vector3 nodePosition, + public static PathNode GenerateElement(string elementName, Track track, int index, Vector3 nodePosition, Vector3 nodeNormal, float nodeSize, Color nodeColor) { - PathNode pathNode = LeanPool.Spawn(EditorManager.instance.basePrefabs.pathNode, track.transform).GetComponent(); + PathNode pathNode = Instantiate(EditorManager.instance.basePrefabs.pathNode, track.transform).GetComponent(); - pathNode.NewInitialize(elementName, track, index, nodePosition, nodeNormal, nodeSize, nodeColor); + pathNode.Initialize(elementName); + pathNode.track = track; + //pathNode.index = index; + + pathNode.transformSubmodule = new TransformSubmodule(pathNode, nodePosition, Quaternion.LookRotation(nodeNormal, Vector3.up).eulerAngles, Vector3.one * nodeSize); + pathNode.timeDurationSubmodule = new TimeDurationSubmodule(pathNode); + pathNode.colorSubmodule = new ColorSubmodule(pathNode, nodeColor); track.trackPathSubmodule.pathNodeList.Add(pathNode); pathNode.SetParent(track); + return pathNode; } - - public void NewInitialize(string elementName, Track track, int index, Vector3 nodePosition, - Vector3 nodeNormal, float nodeSize, Color nodeColor) - { - base.NewInitialize(elementName); - this.track = track; - this.index = index; - this.transformSubmodule = new TransformSubmodule(nodePosition, Quaternion.LookRotation(nodeNormal, Vector3.up).eulerAngles, Vector3.one * nodeSize); - this.colorSubmodule = new ColorSubmodule(nodeColor); - - Refresh(); - } - public override void AfterInitialize() { Refresh(); diff --git a/Assets/Scripts/GameElements/Track/Track.cs b/Assets/Scripts/GameElements/Track/Track.cs index ef620107..2f71f013 100644 --- a/Assets/Scripts/GameElements/Track/Track.cs +++ b/Assets/Scripts/GameElements/Track/Track.cs @@ -14,30 +14,23 @@ namespace Ichni.RhythmGame public static Track GenerateElement(string elementName, BaseElement parent, Vector3 position) { - if (parent == null) - { - throw new System.Exception("Parent is null"); - } + Track track = Instantiate(EditorManager.instance.basePrefabs.track, parent.transform).GetComponent(); - Track track = LeanPool.Spawn(EditorManager.instance.basePrefabs.track, parent.transform).GetComponent(); - - track.NewInitialize(elementName, position); + track.Initialize(elementName); track.SetParent(parent); + + track.transformSubmodule = new TransformSubmodule(track, position, Vector3.zero, Vector3.one); + track.timeDurationSubmodule = new TimeDurationSubmodule(track); + + track.trackPathSubmodule = null; + track.trackTimeSubmodule = null; + track.trackRendererSubmodule = null; + + track.SetTransformObserver(); return track; } - private void NewInitialize(string elementName, Vector3 position) - { - base.NewInitialize(elementName); - timeDurationSubmodule = new TimeDurationSubmodule(); - transformSubmodule = new TransformSubmodule(position, Vector3.zero, Vector3.one); - trackPathSubmodule = null; - trackTimeSubmodule = null; - trackRendererSubmodule = null; - Refresh(); - } - public override void AfterInitialize() { @@ -56,7 +49,7 @@ namespace Ichni.RhythmGame { public override void Refresh() { - transform.localPosition = transformSubmodule.currentPosition; + } } diff --git a/Assets/Scripts/GameElements/Track/TrackPoints/TrackHeadPoint.cs b/Assets/Scripts/GameElements/Track/TrackPoints/TrackHeadPoint.cs index a0655f3f..4e934e10 100644 --- a/Assets/Scripts/GameElements/Track/TrackPoints/TrackHeadPoint.cs +++ b/Assets/Scripts/GameElements/Track/TrackPoints/TrackHeadPoint.cs @@ -14,7 +14,7 @@ namespace Ichni.RhythmGame public static TrackHeadPoint GenerateElement(string elementName, Track track) { - TrackHeadPoint head = LeanPool.Spawn(EditorManager.instance.basePrefabs.emptyObject, track.transform).AddComponent(); + TrackHeadPoint head = Instantiate(EditorManager.instance.basePrefabs.emptyObject, track.transform).AddComponent(); head.NewInitialize(elementName, track); head.SetParent(track); @@ -23,7 +23,7 @@ namespace Ichni.RhythmGame private void NewInitialize(string elementName, Track track) { - base.NewInitialize(elementName); + base.Initialize(elementName); this.track = track; this.trackPositioner = gameObject.AddComponent(); this.trackPositioner.spline = track.trackPathSubmodule.path; diff --git a/Assets/Scripts/GameElements/Track/TrackPoints/TrackPercentPoint.cs b/Assets/Scripts/GameElements/Track/TrackPoints/TrackPercentPoint.cs index e7aa6431..d6f17aec 100644 --- a/Assets/Scripts/GameElements/Track/TrackPoints/TrackPercentPoint.cs +++ b/Assets/Scripts/GameElements/Track/TrackPoints/TrackPercentPoint.cs @@ -21,7 +21,7 @@ namespace Ichni.RhythmGame public static TrackPercentPoint GenerateElement(string elementName, Track track, FlexibleFloat trackPercent) { - TrackPercentPoint point = LeanPool.Spawn(EditorManager.instance.basePrefabs.emptyObject, track.transform).AddComponent(); + TrackPercentPoint point = Instantiate(EditorManager.instance.basePrefabs.emptyObject, track.transform).AddComponent(); point.NewInitialize(elementName, track, trackPercent); point.SetParent(track); @@ -33,7 +33,7 @@ namespace Ichni.RhythmGame private void NewInitialize(string elementName, Track track, FlexibleFloat trackPercent) { - base.NewInitialize(elementName); + base.Initialize(elementName); this.track = track; this.trackPositioner = gameObject.AddComponent(); this.trackPositioner.spline = track.trackPathSubmodule.path; diff --git a/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackPathSubmodule.cs b/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackPathSubmodule.cs index 7796297a..34edf9e7 100644 --- a/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackPathSubmodule.cs +++ b/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackPathSubmodule.cs @@ -15,10 +15,8 @@ namespace Ichni.RhythmGame public Track.TrackSamplingType trackSamplingType; public bool isClosed; - public void NewInitialize(Track track, bool isClosed, Track.TrackSpaceType trackSpaceType, - Track.TrackSamplingType trackSamplingType) + public TrackPathSubmodule(Track track, Track.TrackSpaceType trackSpaceType, Track.TrackSamplingType trackSamplingType, bool isClosed) : base(track) { - this.track = track; this.path = track.AddComponent(); track.trackPathSubmodule = this; this.pathNodeList = new List(); @@ -26,7 +24,8 @@ namespace Ichni.RhythmGame this.trackSamplingType = trackSamplingType; this.isClosed = isClosed; - SetUpSplineComputer(trackSpaceType, trackSamplingType); + SetUpSplineComputer(this.trackSpaceType, this.trackSamplingType); + //闭合路径在PathNode生成时执行,在初始化的情况下,PathNode数量为0,不会执行闭合操作 } } @@ -59,13 +58,6 @@ namespace Ichni.RhythmGame path.type = (Spline.Type)spaceType; } - public void AddPathNode(PathNode point) - { - path.SetPoint(pathNodeList.Count, point.node, SplineComputer.Space.Local); - - pathNodeList.Add(point); - } - public void SetPathNode(PathNode point) { path.SetPoint(point.index, point.node, SplineComputer.Space.Local); diff --git a/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackRendererSubmodule.cs b/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackRendererSubmodule.cs index 697d94d7..afe4ec7a 100644 --- a/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackRendererSubmodule.cs +++ b/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackRendererSubmodule.cs @@ -11,16 +11,20 @@ namespace Ichni.RhythmGame public MeshGenerator meshGenerator; public MeshRenderer meshRenderer; public Material renderMaterial; + + public TrackRendererSubmodule(Track track) : base(track) + { + this.track = track; + this.track.trackRendererSubmodule = this; + } } public class TrackRendererSubmoduleAutoOrient : TrackRendererSubmodule { public SplineRenderer splineRenderer; - public void NewInitialize(Track track, Material material = null) + public TrackRendererSubmoduleAutoOrient(Track track, Material material = null) : base(track) { - this.track = track; - this.track.trackRendererSubmodule = this; this.splineRenderer = track.AddComponent(); this.meshRenderer = splineRenderer.GetComponent(); this.meshGenerator = splineRenderer; diff --git a/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackSubmodule.cs b/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackSubmodule.cs index 88c5a7e1..eb4a1f1d 100644 --- a/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackSubmodule.cs +++ b/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackSubmodule.cs @@ -8,5 +8,11 @@ namespace Ichni.RhythmGame { public Track track; public bool isUpdating; + + public TrackSubmodule(Track track) : base(track) + { + this.track = track; + isUpdating = false; + } } } \ No newline at end of file diff --git a/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackTimeSubmodule.cs b/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackTimeSubmodule.cs index f50cb566..bb9efbb1 100644 --- a/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackTimeSubmodule.cs +++ b/Assets/Scripts/GameElements/Track/TrackSubmodules/TrackTimeSubmodule.cs @@ -7,6 +7,12 @@ namespace Ichni.RhythmGame public class TrackTimeSubmodule : TrackSubmodule { public float headPercent, tailPercent; + + public TrackTimeSubmodule(Track track) : base(track) + { + this.track = track; + this.track.trackTimeSubmodule = this; + } } public class TrackTimeSubmoduleMovable : TrackTimeSubmodule @@ -16,17 +22,17 @@ namespace Ichni.RhythmGame public float trackTotalTime; public float visibleTrackTimeLength; public AnimationCurveType animationCurveType; - - public void NewInitialize(Track track, float trackStartTime, float trackEndTime, - float visibleTrackTimeLength, AnimationCurveType animationCurveType) + + public TrackTimeSubmoduleMovable(Track track, float trackStartTime, float trackEndTime, + float visibleTrackTimeLength, AnimationCurveType animationCurveType) : base(track) { - this.track = track; this.track.trackTimeSubmodule = this; this.trackStartTime = trackStartTime; this.trackEndTime = trackEndTime; this.trackTotalTime = trackEndTime - trackStartTime; this.visibleTrackTimeLength = visibleTrackTimeLength; this.animationCurveType = animationCurveType; + track.timeDurationSubmodule.startTime = trackStartTime; track.timeDurationSubmodule.endTime = trackEndTime + visibleTrackTimeLength; } @@ -57,16 +63,15 @@ namespace Ichni.RhythmGame public float trackTotalTime; public AnimationCurveType animationCurveType; - public void NewInitialize(Track track, float trackTotalTime, AnimationCurveType animationCurveType) + public TrackTimeSubmoduleStatic(Track track, float trackTotalTime, AnimationCurveType animationCurveType) : base(track) { - this.track = track; - this.track.trackTimeSubmodule = this; this.trackTotalTime = trackTotalTime; this.animationCurveType = animationCurveType; this.headPercent = 0; this.tailPercent = 1; - track.timeDurationSubmodule.startTime = 0; - track.timeDurationSubmodule.endTime = 0; + + track.timeDurationSubmodule.startTime = -999; + track.timeDurationSubmodule.endTime = 999; //timeDurationSubmodule 根据下辖Note的时间来设置 } } diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/OSX b/Assets/StreamingAssets/ThemeBundles/OSX/OSX index 89991e71aa7d50230e7aa4312a176d90856d8376..d2c1c067aa6656b1d1fc4ce07cd2bfdb0ca61fd1 100644 GIT binary patch delta 37 vcmV+=0NVe72!RN&PXEWECNsz2{y&v3^8gZD55)ig diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/OSX.manifest b/Assets/StreamingAssets/ThemeBundles/OSX/OSX.manifest index 383bdfcb..6e6b2d5f 100644 --- a/Assets/StreamingAssets/ThemeBundles/OSX/OSX.manifest +++ b/Assets/StreamingAssets/ThemeBundles/OSX/OSX.manifest @@ -1,5 +1,5 @@ ManifestFileVersion: 0 -CRC: 3929595412 +CRC: 2320234516 AssetBundleManifest: AssetBundleInfos: Info_0: diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/basic b/Assets/StreamingAssets/ThemeBundles/OSX/basic index 786d5d34915d8b719c1db30c5508ca001a74b6d4..eaf8ff5f21e42241aaffcc0dbb6d0bd1a7b98ac4 100644 GIT binary patch literal 78557 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 P5|b4cYai7AqHjaaO$2t~ literal 78571 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

A+s5c7?*%;!h>T}PR@{K^*iVzmw06k(n3Sb%N> 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 diff --git a/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest b/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest index 375f7e2b..7f175f73 100644 --- a/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest +++ b/Assets/StreamingAssets/ThemeBundles/OSX/basic.manifest @@ -1,15 +1,15 @@ ManifestFileVersion: 0 -CRC: 3692374476 +CRC: 3644372668 Hashes: AssetFileHash: serializedVersion: 2 - Hash: d3fff661e0cc14bfbc3d0521f65d26e7 + Hash: 110d4740b29ef7da3aa800ad69f39ffe TypeTreeHash: serializedVersion: 2 Hash: 0b29093cb0b98a6a3edca231f6a05b16 IncrementalBuildHash: serializedVersion: 2 - Hash: d3fff661e0cc14bfbc3d0521f65d26e7 + Hash: 110d4740b29ef7da3aa800ad69f39ffe HashAppended: 0 ClassTypes: - Class: 1 diff --git a/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab b/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab index 0ebbbb89..076d6a4e 100644 --- a/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab +++ b/Assets/ThemeBundles/Basic/Prefabs/BasicNoteTap3D.prefab @@ -193,7 +193,7 @@ Transform: m_GameObject: {fileID: 8969796646526822168} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1, y: 1, z: 5} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -228,6 +228,9 @@ MonoBehaviour: - Name: timeDurationSubmodule Entry: 7 Data: 0|Ichni.RhythmGame.TimeDurationSubmodule, Assembly-CSharp + - Name: attachedElement + Entry: 6 + Data: - Name: isOverridingDuration Entry: 5 Data: false @@ -243,6 +246,9 @@ MonoBehaviour: - Name: transformSubmodule Entry: 7 Data: 1|Ichni.RhythmGame.TransformSubmodule, Assembly-CSharp + - Name: attachedElement + Entry: 6 + Data: - Name: originalPosition Entry: 7 Data: UnityEngine.Vector3, UnityEngine.CoreModule @@ -399,6 +405,9 @@ MonoBehaviour: - Name: colorSubmodule Entry: 7 Data: 5|Ichni.RhythmGame.ColorSubmodule, Assembly-CSharp + - Name: attachedElement + Entry: 6 + Data: - Name: originalBaseColor Entry: 7 Data: UnityEngine.Color, UnityEngine.CoreModule diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGenerateExpand.cs b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGenerateExpand.cs index 3cddeefd..9b9b1073 100644 --- a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGenerateExpand.cs +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteGenerateExpand.cs @@ -1,18 +1,56 @@ using System.Collections; using System.Collections.Generic; +using DG.Tweening; +using Ichni.RhythmGame; using UnityEngine; -public class BasicNoteGenerateExpand : MonoBehaviour +namespace Ichni.RhythmGame.ThemeBundles.Basic { - // Start is called before the first frame update - void Start() + public class BasicNoteGenerateExpand : NoteEffectBase { - - } + public float generateTime; - // Update is called once per frame - void Update() - { - + public BasicNoteGenerateExpand(NoteBase note) + { + this.note = note; + this.generateTime = 1f; + this.effectTime = 0.1f; + this.noteVisual = note.noteVisual.GetComponent(); + } + + public override void Recover() + { + noteVisual.noteMain.SetActive(false); + noteVisual.noteMain.transform.localScale = Vector3.zero; + } + + public override void Adjust() + { + noteVisual.noteMain.SetActive(true); + noteVisual.noteMain.transform.DOScale(Vector3.one, 0.1f).SetEase(Ease.OutBack); + } + + public override EffectState CheckEffectState() + { + float songTime = EditorManager.instance.songModule.songTime; + + if (songTime < note.exactJudgeTime - generateTime) + { + return EffectState.Before; + } + + if (songTime >= note.exactJudgeTime - generateTime && + songTime <= note.exactJudgeTime - generateTime + effectTime) + { + return EffectState.Middle; + } + + if (songTime > note.exactJudgeTime - generateTime + effectTime) + { + return EffectState.After; + } + + return EffectState.Error; + } } -} +} \ No newline at end of file diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNotePerfectBurst.cs b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNotePerfectBurst.cs index 4de3162a..cfa1f1ce 100644 --- a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNotePerfectBurst.cs +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNotePerfectBurst.cs @@ -9,7 +9,7 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic { private GameObject effectRing; - public void Initialize(NoteBase note) + public BasicNotePerfectBurst(NoteBase note) { this.note = note; this.noteVisual = note.noteVisual.GetComponent(); @@ -31,5 +31,28 @@ namespace Ichni.RhythmGame.ThemeBundles.Basic effectRing.GetComponent().DOFade(0, 0.1f).SetEase(Ease.OutBack).OnComplete(() => effectRing.SetActive(false)); noteVisual.noteMain.SetActive(false); } + + public override EffectState CheckEffectState() + { + float songTime = EditorManager.instance.songModule.songTime; + + if (songTime < note.exactJudgeTime ) + { + return EffectState.Before; + } + + if (songTime >= note.exactJudgeTime && + songTime <= note.exactJudgeTime + effectTime) + { + return EffectState.Middle; + } + + if (songTime > note.exactJudgeTime + effectTime) + { + return EffectState.After; + } + + return EffectState.Error; + } } } \ No newline at end of file diff --git a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs index c7403698..b5dac991 100644 --- a/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs +++ b/Assets/ThemeBundles/Basic/Scripts/NoteVisual/BasicNoteVisual.cs @@ -1,11 +1,32 @@ using System.Collections; using System.Collections.Generic; +using Lean.Pool; using UnityEngine; namespace Ichni.RhythmGame.ThemeBundles.Basic { public class BasicNoteVisual : NoteVisualBase { - + public new static BasicNoteVisual GenerateElement(string elementName, string themeBundleName, + string objectName, Vector3 position, Vector3 eulerAngles, Vector3 scale, BaseElement parent, + bool isFirstGenerated = true) + { + BasicNoteVisual noteVisual = SubstantialObject + .GenerateElement(elementName, themeBundleName, objectName, position, eulerAngles, scale, parent, isFirstGenerated) + .GetComponent(); + + NoteBase note = parent as NoteBase; + if(note == null) throw new System.Exception("NoteVisual只能生成在Note下。"); + noteVisual.note = note; + note.noteVisual = noteVisual; + + if (isFirstGenerated) + { + note.generateEffects.effectList.Add(new BasicNoteGenerateExpand(noteVisual.note)); + note.perfectJudgeEffects.effectList.Add(new BasicNotePerfectBurst(noteVisual.note)); + } + + return noteVisual; + } } } \ No newline at end of file