Signed-off-by: TRAfoer <lhf190@outlook.com>

This commit is contained in:
2025-07-17 16:44:38 +08:00
parent 015a174afc
commit 55af142af3
29 changed files with 17816 additions and 16619 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -193,19 +193,7 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 5335898105413302274}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 2335519274396818332}
m_TargetAssemblyTypeName: NotefabContoler, Assembly-CSharp
m_MethodName: Onclick
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_Calls: []
--- !u!114 &2335519274396818332
MonoBehaviour:
m_ObjectHideFlags: 0

View File

@@ -498,6 +498,161 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Padding: {x: -8, y: -5, z: -8, w: -5}
m_Softness: {x: 0, y: 0}
--- !u!1 &1167970193865840737
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4892878595417430908}
- component: {fileID: 850224858169136904}
- component: {fileID: 1048046593752268357}
- component: {fileID: 8057768539982312366}
m_Layer: 5
m_Name: Placeholder
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4892878595417430908
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1167970193865840737}
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: 7885863486269095429}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &850224858169136904
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1167970193865840737}
m_CullTransparentMesh: 1
--- !u!114 &1048046593752268357
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1167970193865840737}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Enter text...
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 2150773298
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 14
m_fontSizeBase: 14
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 2
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &8057768539982312366
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1167970193865840737}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 1
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &1367918225985014511
GameObject:
m_ObjectHideFlags: 0
@@ -704,7 +859,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.1764706, g: 0.25490198, b: 0.33333334, a: 0.09803922}
m_Color: {r: 0.1764706, g: 0.25490198, b: 0.33333334, a: 0.50980395}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
@@ -968,7 +1123,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!224 &1863687384833674762
RectTransform:
m_ObjectHideFlags: 0
@@ -1085,6 +1240,58 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &4822130063255898052
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7885863486269095429}
- component: {fileID: 6454613913359216246}
m_Layer: 5
m_Name: Text Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7885863486269095429
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4822130063255898052}
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:
- {fileID: 4892878595417430908}
- {fileID: 8492220857603050294}
m_Father: {fileID: 6778904394371952904}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &6454613913359216246
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4822130063255898052}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding: {x: -8, y: -5, z: -8, w: -5}
m_Softness: {x: 0, y: 0}
--- !u!1 &5039759906105514086
GameObject:
m_ObjectHideFlags: 0
@@ -1240,6 +1447,140 @@ MonoBehaviour:
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &5075166399957993773
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8492220857603050294}
- component: {fileID: 7038084651921081930}
- component: {fileID: 4535491906285797192}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8492220857603050294
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5075166399957993773}
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: 7885863486269095429}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7038084651921081930
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5075166399957993773}
m_CullTransparentMesh: 1
--- !u!114 &4535491906285797192
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5075166399957993773}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "10\u200B"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 24.15
m_fontSizeBase: 14
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &5255493423091640476
GameObject:
m_ObjectHideFlags: 0
@@ -1879,6 +2220,193 @@ MonoBehaviour:
m_isRichTextEditingAllowed: 0
m_LineLimit: 0
m_InputValidator: {fileID: 0}
--- !u!1 &7438547969889520482
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6778904394371952904}
- component: {fileID: 6333265433304185374}
- component: {fileID: 470526917540795348}
- component: {fileID: 7272205335194656113}
m_Layer: 5
m_Name: XDlset
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6778904394371952904
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7438547969889520482}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.65999997, y: 0.65999997, z: 0.65999997}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 7885863486269095429}
m_Father: {fileID: 5350326440702738651}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -163.08553, y: -1.7999878}
m_SizeDelta: {x: 74.5893, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6333265433304185374
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7438547969889520482}
m_CullTransparentMesh: 1
--- !u!114 &470526917540795348
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7438547969889520482}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &7272205335194656113
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7438547969889520482}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 470526917540795348}
m_TextViewport: {fileID: 7885863486269095429}
m_TextComponent: {fileID: 4535491906285797192}
m_Placeholder: {fileID: 1048046593752268357}
m_VerticalScrollbar: {fileID: 0}
m_VerticalScrollbarEventHandler: {fileID: 0}
m_LayoutGroup: {fileID: 0}
m_ScrollSensitivity: 1
m_ContentType: 2
m_InputType: 0
m_AsteriskChar: 42
m_KeyboardType: 4
m_LineType: 0
m_HideMobileInput: 0
m_HideSoftKeyboard: 0
m_CharacterValidation: 2
m_RegexValue:
m_GlobalPointSize: 13.52
m_CharacterLimit: 0
m_OnEndEdit:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 7258356208599686677}
m_TargetAssemblyTypeName: SampleWindow, Assembly-CSharp
m_MethodName: ChangeXWidth
m_Mode: 0
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_OnSubmit:
m_PersistentCalls:
m_Calls: []
m_OnSelect:
m_PersistentCalls:
m_Calls: []
m_OnDeselect:
m_PersistentCalls:
m_Calls: []
m_OnTextSelection:
m_PersistentCalls:
m_Calls: []
m_OnEndTextSelection:
m_PersistentCalls:
m_Calls: []
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
m_OnTouchScreenKeyboardStatusChanged:
m_PersistentCalls:
m_Calls: []
m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_CustomCaretColor: 0
m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
m_Text: 10
m_CaretBlinkRate: 0.85
m_CaretWidth: 1
m_ReadOnly: 0
m_RichText: 1
m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_OnFocusSelectAll: 1
m_ResetOnDeActivation: 1
m_RestoreOriginalTextOnEscape: 1
m_isRichTextEditingAllowed: 0
m_LineLimit: 0
m_InputValidator: {fileID: 0}
--- !u!1 &7480529898619466248
GameObject:
m_ObjectHideFlags: 0
@@ -2154,6 +2682,7 @@ RectTransform:
- {fileID: 4051171814187022942}
- {fileID: 1680283986877063858}
- {fileID: 258411808367658307}
- {fileID: 6778904394371952904}
m_Father: {fileID: 4803002250074383695}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -2459,8 +2988,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 300}
m_AnchoredPosition: {x: 0, y: 47}
m_SizeDelta: {x: 100, y: 394}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &7396740820777350136
MonoBehaviour:
@@ -2476,7 +3005,9 @@ MonoBehaviour:
m_EditorClassIdentifier:
dragArea: {fileID: 0}
dragObject: {fileID: 70126183804589383}
draggerRect: {fileID: 0}
topOnDrag: 1
Lock: 0
--- !u!114 &7258356208599686677
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -2501,6 +3032,7 @@ MonoBehaviour:
isFocus: 0
isExpand: 0
beatDeviver: 100
XWidth: 10
Xdevide: 1
realDevider: 0
beatLinePrefabv: {fileID: 2977211274865782059, guid: 7006cf01f592ed54593fb8a4f7fc5f97,
@@ -2509,10 +3041,10 @@ MonoBehaviour:
type: 3}
NotePrefab: {fileID: 8453727759659553036, guid: b56a53ecbd73dca4aa3152504b1ca92d,
type: 3}
secBeatLineh: {fileID: 0}
gameElement: {fileID: 0}
trackPositioner: {fileID: 0}
trackHead: {fileID: 8089137743710118797}
selectedGameObject: {fileID: 0}
--- !u!225 &777883499698626610
CanvasGroup:
m_ObjectHideFlags: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 16d2a78eca81ca84ebbd7ed9cb526b3e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,424 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &6819895460862130250
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4554840573411676723}
- component: {fileID: 7994738592504131340}
- component: {fileID: 3082149538595293410}
- component: {fileID: 5013297744322667706}
- component: {fileID: 5587375361200234056}
- component: {fileID: 8944372302054493042}
m_Layer: 0
m_Name: Point
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4554840573411676723
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6819895460862130250}
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!33 &7994738592504131340
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6819895460862130250}
m_Mesh: {fileID: 0}
--- !u!23 &3082149538595293410
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6819895460862130250}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 465ba4a268f5c4589a58ed35a13a75c4, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &5013297744322667706
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6819895460862130250}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 598e68924c9f6324bbfd049d3bae754c, type: 3}
m_Name:
m_EditorClassIdentifier:
editorDrawPivot: 1
editorPathColor: {r: 1, g: 1, b: 1, a: 1}
editorAlwaysDraw: 0
editorDrawThickness: 0
editorBillboardThickness: 1
isNewlyCreated: 0
editorUpdateMode: 0
multithreaded: 0
updateMode: 0
triggerGroups: []
_spline:
points:
- _type: 0
position: {x: 1.2521503, y: 0, z: 2.845747}
color: {r: 1, g: 1, b: 1, a: 1}
normal: {x: 0, y: 1, z: 0}
size: 1
tangent: {x: 1.2521503, y: 0, z: 2.845747}
tangent2: {x: 1.2521503, y: 0, z: 2.845747}
- _type: 0
position: {x: -0.5621309, y: 0, z: 17.44325}
color: {r: 1, g: 1, b: 1, a: 1}
normal: {x: 0, y: 1, z: 0}
size: 1
tangent: {x: -0.5621309, y: 0, z: 17.44325}
tangent2: {x: -0.5621309, y: 0, z: 17.44325}
type: 0
linearAverageDirection: 1
customValueInterpolation:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
customNormalInterpolation:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
sampleRate: 10
closed: 0
_knotParametrization: 0
_originalSamplePercents: []
_is2D: 0
hasSamples: 1
_optimizeAngleThreshold: 0.5
_space: 1
_sampleMode: 0
_subscribers:
- {fileID: 5587375361200234056}
- {fileID: 8944372302054493042}
_rawSamples:
- position: {x: 1.2521503, y: 0, z: 2.845747}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.12333812, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 0
- position: {x: 1.0505635, y: 0, z: 4.467692}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.12333812, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 0.1111111111111111
- position: {x: 0.84897673, y: 0, z: 6.089637}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.123338126, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 0.2222222222222222
- position: {x: 0.6473899, y: 0, z: 7.7115817}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.12333813, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 0.3333333333333333
- position: {x: 0.44580308, y: 0, z: 9.333527}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.123338126, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 0.4444444444444444
- position: {x: 0.24421617, y: 0, z: 10.955472}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.12333812, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 0.5555555555555556
- position: {x: 0.04262943, y: 0, z: 12.577417}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.12333813, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 0.6666666666666666
- position: {x: -0.15895744, y: 0, z: 14.199362}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.12333812, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 0.7777777777777778
- position: {x: -0.36054417, y: 0, z: 15.821307}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.12333811, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 0.8888888888888888
- position: {x: -0.5621309, y: 0, z: 17.44325}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.12333811, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 1
_nodes: []
--- !u!114 &5587375361200234056
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6819895460862130250}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bf69cfa06c48dba428c5c4d626d57ab7, type: 3}
m_Name:
m_EditorClassIdentifier:
updateMethod: 0
_spline: {fileID: 5013297744322667706}
_autoUpdate: 1
_rotationModifier:
blend: 1
useClippedPercent: 0
keys: []
_offsetModifier:
blend: 1
useClippedPercent: 0
keys:
- _featherStart: 0
_featherEnd: 1
_centerStart: 0
_centerEnd: 0.8999999761581421
interpolation:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 34
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 34
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
blend: 1
offset: {x: -4.97, y: 0}
_colorModifier:
blend: 1
useClippedPercent: 0
keys: []
_sizeModifier:
blend: 1
useClippedPercent: 0
keys: []
_clipFromSample:
position: {x: 1.2521503, y: 0, z: 2.845747}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.12333812, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 0
_clipToSample:
position: {x: -0.5621309, y: 0, z: 17.44325}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.12333811, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 1
_loopSamples: 0
_clipFrom: 0
_clipTo: 1
animClipFrom: 0
animClipTo: 1
multithreaded: 0
buildOnAwake: 1
buildOnEnable: 0
_baked: 0
_markDynamic: 1
_size: 1
_color: {r: 1, g: 1, b: 1, a: 1}
_offset: {x: 0, y: 0, z: 0}
_normalMethod: 1
_calculateTangents: 1
_useSplineSize: 1
_useSplineColor: 1
_rotation: 0
_flipFaces: 0
_doubleSided: 0
_uvMode: 0
_uvScale: {x: 1, y: 1}
_uvOffset: {x: 0, y: 0}
_uvRotation: 0
_meshIndexFormat: 0
_bakedMesh: {fileID: 0}
colliderUpdateRate: 0.2
autoOrient: 1
updateFrameInterval: 0
_slices: 1
--- !u!114 &8944372302054493042
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6819895460862130250}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bf69cfa06c48dba428c5c4d626d57ab7, type: 3}
m_Name:
m_EditorClassIdentifier:
updateMethod: 0
_spline: {fileID: 5013297744322667706}
_autoUpdate: 1
_rotationModifier:
blend: 1
useClippedPercent: 0
keys: []
_offsetModifier:
blend: 1
useClippedPercent: 0
keys:
- _featherStart: 0
_featherEnd: 1
_centerStart: 0.10000000149011612
_centerEnd: 0.8999999761581421
interpolation:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 34
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 34
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
blend: 1
offset: {x: 4.68, y: 0}
_colorModifier:
blend: 1
useClippedPercent: 0
keys: []
_sizeModifier:
blend: 1
useClippedPercent: 0
keys: []
_clipFromSample:
position: {x: 1.2521503, y: 0, z: 2.845747}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.12333812, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 0
_clipToSample:
position: {x: -0.5621309, y: 0, z: 17.44325}
up: {x: 0, y: 1, z: 0}
forward: {x: -0.12333811, y: 0, z: 0.9923647}
color: {r: 1, g: 1, b: 1, a: 1}
size: 1
percent: 1
_loopSamples: 0
_clipFrom: 0
_clipTo: 1
animClipFrom: 0
animClipTo: 1
multithreaded: 0
buildOnAwake: 1
buildOnEnable: 0
_baked: 0
_markDynamic: 1
_size: 1
_color: {r: 1, g: 1, b: 1, a: 1}
_offset: {x: 0, y: 0, z: 0}
_normalMethod: 1
_calculateTangents: 1
_useSplineSize: 1
_useSplineColor: 1
_rotation: 0
_flipFaces: 0
_doubleSided: 0
_uvMode: 0
_uvScale: {x: 0, y: 1}
_uvOffset: {x: 0, y: 0}
_uvRotation: 0
_meshIndexFormat: 0
_bakedMesh: {fileID: 0}
colliderUpdateRate: 0.2
autoOrient: 1
updateFrameInterval: 0
_slices: 1

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: bf20d9ebf0e3c5443921fa6e995e9eca
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -9,6 +9,7 @@ using TMPro;
using System.Reflection;
using System.Linq.Expressions;
using Sirenix.Utilities;
using System.Collections;
//又在写大粪 ——神币
namespace Ichni.Editor
@@ -268,7 +269,7 @@ namespace Ichni.Editor
.Reference(typeof(Vector3))
.Reference(typeof(Vector2));//这是AI给的东西
foreach (MethodInfo i in typeof(EditorConsoleMethods).GetMethods().
ToList().Where(i => i.IsStatic && i.IsPublic && i.ReturnType == typeof(void)))
ToList().Where(i => i.IsStatic && i.IsPublic && (i.ReturnType == typeof(void))))
{
var parameters = i.GetParameters().Select(p => p.ParameterType).ToArray();
var delegateType = Expression.GetDelegateType(parameters.Concat(new[] { i.ReturnType }).ToArray());

View File

@@ -229,26 +229,26 @@ namespace Ichni.Editor
switch (action)
{
case "Tap":
Tap a = Tap.GenerateElement("New Tap", Guid.NewGuid(), new List<string>(), false, findTrack(id), timestamp);
Tap a = Tap.GenerateElement("New Tap", Guid.NewGuid(), new List<string>(), true, findTrack(id), timestamp);
((TransformSubmodule)a.noteVisual.submoduleList.Where(i => i is TransformSubmodule)?.First()).originalPosition = new Vector3(value, 0, 0);
a.noteVisual.SetEditorSubmodules(); // 设置selset
a.Refresh();
break;
case "Stay":
Stay b = Stay.GenerateElement("New Stay", Guid.NewGuid(), new List<string>(), false, findTrack(id), timestamp);
Stay b = Stay.GenerateElement("New Stay", Guid.NewGuid(), new List<string>(), true, findTrack(id), timestamp);
((TransformSubmodule)b.noteVisual.submoduleList.Where(i => i is TransformSubmodule)?.First()).originalPosition = new Vector3(value, 0, 0);
b.noteVisual.SetEditorSubmodules(); // 设置selset
b.Refresh();
break;
case "Hold":
Hold c = Hold.GenerateElement("New Hold", Guid.NewGuid(), new List<string>(), false, findTrack(id), timestamp, timestamp + holdDuration);
Hold c = Hold.GenerateElement("New Hold", Guid.NewGuid(), new List<string>(), true, findTrack(id), timestamp, timestamp + holdDuration);
((TransformSubmodule)c.noteVisual.submoduleList.Where(i => i is TransformSubmodule)?.First()).originalPosition = new Vector3(value, 0, 0);
c.noteVisual.SetEditorSubmodules(); // 设置selset
c.Refresh();
break;
case "Flick":
Flick d = Flick.GenerateElement("New Flick", Guid.NewGuid(), new List<string>(), false, findTrack(id), timestamp, new List<Vector2>());
Flick d = Flick.GenerateElement("New Flick", Guid.NewGuid(), new List<string>(), true, findTrack(id), timestamp, new List<Vector2>());
((TransformSubmodule)d.noteVisual.submoduleList.Where(i => i is TransformSubmodule)?.First()).originalPosition = new Vector3(value, 0, 0);
d.noteVisual.SetEditorSubmodules(); // 设置selset
d.Refresh();
@@ -398,5 +398,61 @@ namespace Ichni.Editor
anim.startValue = -anim.startValue;
}
}
public static void AttachNoteInNearestTrail()
{
Track track = inspector.connectedGameElement as Track;
if (track == null)
{
LogWindow.Log("Please select a Track first!", Color.red);
return;
}
List<NoteBase> noteBases = track.childElementList.OfType<NoteBase>().ToList();
List<IHaveTrail> trails = track.GetAllGameElementsFromThis().OfType<IHaveTrail>().ToList();
if (trails.Count == 0)
{
LogWindow.Log("The Track has no Trail!", Color.red);
return;
}
foreach (var note in noteBases)
{
IHaveTrail nearestTrail = null;
Vector3 FinalPos = Vector3.positiveInfinity;
foreach (var trail in trails)
{
if (trail is IHaveTransformSubmodule haveTransform && trail is GameElement gameElement)
{
Vector3 pos = haveTransform.transformSubmodule.originalPosition;
GameElement gameElement1 = gameElement;
while (gameElement1 != track)
{
if (gameElement1 is not IHaveTransformSubmodule)
{
gameElement1 = gameElement1.parentElement;
continue;
}
List<Displacement> animationBases = gameElement1.childElementList.OfType<Displacement>().ToList();
foreach (var displacement in animationBases)
{
pos += displacement.getValue(note.exactJudgeTime);
}
gameElement1 = gameElement1.parentElement;
}
if (Vector3.Distance(pos, (note.noteVisual.submoduleList.First(i => i is TransformSubmodule) as TransformSubmodule).originalPosition) <=
Vector3.Distance(FinalPos, (note.noteVisual.submoduleList.First(i => i is TransformSubmodule) as TransformSubmodule).originalPosition))
{
nearestTrail = trail;
FinalPos = pos;
}
}
}
if (nearestTrail != null)
{
(note.noteVisual.submoduleList.First(i => i is TransformSubmodule) as TransformSubmodule).originalPosition = FinalPos;
note.Refresh();
(note.noteVisual.submoduleList.First(i => i is TransformSubmodule) as TransformSubmodule).Refresh();//捏妈妈滴为什么notevisual的TransformSubmodule不刷新
}
}
}
}
}

View File

@@ -16,6 +16,7 @@ namespace Ichni.Editor
public Button addFolderButton;
public List<HierarchyTab> tabList;
public Button expandButtom;
public bool NeedExecute = false;
private void Awake()
{
tabList = new List<HierarchyTab>();
@@ -158,8 +159,6 @@ namespace Ichni.Editor
}
void getTabPos(HierarchyTab finalTab)
{
// 修正定位算法
RectTransform tabRect = finalTab.GetComponent<RectTransform>();
@@ -185,5 +184,21 @@ namespace Ichni.Editor
finalTab.SelectGameElement();
}
public GameElement upLoadElement = null;
public IEnumerator TryGetElement()
{
NeedExecute = true;
// 等待直到upLoadElement被赋值
if (upLoadElement == null)
{
yield return new WaitUntil(() => upLoadElement != null);
}
NeedExecute = false;
upLoadElement = null;
}
}
}

View File

@@ -102,6 +102,17 @@ namespace Ichni.Editor
return c;
}
public void ExecuteOrSelect()
{
if (EditorManager.instance.uiManager.hierarchy.NeedExecute)
{
EditorManager.instance.uiManager.hierarchy.upLoadElement = connectedGameElement;
}
else
{
SelectGameElement();
}
}
public void SelectGameElement()
{

View File

@@ -43,7 +43,10 @@ namespace Ichni.RhythmGame
UpdateAnimation(EditorManager.instance.songInformation.songTime);
}
}
public virtual Vector3 getValue(float time)
{
return Vector3.zero;
}
/// <summary>
/// 施加时间偏移即移动所有Flexible参数的时间
/// </summary>

View File

@@ -66,7 +66,13 @@ namespace Ichni.RhythmGame
animationReturnType = FlexibleReturnType.MiddleInterval;
}
}
public override Vector3 getValue(float time)
{
float x = positionX.GetValue(time);
float y = positionY.GetValue(time);
float z = positionZ.GetValue(time);
return new Vector3(x, y, z);
}
public override void ApplyTimeOffset(float offset)
{
base.ApplyTimeOffset(offset);

View File

@@ -66,7 +66,13 @@ namespace Ichni.RhythmGame
animationReturnType = FlexibleReturnType.MiddleInterval;
}
}
public override Vector3 getValue(float time)
{
float x = scaleX.GetValue(time);
float y = scaleY.GetValue(time);
float z = scaleZ.GetValue(time);
return new Vector3(x, y, z);
}
public override void ApplyTimeOffset(float offset)
{
base.ApplyTimeOffset(offset);

View File

@@ -65,7 +65,13 @@ namespace Ichni.RhythmGame
animationReturnType = FlexibleReturnType.MiddleInterval;
}
}
public override Vector3 getValue(float time)
{
float x = eulerAngleX.GetValue(time);
float y = eulerAngleY.GetValue(time);
float z = eulerAngleZ.GetValue(time);
return new Vector3(x, y, z);
}
public override void ApplyTimeOffset(float offset)
{
base.ApplyTimeOffset(offset);

View File

@@ -184,7 +184,13 @@ namespace Ichni.RhythmGame
currentAnimationIndex = 0;
return;
}
public float GetValue(float songtime)
{
UpdateFlexibleFloat(songtime);
float a = value;
UpdateFlexibleFloat(EditorManager.instance.songInformation.songTime);
return a;
}
/// <summary>
/// 转换为Beatmap存档类型
/// </summary>

View File

@@ -20,13 +20,9 @@ namespace Ichni.RhythmGame
{
Flick flick = Instantiate(EditorManager.instance.basePrefabs.flickNote, parentElement.transform)
.GetComponent<Flick>();
if (EditorManager.instance.useNotePrefab)
{
isFirstGenerated = false;
}
flick.Initialize(elementName, id, tags, isFirstGenerated, parentElement);
flick.Initialize(elementName, id, tags, EditorManager.instance.useNotePrefab ? false : isFirstGenerated, parentElement);
flick.exactJudgeTime = exactJudgeTime;
flick.availableFlickDirections = directions;
@@ -50,10 +46,10 @@ namespace Ichni.RhythmGame
flick.track = null;
flick.isOnTrack = false;
}
if (EditorManager.instance.useNotePrefab)
if (EditorManager.instance.useNotePrefab && isFirstGenerated)
{
EditorManager.instance.projectManager.notePrefabManager.LoadNotePrefab(flick,GetNoteTypeName(flick) + "_Prefab");
EditorManager.instance.projectManager.notePrefabManager.LoadNotePrefab(flick, GetNoteTypeName(flick) + "_Prefab");
}
return flick;
@@ -65,19 +61,19 @@ namespace Ichni.RhythmGame
public override void SetDefaultSubmodules()
{
base.SetDefaultSubmodules();
noteAudioSubmodule = new NoteAudioSubmodule(this, "DefaultStay");
noteAudioSubmodule ??= new NoteAudioSubmodule(this, "DefaultStay");
}
public override void SaveBM()
{
matchedBM = new Flick_BM(elementName, elementGuid, tags, parentElement.matchedBM as GameElement_BM,
matchedBM = new Flick_BM(elementName, elementGuid, tags, parentElement.matchedBM as GameElement_BM,
exactJudgeTime, availableFlickDirections);
}
public override void SetUpInspector()
{
base.SetUpInspector();
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var flickSpecial = inspector.GenerateContainer("Flick Special");
@@ -117,7 +113,7 @@ namespace Ichni.RhythmGame
public override GameElement DuplicateBM(GameElement parent)
{
return Flick.GenerateElement(elementName, Guid.NewGuid(), tags, false, parent,
return Flick.GenerateElement(elementName, Guid.NewGuid(), tags, false, parent,
exactJudgeTime, availableFlickDirections);
}
}

View File

@@ -26,12 +26,9 @@ namespace Ichni.RhythmGame
Hold hold = Instantiate(EditorManager.instance.basePrefabs.holdNote, parentElement.transform)
.GetComponent<Hold>();
if (EditorManager.instance.useNotePrefab)
{
isFirstGenerated = false;
}
hold.Initialize(elementName, id, tags, isFirstGenerated, parentElement);
hold.Initialize(elementName, id, tags, EditorManager.instance.useNotePrefab ? false : isFirstGenerated, parentElement);
hold.exactJudgeTime = exactJudgeTime;
hold.holdEndTime = holdEndTime;
hold.holdingTime = 0;
@@ -58,7 +55,7 @@ namespace Ichni.RhythmGame
hold.isOnTrack = false;
}
if (EditorManager.instance.useNotePrefab)
if (EditorManager.instance.useNotePrefab && isFirstGenerated)
{
EditorManager.instance.projectManager.notePrefabManager.LoadNotePrefab(hold, GetNoteTypeName(hold) + "_Prefab");
}
@@ -97,7 +94,7 @@ namespace Ichni.RhythmGame
public override void SetDefaultSubmodules()
{
base.SetDefaultSubmodules();
noteAudioSubmodule = new NoteAudioSubmodule(this, "DefaultTap");
noteAudioSubmodule ??= new NoteAudioSubmodule(this, "DefaultTap");
}
public override void SaveBM()
@@ -138,13 +135,13 @@ namespace Ichni.RhythmGame
{
if (Keyboard.current.hKey.wasPressedThisFrame)
{
foreach (KeyValuePair<string,List<EffectBase>> effect in noteVisual.effectSubmodule.effectCollection)
foreach (KeyValuePair<string, List<EffectBase>> effect in noteVisual.effectSubmodule.effectCollection)
{
effect.Value.ForEach(x => x.Disrupt());
}
}
if (holdEndTime < exactJudgeTime)
{
LogWindow.Log("Hold end time is earlier than exact judge time.", Color.red);
@@ -206,7 +203,7 @@ namespace Ichni.RhythmGame
noteVisual.effectSubmodule.effectCollection["StartHold"].ForEach(e => e.UpdateEffect(exactJudgeTime));
noteVisual.effectSubmodule.effectCollection["Holding"].ForEach(e => e.UpdateEffect(exactJudgeTime));
noteVisual.effectSubmodule.effectCollection["GeneralJudge"].ForEach(e => e.UpdateEffect(holdEndTime));
switch (EditorManager.instance.currentJudgeType)
{
@@ -223,7 +220,7 @@ namespace Ichni.RhythmGame
noteVisual.effectSubmodule.effectCollection["Miss"].ForEach(e => e.UpdateEffect(holdEndTime));
break;
}
noteVisual.effectSubmodule.effectCollection["AfterJudge"].ForEach(e => e.UpdateEffect(holdEndTime));
if (EditorManager.instance.cameraManager.haveGameCamera)

View File

@@ -61,8 +61,8 @@ namespace Ichni.RhythmGame
public override void SetDefaultSubmodules()
{
timeDurationSubmodule = new TimeDurationSubmodule(this);
noteJudgeSubmodule = new NoteJudgeSubmodule(this);
timeDurationSubmodule ??= new TimeDurationSubmodule(this);
noteJudgeSubmodule ??= new NoteJudgeSubmodule(this);
}
public override void Refresh()
{
@@ -74,6 +74,8 @@ namespace Ichni.RhythmGame
{
noteVisual.Refresh();
}
foreach (SampleWindow i in SampleWindow.instances.Where(i => i.gameElement)) i.OnceSpawnNote();
}
protected virtual void Update()
{

View File

@@ -16,15 +16,12 @@ namespace Ichni.RhythmGame
GameElement parentElement, float exactJudgeTime)
{
Stay stay = Instantiate(EditorManager.instance.basePrefabs.stayNote, parentElement.transform).GetComponent<Stay>();
if (EditorManager.instance.useNotePrefab)
{
isFirstGenerated = false;
}
stay.Initialize(elementName, id, tags, isFirstGenerated, parentElement);
stay.Initialize(elementName, id, tags, EditorManager.instance.useNotePrefab ? false : isFirstGenerated, parentElement);
stay.exactJudgeTime = exactJudgeTime;
if (parentElement.TryGetComponent(out Track track))
{
if (track.trackTimeSubmodule != null)
@@ -45,22 +42,22 @@ namespace Ichni.RhythmGame
stay.track = null;
stay.isOnTrack = false;
}
if (EditorManager.instance.useNotePrefab)
if (EditorManager.instance.useNotePrefab && isFirstGenerated)
{
EditorManager.instance.projectManager.notePrefabManager.LoadNotePrefab(stay,GetNoteTypeName(stay) + "_Prefab");
EditorManager.instance.projectManager.notePrefabManager.LoadNotePrefab(stay, GetNoteTypeName(stay) + "_Prefab");
}
return stay;
}
}
public partial class Stay
{
public override void SetDefaultSubmodules()
{
base.SetDefaultSubmodules();
noteAudioSubmodule = new NoteAudioSubmodule(this, "DefaultStay");
noteAudioSubmodule ??= new NoteAudioSubmodule(this, "DefaultStay");
}
public override void SaveBM()
@@ -68,25 +65,25 @@ namespace Ichni.RhythmGame
matchedBM = new Stay_BM(elementName, elementGuid, tags, parentElement.matchedBM as GameElement_BM, exactJudgeTime);
}
}
namespace Beatmap
{
public class Stay_BM : NoteBase_BM
{
public Stay_BM()
{
}
public Stay_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM attachedElement, float exactJudgeTime)
public Stay_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM attachedElement, float exactJudgeTime)
: base(elementName, elementGuid, tags, attachedElement, exactJudgeTime)
{
}
public override void ExecuteBM()
{
matchedElement = Stay.GenerateElement(elementName, elementGuid, tags, false,
matchedElement = Stay.GenerateElement(elementName, elementGuid, tags, false,
GetElement(attachedElementGuid), exactJudgeTime);
}

View File

@@ -17,13 +17,8 @@ namespace Ichni.RhythmGame
{
Tap tap = Instantiate(EditorManager.instance.basePrefabs.tapNote, parentElement.transform)
.GetComponent<Tap>();
if (EditorManager.instance.useNotePrefab)
{
isFirstGenerated = false;
}
tap.Initialize(elementName, id, tags, isFirstGenerated, parentElement);
tap.Initialize(elementName, id, tags, EditorManager.instance.useNotePrefab ? false : isFirstGenerated, parentElement);
tap.exactJudgeTime = exactJudgeTime;
if (parentElement.TryGetComponent(out Track track))
@@ -46,10 +41,10 @@ namespace Ichni.RhythmGame
tap.track = null;
tap.isOnTrack = false;
}
if (EditorManager.instance.useNotePrefab)
if (EditorManager.instance.useNotePrefab && isFirstGenerated)
{
EditorManager.instance.projectManager.notePrefabManager.LoadNotePrefab(tap,GetNoteTypeName(tap) + "_Prefab");
EditorManager.instance.projectManager.notePrefabManager.LoadNotePrefab(tap, GetNoteTypeName(tap) + "_Prefab");
}
return tap;
@@ -61,7 +56,7 @@ namespace Ichni.RhythmGame
public override void SetDefaultSubmodules()
{
base.SetDefaultSubmodules();
noteAudioSubmodule = new NoteAudioSubmodule(this, "DefaultTap");
noteAudioSubmodule ??= new NoteAudioSubmodule(this, "DefaultTap");
}
public override void SaveBM()

View File

@@ -8,6 +8,7 @@ namespace Ichni.RhythmGame
{
public partial class Track
{
public TrackNoteEditor trackNoteEditor;
/// <summary>
/// 快速复制粘贴Track
/// </summary>
@@ -86,7 +87,7 @@ namespace Ichni.RhythmGame
pn.transformSubmodule.Refresh();
});
}
/// <summary>
/// Track整体旋转
/// </summary>
@@ -100,7 +101,7 @@ namespace Ichni.RhythmGame
LogWindow.Log("Axis direction cannot be zero!", Color.red);
return;
}
trackPathSubmodule.pathNodeList.ForEach(pn =>
{
Vector3 originalPosition = pn.transformSubmodule.originalPosition;
@@ -109,7 +110,7 @@ namespace Ichni.RhythmGame
pn.transformSubmodule.Refresh();
});
}
/// <summary>
/// Track整体翻转
/// </summary>
@@ -125,7 +126,7 @@ namespace Ichni.RhythmGame
pn.transformSubmodule.Refresh();
});
}
/// <summary>
/// 仅开启起点和终点的PathNode的Sphere显示中间的PathNode不显示
/// </summary>
@@ -136,7 +137,7 @@ namespace Ichni.RhythmGame
LogWindow.Log("PathNode amount is less than 2!", Color.red);
return;
}
trackPathSubmodule.pathNodeList[0].SetPathNodeSphere(true);
trackPathSubmodule.pathNodeList[^1].SetPathNodeSphere(true);
for (int i = 1; i < trackPathSubmodule.pathNodeList.Count - 1; i++)

View File

@@ -2,18 +2,21 @@ using System.Collections;
using System.Collections.Generic;
using Ichni;
using Ichni.RhythmGame;
using Michsky.MUIP;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.UI;
public class NotefabContoler : MonoBehaviour
{
public SampleWindow sampleWindow;
public NoteBase noteBase;
public RawImage ifHold;
public void Initialize(NoteBase note, float timePerBeat, int beatDeviver)
public void Initialize(NoteBase note, float timePerBeat, int beatDeviver, float posX)
{
noteBase = note;
Image color = GetComponent<Image>();
transform.localPosition = new Vector3(0, note.exactJudgeTime / timePerBeat * beatDeviver, 0);
transform.localPosition = new Vector3(posX, note.exactJudgeTime / timePerBeat * beatDeviver, 0);
switch (note)
{
case Hold hold:
@@ -36,9 +39,42 @@ public class NotefabContoler : MonoBehaviour
color.color = new Color(1, 0.2f, 0, 1);
break;
}
}
public void Onclick()
public void Update()
{
EditorManager.instance.uiManager.hierarchy.FindTab(noteBase);
if (RectTransformUtility.RectangleContainsScreenPoint(this.GetComponent<RectTransform>(), Mouse.current.position.ReadValue()))
{
if (Mouse.current.leftButton.wasPressedThisFrame)
{
StartCoroutine(Moving());
if (EditorManager.instance.uiManager.inspector.connectedGameElement != noteBase) EditorManager.instance.uiManager.hierarchy.FindTab(noteBase);
}
}
}
public IEnumerator Moving()
{
sampleWindow.GetComponent<WindowDragger>().Lock = true;
float startX = transform.localPosition.x;
while (Mouse.current.leftButton.isPressed)
{
Vector2 localMousePosition = GetComponent<RectTransform>().InverseTransformPoint(Mouse.current.position.ReadValue());
// if (Mathf.Abs(localMousePosition.x - startX) > GetComponent<RectTransform>().sizeDelta.x / 2)
{
transform.localPosition += new Vector3(Mouse.current.delta.ReadValue().x, 0, 0);
}
yield return null;
}
noteBase.noteVisual.transformSubmodule.originalPosition = new Vector3(
transform.localPosition.x / sampleWindow.XWidth,
noteBase.noteVisual.transformSubmodule.originalPosition.y,
noteBase.noteVisual.transformSubmodule.originalPosition.z
);
noteBase.noteVisual.transformSubmodule.Refresh();
sampleWindow.GetComponent<WindowDragger>().Lock = false;
}
}

View File

@@ -14,7 +14,7 @@ using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
using UnityEngine.UI;
public class SampleWindow : MovableWindow//该window高度为300横的要在100和500之间切换
public class SampleWindow : MovableWindow//该window高度为300横的要XWidth0和500之间切换
{
public static List<SampleWindow> instances = new List<SampleWindow>();
public TMP_InputField DeviverInputField;
@@ -27,6 +27,7 @@ public class SampleWindow : MovableWindow//该window高度为300横的要在1
public bool isFocus = false;
public bool isExpand = false;
public int beatDeviver = 100;
public int XWidth = 10;
public int Xdevide = 1;
public float realDevider;
public GameObject beatLinePrefabv;
@@ -88,7 +89,7 @@ public class SampleWindow : MovableWindow//该window高度为300横的要在1
v.transform.localPosition = new Vector3(0, i * beatDeviver + (beatDeviver / Xdevide * j), 0);
RawImage g = v.GetComponent<RawImage>();
g.color = new Color(0, g.color.g, g.color.b, 0.2f);
if (v.transform.localPosition.y > 600)
if (v.transform.localPosition.y > 1200)
{
Destroy(v);
break;
@@ -117,13 +118,14 @@ public class SampleWindow : MovableWindow//该window高度为300横的要在1
}
foreach (var i in noteBases)
{
SpawnNote(i);
SpawnNote(i, i.noteVisual.transformSubmodule.originalPosition.x * XWidth);
}
}
private void SpawnNote(NoteBase i, float posx = 0)
{
GameObject u = Instantiate(NotePrefab, NoteMovepoint);
u.GetComponent<NotefabContoler>().Initialize(i, timePerBeat, beatDeviver);
u.GetComponent<NotefabContoler>().Initialize(i, timePerBeat, beatDeviver, posx);
u.GetComponent<NotefabContoler>().sampleWindow = this;
}
public GameObject selectedGameObject;
@@ -132,6 +134,16 @@ public class SampleWindow : MovableWindow//该window高度为300横的要在1
selectedGameObject = EventSystem.current.currentSelectedGameObject;
LineMovepoint.localPosition = new(0, -beatDeviver * (songBeat - (int)songBeat), 0);
NoteMovepoint.localPosition = new(0, -beatDeviver * songBeat, 0);
if (RectTransformUtility.RectangleContainsScreenPoint(windowRect, Mouse.current.position.ReadValue()))
{
DetectNote();
}
}
void LateUpdate()
{
if (isFocus && gameElement is Track track)
{
if (track.trackTimeSubmodule is TrackTimeSubmoduleMovable trackTimeSubmoduleMovable)
@@ -147,12 +159,6 @@ public class SampleWindow : MovableWindow//该window高度为300横的要在1
TransformChanged();
windowRect.GetComponent<CanvasGroup>().alpha = track.timeDurationSubmodule.CheckTimeInDuration(songTime) ? 1f : 0.2f;
}
if (RectTransformUtility.RectangleContainsScreenPoint(windowRect, Mouse.current.position.ReadValue()))
{
DetectNote();
}
}
void TransformChanged()
{
@@ -193,6 +199,11 @@ public class SampleWindow : MovableWindow//该window高度为300横的要在1
windowRect.sizeDelta = new Vector2(500, windowRect.sizeDelta.y);
}
}
public void ChangeXWidth(string change)
{
XWidth = int.Parse(change);
OnceSpawnNote();
}
public void DetectNote()
{
if (Keyboard.current.digit1Key.wasPressedThisFrame)
@@ -206,6 +217,11 @@ public class SampleWindow : MovableWindow//该window高度为300横的要在1
}
public void AddNote(int NoteCode)
{
if (!EditorManager.instance.useNotePrefab)
{
LogWindow.Log("Please enable \"Note Prefab\" in EditorManager", Color.red);
return;
}
// 获取鼠标在 NoteMovepoint 中的相对位置
Vector2 localMousePosition = NoteMovepoint.InverseTransformPoint(Mouse.current.position.ReadValue());
Debug.Log(localMousePosition);
@@ -218,32 +234,41 @@ public class SampleWindow : MovableWindow//该window高度为300横的要在1
far -= 1f / Xdevide;
float time = far * timePerBeat;
if (!isExpand)//movable
;
switch (NoteCode)
{
switch (NoteCode)
{
case 0:
Tap a = Tap.GenerateElement("New Tap", Guid.NewGuid(), new List<string>(), false, gameElement, time);
noteBases.Add(a);
SpawnNote(a);
break;
case 3:
Hold b = Hold.GenerateElement("New Hold", Guid.NewGuid(), new List<string>(), false, gameElement, time, time + 0.5f);
noteBases.Add(b);
SpawnNote(b);
break;
case 1:
Stay c = Stay.GenerateElement("New Stay", Guid.NewGuid(), new List<string>(), false, gameElement, time);
noteBases.Add(c);
SpawnNote(c);
break;
case 2:
Flick d = Flick.GenerateElement("New Flick", Guid.NewGuid(), new List<string>(), false, gameElement, time, new List<Vector2>());
noteBases.Add(d);
SpawnNote(d);
break;
}
case 0:
Tap a = Tap.GenerateElement("New Tap", Guid.NewGuid(), new List<string>(), true, gameElement, time);
noteBases.Add(a);
a.noteVisual.transformSubmodule.originalPosition = new Vector3(localMousePosition.x / XWidth, 0f, 0f);
a.noteVisual.transformSubmodule.Refresh();
SpawnNote(a, isExpand ? localMousePosition.x : 0f);
break;
case 3:
Hold b = Hold.GenerateElement("New Hold", Guid.NewGuid(), new List<string>(), true, gameElement, time, time + 0.5f);
noteBases.Add(b);
b.noteVisual.transformSubmodule.originalPosition = new Vector3(localMousePosition.x / XWidth, 0f, 0f);
b.noteVisual.transformSubmodule.Refresh();
SpawnNote(b, isExpand ? localMousePosition.x : 0f);
break;
case 1:
Stay c = Stay.GenerateElement("New Stay", Guid.NewGuid(), new List<string>(), true, gameElement, time);
noteBases.Add(c);
c.noteVisual.transformSubmodule.originalPosition = new Vector3(localMousePosition.x / XWidth, 0f, 0f);
c.noteVisual.transformSubmodule.Refresh();
SpawnNote(c, isExpand ? localMousePosition.x : 0f);
break;
case 2:
Flick d = Flick.GenerateElement("New Flick", Guid.NewGuid(), new List<string>(), true, gameElement, time, new List<Vector2>());
noteBases.Add(d);
d.noteVisual.transformSubmodule.originalPosition = new Vector3(localMousePosition.x / XWidth, 0f, 0f);
d.noteVisual.transformSubmodule.Refresh();
SpawnNote(d, isExpand ? localMousePosition.x : 0f);
break;
default:
break;
}
}
}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f613492402ff5f2449535cf8161474ef
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,28 @@
using System.Collections;
using System.Collections.Generic;
using Dreamteck.Splines;
using Ichni.RhythmGame;
using Unity.VisualScripting;
using UnityEngine;
public class TrackNoteEditor : MonoBehaviour
{
public SplineRenderer splineRenderer;
public SplineComputer splineComputer;
public int BeatDevider = 4; // 节拍分割数
public Track Track;
public void Initialize(Track track)
{
Track = track;
Track.trackNoteEditor = this;
// 初始化其他相关组件或数据
UnityEditorInternal.ComponentUtility.CopyComponent(Track.trackPathSubmodule.path);
UnityEditorInternal.ComponentUtility.PasteComponentAsNew(gameObject);
splineComputer = GetComponent<SplineComputer>();
if (Track.trackTimeSubmodule is TrackTimeSubmoduleMovable movable)
{
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c643f60e3c1d85543a8835265334bd58
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -209,12 +209,12 @@ namespace Ichni
LogWindow.Log("Save Clip Complete", Color.green);
}
public void LoadClip(string clipName)
{
LogWindow.Log("Start Loading Clip...");
if(!ES3.FileExists(Application.streamingAssetsPath + "/Clips/" + clipName + ".json"))
if (!ES3.FileExists(Application.streamingAssetsPath + "/Clips/" + clipName + ".json"))
{
LogWindow.Log("Clip not found", Color.red);
return;
@@ -225,16 +225,16 @@ namespace Ichni
LogWindow.Log("Please select only one Game Element to load the beatmap clip.", Color.red);
return;
}
GameElement selectedElement = EditorManager.instance.operationManager.currentSelectedElements[0];
if (selectedElement is null)
{
LogWindow.Log("Please select a Game Element to load the beatmap clip.", Color.red);
return;
}
Debug.Log(selectedElement.elementName + " " + selectedElement.elementGuid);
_LoadClip(selectedElement, clipName);
LogWindow.Log("Load Clip Complete", Color.green);
@@ -263,18 +263,18 @@ namespace Ichni
{
string filePath = Application.streamingAssetsPath + "/Clips/" + clipName + ".json";
List<BaseElement_BM> clip = ES3.Load<List<BaseElement_BM>>("Clip", filePath, ProjectManager.SaveSettings);
//对于第一个元素,需要特殊处理,将它放入目标物体的子物体列表中
GameElement_BM first = clip[0] as GameElement_BM;
List<BaseElement_BM> firstAttaches = GameElement_BM.GetAllAttachedBaseElements(first, clip);
first.elementGuid = Guid.NewGuid();
GameElement_BM.identifier.TryAdd(first.elementGuid, first);
firstAttaches.ForEach(e => { e.attachedElementGuid = first.elementGuid; });
//将目标物体临时存入读存档的Dictionary中
target.SaveBM();
GameElement_BM.identifier.TryAdd(target.elementGuid, target.matchedBM as GameElement_BM);
(target.matchedBM as GameElement_BM).matchedElement = target;
(target.matchedBM as GameElement_BM).matchedElement = target;
first.attachedElementGuid = target.elementGuid;
for (var index = 1; index < clip.Count; index++)
@@ -290,7 +290,7 @@ namespace Ichni
}
first.ExecuteBM();
for (var index = 1; index < clip.Count; index++)
{
clip[index].ExecuteBM();
@@ -304,7 +304,7 @@ namespace Ichni
{
string mergePath = Application.streamingAssetsPath + "/Merges/" + mergeName + ".json";
BeatmapContainer_BM merge = ES3.Load<BeatmapContainer_BM>("Beatmap", mergePath, ProjectManager.SaveSettings);
merge.elementList.ForEach(element =>
{
if (element == null)
@@ -312,12 +312,12 @@ namespace Ichni
Debug.LogError("Null element detected in elementList. Skipping execution.");
return;
}
if (BeatmapContainer_BM.LowPriorityGameElementTypes.Contains(element.GetType()))
{
return;
}
if (element is GameElement_BM gameElement)
{
GameElement_BM.identifier.Add(gameElement.elementGuid, gameElement);
@@ -371,12 +371,16 @@ namespace Ichni
}
});
});
ES3.Save("Note", clip, GetNotePrefabPath(noteName), ProjectManager.SaveSettings);
}
public void LoadNotePrefab(NoteBase target, string noteName)
{
if (target.noteVisual != null)
{
return;
}
List<BaseElement_BM> clip = ES3.Load<List<BaseElement_BM>>("Note", GetNotePrefabPath(noteName), ProjectManager.SaveSettings);
if (clip == null || clip.Count == 0)
@@ -384,17 +388,17 @@ namespace Ichni
LogWindow.Log("Note prefab not found", Color.red);
return;
}
target.SaveBM();
GameElement_BM.identifier.TryAdd(target.elementGuid, target.matchedBM as GameElement_BM);
(target.matchedBM as GameElement_BM).matchedElement = target;
(target.matchedBM as GameElement_BM).matchedElement = target;
GameElement_BM first = clip[0] as GameElement_BM;
List<BaseElement_BM> firstAttaches = GameElement_BM.GetAllAttachedBaseElements(first, clip);
first.elementGuid = target.elementGuid;
GameElement_BM.identifier.TryAdd(first.elementGuid, first);
firstAttaches.ForEach(e => { e.attachedElementGuid = first.elementGuid; });
for (var index = 1; index < clip.Count; index++)
{
var element = clip[index];
@@ -406,11 +410,12 @@ namespace Ichni
attachedElements.ForEach(e => { e.attachedElementGuid = gameElement.elementGuid; });
}
}
for (var index = 1; index < clip.Count; index++)
{
clip[index].ExecuteBM();
}
target.SetDefaultSubmodules();
}
}
@@ -421,7 +426,7 @@ namespace Ichni
private string GetAutoSavePath(string autoSaveName) => autoSavePath + "/" + autoSaveName + ".json";
private float autoSaveInterval => EditorManager.instance.editorSettings.autoSaveInterval;
private int maximumAutoSaveCount => EditorManager.instance.editorSettings.maximumAutoSaveCount;
public float autoSaveTimer;
public AutoSaveManager()
@@ -466,21 +471,21 @@ namespace Ichni
string newestSavePath = GetAutoSavePath("AutoSave_0");
SaveBeatMap(newestSavePath);
}
private void SaveBeatMap(string autoSavePath)
{
EditorManager.instance.beatmapContainer.SaveBM();
ES3.Save("BeatMap", EditorManager.instance.beatmapContainer.matchedBM as BeatmapContainer_BM,
autoSavePath, ProjectManager.SaveSettings);
}
private List<string> GetSortedSaveFiles()
{
if(!ES3.DirectoryExists(autoSavePath))
if (!ES3.DirectoryExists(autoSavePath))
{
Directory.CreateDirectory(autoSavePath);
}
List<string> saveFiles = new List<string>(Directory.GetFiles(autoSavePath, "AutoSave_*.es3"));
saveFiles.Sort(string.Compare);
return saveFiles;

View File

@@ -12310,7 +12310,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 5,
"x" : 4.378951,
"y" : 0,
"z" : 0
},
@@ -13258,7 +13258,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 5,
"x" : 5.99926329,
"y" : 0,
"z" : 0
},
@@ -13574,7 +13574,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -5,
"x" : -5.99926329,
"y" : 0,
"z" : 0
},
@@ -13890,7 +13890,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 5,
"x" : 4.00881767,
"y" : 0,
"z" : 0
},
@@ -14206,7 +14206,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -4.11,
"x" : -4,
"y" : 0,
"z" : 0
},
@@ -14364,7 +14364,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 2.37,
"x" : 2.26446,
"y" : 0,
"z" : 0
},
@@ -14522,7 +14522,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -0.42,
"x" : -0.5,
"y" : 0,
"z" : 0
},
@@ -14680,7 +14680,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 2.85,
"x" : 2.9133327,
"y" : 0,
"z" : 0
},
@@ -14838,7 +14838,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -3.18,
"x" : -2.74635458,
"y" : 0,
"z" : 0
},
@@ -14996,7 +14996,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 0.21,
"x" : 0.3720467,
"y" : 0,
"z" : 0
},
@@ -16260,7 +16260,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 5,
"x" : 7.990377,
"y" : 0,
"z" : 0
},
@@ -16892,7 +16892,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 5,
"x" : 7.99405527,
"y" : 0,
"z" : 0
},
@@ -17050,7 +17050,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -2.85,
"x" : -3,
"y" : 0,
"z" : 0
},
@@ -17208,7 +17208,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 3.18,
"x" : 3.001474,
"y" : 0,
"z" : 0
},
@@ -17524,7 +17524,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -5,
"x" : -4.995736,
"y" : 0,
"z" : 0
},
@@ -18156,7 +18156,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 5,
"x" : 5.04748249,
"y" : 0,
"z" : 0
},
@@ -18314,7 +18314,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 5,
"x" : 4.996703,
"y" : 0,
"z" : 0
},
@@ -19578,7 +19578,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -0.42,
"x" : -0.492874235,
"y" : 0,
"z" : 0
},
@@ -21474,7 +21474,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 5,
"x" : 4.98616266,
"y" : 0,
"z" : 0
},
@@ -21790,7 +21790,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 2.5,
"x" : 2.51191378,
"y" : 0,
"z" : 0
},
@@ -22106,7 +22106,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 5,
"x" : 4.97967339,
"y" : 0,
"z" : 0
},
@@ -23686,7 +23686,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -1,
"x" : -1.00714266,
"y" : 0,
"z" : 0
},
@@ -24792,7 +24792,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 2,
"x" : 2.04650927,
"y" : 0,
"z" : 0
},
@@ -25931,7 +25931,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -5,
"x" : -5.03925562,
"y" : 0,
"z" : 0
},
@@ -32427,7 +32427,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -3.5,
"x" : -3.25,
"y" : 0,
"z" : 0
},
@@ -32585,7 +32585,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 1.6,
"x" : 1.84374464,
"y" : 0,
"z" : 0
},
@@ -32743,7 +32743,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -2,
"x" : -1.98542345,
"y" : 0,
"z" : 0
},
@@ -32901,7 +32901,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 2,
"x" : 2.1166122,
"y" : 0,
"z" : 0
},
@@ -33059,7 +33059,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -1.1,
"x" : -1.06706929,
"y" : 0,
"z" : 0
},
@@ -33217,7 +33217,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 3.6,
"x" : 3.82214284,
"y" : 0,
"z" : 0
},
@@ -33375,7 +33375,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 6.6,
"x" : 7,
"y" : 0,
"z" : 0
},
@@ -33533,7 +33533,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 1.8,
"x" : 2.78709126,
"y" : 0,
"z" : 0
},
@@ -33683,7 +33683,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -0.9,
"x" : -0.0370717049,
"y" : 0,
"z" : 0
},
@@ -33833,7 +33833,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -2,
"x" : -1.75,
"y" : 0,
"z" : 0
},
@@ -33983,7 +33983,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -2.5,
"x" : -2.629621,
"y" : 0,
"z" : 0
},
@@ -34133,7 +34133,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -3,
"x" : -2.95370579,
"y" : 0,
"z" : 0
},
@@ -34283,7 +34283,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -3.2,
"x" : -3,
"y" : 0,
"z" : 0
},
@@ -34433,7 +34433,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -2.7,
"x" : -2.92187214,
"y" : 0,
"z" : 0
},
@@ -34583,7 +34583,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -2.1,
"x" : -2.375022,
"y" : 0,
"z" : 0
},
@@ -34733,7 +34733,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -0.9,
"x" : -0.890649557,
"y" : 0,
"z" : 0
},
@@ -34883,7 +34883,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -2,
"x" : -2.00017524,
"y" : 0,
"z" : 0
},
@@ -35728,7 +35728,7 @@
],
"elementGuid" : {
"value" : "d828bbcc-2f0e-4b39-97bf-1612794f320d"
"value" : "eeb24fad-4048-4368-a826-e2515492b793"
},
"attachedElementGuid" : {
"value" : "ff8926ef-e06e-4f85-837f-2b3948290d18"
@@ -35751,7 +35751,7 @@
"z" : 1
},
"attachedElementGuid" : {
"value" : "d828bbcc-2f0e-4b39-97bf-1612794f320d"
"value" : "eeb24fad-4048-4368-a826-e2515492b793"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.EffectSubmodule_BM,Assembly-CSharp",
@@ -35791,7 +35791,7 @@
]
},
"attachedElementGuid" : {
"value" : "d828bbcc-2f0e-4b39-97bf-1612794f320d"
"value" : "eeb24fad-4048-4368-a826-e2515492b793"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Tap_BM,Assembly-CSharp",
@@ -35866,7 +35866,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 3,
"x" : 3.43846846,
"y" : 0,
"z" : 0
},
@@ -36024,7 +36024,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 3,
"x" : 3.320713,
"y" : 0,
"z" : 0
},
@@ -37904,7 +37904,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 1,
"x" : 0.9995594,
"y" : 0,
"z" : 0
},
@@ -38220,7 +38220,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -2.5,
"x" : -2.547771,
"y" : 0,
"z" : 0
},
@@ -38378,7 +38378,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 2.3,
"x" : 2.26309252,
"y" : 0,
"z" : 0
},
@@ -38536,7 +38536,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -2,
"x" : -1.80760229,
"y" : 0,
"z" : 0
},
@@ -38694,7 +38694,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 2,
"x" : 2.00017524,
"y" : 0,
"z" : 0
},
@@ -38852,7 +38852,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 2.4,
"x" : 2.375022,
"y" : 0,
"z" : 0
},
@@ -39010,7 +39010,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 7,
"x" : 6.921872,
"y" : 0,
"z" : 0
},
@@ -39642,7 +39642,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 5.5,
"x" : 5,
"y" : 0,
"z" : 0
},
@@ -40258,7 +40258,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -2,
"x" : -2.00017524,
"y" : 0,
"z" : 0
},
@@ -40416,7 +40416,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -2,
"x" : -2.375022,
"y" : 0,
"z" : 0
},
@@ -40574,7 +40574,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -6.9,
"x" : -6.921872,
"y" : 0,
"z" : 0
},
@@ -40890,7 +40890,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -7,
"x" : -6.999594,
"y" : 0,
"z" : 0
},
@@ -41048,7 +41048,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -3,
"x" : -2.99959421,
"y" : 0,
"z" : 0
},
@@ -41996,7 +41996,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 1,
"x" : 0,
"y" : 0,
"z" : 0
},
@@ -42154,7 +42154,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -1,
"x" : 0,
"y" : 0,
"z" : 0
},
@@ -42312,7 +42312,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 0.4,
"x" : 0,
"y" : 0,
"z" : 0
},
@@ -42470,7 +42470,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -0.4,
"x" : 0,
"y" : 0,
"z" : 0
},
@@ -44460,7 +44460,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -5,
"x" : -4.99941444,
"y" : 0,
"z" : 0
},
@@ -44618,7 +44618,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 5,
"x" : 4.99941444,
"y" : 0,
"z" : 0
},
@@ -46176,7 +46176,7 @@
],
"elementGuid" : {
"value" : "b67d1486-2358-4081-a74a-9e83b48a5c34"
"value" : "4afb4752-96f4-4697-b9f9-f2fc421b4eb2"
},
"attachedElementGuid" : {
"value" : "ff8926ef-e06e-4f85-837f-2b3948290d18"
@@ -46199,7 +46199,7 @@
"z" : 1
},
"attachedElementGuid" : {
"value" : "b67d1486-2358-4081-a74a-9e83b48a5c34"
"value" : "4afb4752-96f4-4697-b9f9-f2fc421b4eb2"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.EffectSubmodule_BM,Assembly-CSharp",
@@ -46269,7 +46269,7 @@
]
},
"attachedElementGuid" : {
"value" : "b67d1486-2358-4081-a74a-9e83b48a5c34"
"value" : "4afb4752-96f4-4697-b9f9-f2fc421b4eb2"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.ElementFolder_BM,Assembly-CSharp",
@@ -47135,7 +47135,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 7,
"x" : 6.999895,
"y" : 0,
"z" : 0
},
@@ -47285,7 +47285,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 6,
"x" : 5.94379044,
"y" : 0,
"z" : 0
},
@@ -47435,7 +47435,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -5,
"x" : -5.01943,
"y" : 0,
"z" : 0
},
@@ -47585,7 +47585,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -4.2,
"x" : -4.21820068,
"y" : 0,
"z" : 0
},
@@ -47735,7 +47735,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -3.5,
"x" : -3.53122044,
"y" : 0,
"z" : 0
},
@@ -47885,7 +47885,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -1,
"x" : -1.0117209,
"y" : 0,
"z" : 0
},
@@ -48201,7 +48201,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -2.3,
"x" : -2.32024527,
"y" : 0,
"z" : 0
},
@@ -48359,7 +48359,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 3.3,
"x" : 3.31248021,
"y" : 0,
"z" : 0
},
@@ -49773,7 +49773,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -5,
"x" : -4.92188072,
"y" : 0,
"z" : 0
},
@@ -50089,7 +50089,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 4.3,
"x" : 4.374956,
"y" : 0,
"z" : 0
},
@@ -50247,7 +50247,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 4.8,
"x" : 4.92186928,
"y" : 0,
"z" : 0
},
@@ -50547,7 +50547,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 5,
"x" : 4.921878,
"y" : 0,
"z" : 0
},
@@ -50697,7 +50697,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -4.4,
"x" : -4.375022,
"y" : 0,
"z" : 0
},
@@ -50855,7 +50855,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -3.5,
"x" : -3.52259636,
"y" : 0,
"z" : 0
},
@@ -51005,7 +51005,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -2,
"x" : -2.11295557,
"y" : 0,
"z" : 0
},
@@ -51313,7 +51313,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 3,
"x" : 3.899961,
"y" : 0,
"z" : 0
},
@@ -51463,7 +51463,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 4,
"x" : 3.5143292,
"y" : 0,
"z" : 0
},
@@ -51771,7 +51771,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -5,
"x" : -4.813773,
"y" : 0,
"z" : 0
},
@@ -51921,7 +51921,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : -5,
"x" : -4.97659159,
"y" : 0,
"z" : 0
},
@@ -55265,7 +55265,7 @@
],
"elementGuid" : {
"value" : "c6b56150-2cbb-4660-9f50-794617678a5b"
"value" : "eb2e66ac-bcdb-4c25-87d9-0b1f110c8173"
},
"attachedElementGuid" : {
"value" : "ff8926ef-e06e-4f85-837f-2b3948290d18"
@@ -55288,7 +55288,7 @@
"z" : 1
},
"attachedElementGuid" : {
"value" : "c6b56150-2cbb-4660-9f50-794617678a5b"
"value" : "eb2e66ac-bcdb-4c25-87d9-0b1f110c8173"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.EffectSubmodule_BM,Assembly-CSharp",
@@ -55328,7 +55328,7 @@
]
},
"attachedElementGuid" : {
"value" : "c6b56150-2cbb-4660-9f50-794617678a5b"
"value" : "eb2e66ac-bcdb-4c25-87d9-0b1f110c8173"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.ElementFolder_BM,Assembly-CSharp",
@@ -73405,41 +73405,6 @@
"attachedElementGuid" : {
"value" : "e76da876-19b3-4853-950f-c4bf3d194ae3"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Displacement_BM,Assembly-CSharp",
"positionX" : {
"animatedFloatList" : [
]
},
"positionY" : {
"animatedFloatList" : [
]
},
"positionZ" : {
"animatedFloatList" : [
]
},
"elementName" : "New Displacement",
"tags" : [
],
"elementGuid" : {
"value" : "fc354542-b11c-4118-bc93-bbdbbd9cbbf9"
},
"attachedElementGuid" : {
"value" : "e76da876-19b3-4853-950f-c4bf3d194ae3"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "fc354542-b11c-4118-bc93-bbdbbd9cbbf9"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Tap_BM,Assembly-CSharp",
"exactJudgeTime" : 111.195656,
@@ -75494,59 +75459,6 @@
"attachedElementGuid" : {
"value" : "62f52494-c02c-4765-8e7f-1487568904a1"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Displacement_BM,Assembly-CSharp",
"positionX" : {
"animatedFloatList" : [
{
"startValue" : 0,
"endValue" : 2,
"startTime" : 111.1957,
"endTime" : 112.5,
"animationCurveType" : 2
},{
"startValue" : 2,
"endValue" : -2,
"startTime" : 112.5,
"endTime" : 115.1087,
"animationCurveType" : 3
},{
"startValue" : -2,
"endValue" : 0,
"startTime" : 115.1087,
"endTime" : 115.7609,
"animationCurveType" : 4
}
]
},
"positionY" : {
"animatedFloatList" : [
]
},
"positionZ" : {
"animatedFloatList" : [
]
},
"elementName" : "New Displacement",
"tags" : [
],
"elementGuid" : {
"value" : "0931cf60-84b1-477c-ab2f-b8ad69e1fe5a"
},
"attachedElementGuid" : {
"value" : "43014478-646e-474f-b715-2efee72424f7"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "0931cf60-84b1-477c-ab2f-b8ad69e1fe5a"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.ElementFolder_BM,Assembly-CSharp",
"elementName" : "dddddddrop!!!!!!!",
@@ -77826,6 +77738,59 @@
"attachedElementGuid" : {
"value" : "eb851452-6b83-4432-91e8-10ba47e05daf"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Displacement_BM,Assembly-CSharp",
"positionX" : {
"animatedFloatList" : [
{
"startValue" : 0,
"endValue" : 2,
"startTime" : 111.1957,
"endTime" : 112.5,
"animationCurveType" : 2
},{
"startValue" : 2,
"endValue" : -2,
"startTime" : 112.5,
"endTime" : 115.1087,
"animationCurveType" : 3
},{
"startValue" : -2,
"endValue" : 0,
"startTime" : 115.1087,
"endTime" : 115.7609,
"animationCurveType" : 4
}
]
},
"positionY" : {
"animatedFloatList" : [
]
},
"positionZ" : {
"animatedFloatList" : [
]
},
"elementName" : "New Displacement",
"tags" : [
],
"elementGuid" : {
"value" : "9bccbc37-8ee5-4542-b300-c306d1ea9592"
},
"attachedElementGuid" : {
"value" : "e76da876-19b3-4853-950f-c4bf3d194ae3"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "9bccbc37-8ee5-4542-b300-c306d1ea9592"
}
}
],
"attachedElementGuid" : {