增加folder层面的QuickCopy

Signed-off-by: TRADER_FOER <lhf190@outlook.com>
This commit is contained in:
2026-07-25 00:17:04 +08:00
parent dd4d4e0e03
commit eb7110ea77
19 changed files with 548153 additions and 1676 deletions

View File

@@ -49,10 +49,10 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 28008 m_fileSize: 28008
m_assetChangeTS: 1784173240 m_assetChangeTS: 1784786009
m_fileInfoReadTS: 1784173249 m_fileInfoReadTS: 1784786075
m_fileWriteTS: 1784173240 m_fileWriteTS: 1784786009
m_cachefileWriteTS: 1784173240 m_cachefileWriteTS: 1784786009
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: UseGUIDsList:
- guid: cd62869af1bc6534d83427c72b66bb9f - guid: cd62869af1bc6534d83427c72b66bb9f
@@ -193,10 +193,10 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 2712 m_fileSize: 2712
m_assetChangeTS: 1784173240 m_assetChangeTS: 1784786009
m_fileInfoReadTS: 1784173249 m_fileInfoReadTS: 1784786075
m_fileWriteTS: 1784173240 m_fileWriteTS: 1784786009
m_cachefileWriteTS: 1784173240 m_cachefileWriteTS: 1784786009
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: UseGUIDsList:
- guid: 0000000000000000f000000000000000 - guid: 0000000000000000f000000000000000
@@ -12993,15 +12993,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: c02ee9e15cdc048c5909a61377382530 - guid: c02ee9e15cdc048c5909a61377382530
type: 2 type: 2
m_fileInfoHash: 4574.cs m_fileInfoHash: 5286.cs
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 4574 m_fileSize: 5286
m_assetChangeTS: 0 m_assetChangeTS: 1784909702
m_fileInfoReadTS: 1783088717 m_fileInfoReadTS: 1784909710
m_fileWriteTS: 1780644710 m_fileWriteTS: 1784906457
m_cachefileWriteTS: 1780644710 m_cachefileWriteTS: 1784906457
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: c0dea78aecac504409fd4642e1667e35 - guid: c0dea78aecac504409fd4642e1667e35
@@ -13301,10 +13301,10 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 4590 m_fileSize: 4590
m_assetChangeTS: 1784718010 m_assetChangeTS: 1784786008
m_fileInfoReadTS: 1784718013 m_fileInfoReadTS: 1784786075
m_fileWriteTS: 1784718010 m_fileWriteTS: 1784786008
m_cachefileWriteTS: 1784718010 m_cachefileWriteTS: 1784786008
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: UseGUIDsList:
- guid: bf2edee5c58d82540a51f03df9d42094 - guid: bf2edee5c58d82540a51f03df9d42094
@@ -32603,10 +32603,10 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 4587 m_fileSize: 4587
m_assetChangeTS: 1784718010 m_assetChangeTS: 1784786009
m_fileInfoReadTS: 1784718013 m_fileInfoReadTS: 1784786075
m_fileWriteTS: 1784718010 m_fileWriteTS: 1784786009
m_cachefileWriteTS: 1784718010 m_cachefileWriteTS: 1784786009
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: UseGUIDsList:
- guid: bf2edee5c58d82540a51f03df9d42094 - guid: bf2edee5c58d82540a51f03df9d42094
@@ -45012,15 +45012,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: b21947a05ccd4a24789e2de2f396b8f8 - guid: b21947a05ccd4a24789e2de2f396b8f8
type: 2 type: 2
m_fileInfoHash: 71646.cs m_fileInfoHash: 72158.cs
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 71646 m_fileSize: 72158
m_assetChangeTS: 1784785464 m_assetChangeTS: 1784791927
m_fileInfoReadTS: 1784785471 m_fileInfoReadTS: 1784791936
m_fileWriteTS: 1784785461 m_fileWriteTS: 1784791804
m_cachefileWriteTS: 1784785461 m_cachefileWriteTS: 1784791804
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: b219c86ce508e478367c0a46e1aa9fe4 - guid: b219c86ce508e478367c0a46e1aa9fe4
@@ -61153,10 +61153,10 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 5040 m_fileSize: 5040
m_assetChangeTS: 1784182252 m_assetChangeTS: 1784786003
m_fileInfoReadTS: 1784182253 m_fileInfoReadTS: 1784786004
m_fileWriteTS: 1784182149 m_fileWriteTS: 1784785979
m_cachefileWriteTS: 1784182149 m_cachefileWriteTS: 1784785979
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: b3f8be1d5379c4d059d88a709145ec48 - guid: b3f8be1d5379c4d059d88a709145ec48
@@ -65339,15 +65339,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: f31c8f1dc317daf4abfedc72480bca94 - guid: f31c8f1dc317daf4abfedc72480bca94
type: 5 type: 5
m_fileInfoHash: 715156.prefab m_fileInfoHash: 744690.prefab
m_assetbundle: departure_to_multiverse m_assetbundle: departure_to_multiverse
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 715156 m_fileSize: 744690
m_assetChangeTS: 1783667246 m_assetChangeTS: 1784785965
m_fileInfoReadTS: 1783667249 m_fileInfoReadTS: 1784785966
m_fileWriteTS: 1783667246 m_fileWriteTS: 1784785863
m_cachefileWriteTS: 1783667246 m_cachefileWriteTS: 1784785863
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: UseGUIDsList:
- guid: b546731ae38d4ae47bd9a1cdd80ea2f1 - guid: b546731ae38d4ae47bd9a1cdd80ea2f1
@@ -93139,15 +93139,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: b546731ae38d4ae47bd9a1cdd80ea2f1 - guid: b546731ae38d4ae47bd9a1cdd80ea2f1
type: 5 type: 5
m_fileInfoHash: 2373.mat m_fileInfoHash: 2459.mat
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 2373 m_fileSize: 2459
m_assetChangeTS: 1783397355 m_assetChangeTS: 1784785965
m_fileInfoReadTS: 1783397367 m_fileInfoReadTS: 1784785966
m_fileWriteTS: 1783397354 m_fileWriteTS: 1784785863
m_cachefileWriteTS: 1783397354 m_cachefileWriteTS: 1784785863
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: UseGUIDsList:
- guid: 4aa0ba8da2b8f5b4ca69696b5c13144c - guid: 4aa0ba8da2b8f5b4ca69696b5c13144c
@@ -95914,15 +95914,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: d58e7a7433f91a24db26a8712f3592da - guid: d58e7a7433f91a24db26a8712f3592da
type: 9 type: 9
m_fileInfoHash: 456.manifest m_fileInfoHash: 457.manifest
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 456 m_fileSize: 457
m_assetChangeTS: 1784182252 m_assetChangeTS: 1784786003
m_fileInfoReadTS: 1784182253 m_fileInfoReadTS: 1784786004
m_fileWriteTS: 1784182149 m_fileWriteTS: 1784785979
m_cachefileWriteTS: 1784182149 m_cachefileWriteTS: 1784785979
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: d5deddb7ed7802d41947ef9ac98ccd56 - guid: d5deddb7ed7802d41947ef9ac98ccd56
@@ -107115,15 +107115,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: 96eebd1d5b544e74ca55536541f943f2 - guid: 96eebd1d5b544e74ca55536541f943f2
type: 5 type: 5
m_fileInfoHash: 10668.anim m_fileInfoHash: 11202.anim
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 10668 m_fileSize: 11202
m_assetChangeTS: 0 m_assetChangeTS: 1784785965
m_fileInfoReadTS: 1783088688 m_fileInfoReadTS: 1784785966
m_fileWriteTS: 1781463540 m_fileWriteTS: 1784785863
m_cachefileWriteTS: 1781463540 m_cachefileWriteTS: 1784785863
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 96feaa0b12eabfe44b345be97ea0029c - guid: 96feaa0b12eabfe44b345be97ea0029c
@@ -121617,15 +121617,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: 773c77098921d4c1a87dc6068b5253e8 - guid: 773c77098921d4c1a87dc6068b5253e8
type: 2 type: 2
m_fileInfoHash: 9599.cs m_fileInfoHash: 10505.cs
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 9599 m_fileSize: 10505
m_assetChangeTS: 1783662864 m_assetChangeTS: 1784909702
m_fileInfoReadTS: 1783662889 m_fileInfoReadTS: 1784909710
m_fileWriteTS: 1783662268 m_fileWriteTS: 1784906449
m_cachefileWriteTS: 1783662268 m_cachefileWriteTS: 1784906449
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 774c00e683b6094459a1ed557b35694b - guid: 774c00e683b6094459a1ed557b35694b
@@ -131983,10 +131983,10 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 23881 m_fileSize: 23881
m_assetChangeTS: 1784173240 m_assetChangeTS: 1784786009
m_fileInfoReadTS: 1784173249 m_fileInfoReadTS: 1784786075
m_fileWriteTS: 1784173240 m_fileWriteTS: 1784786009
m_cachefileWriteTS: 1784173240 m_cachefileWriteTS: 1784786009
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: UseGUIDsList:
- guid: 2ec995e51a6e251468d2a3fd8a686257 - guid: 2ec995e51a6e251468d2a3fd8a686257
@@ -132501,15 +132501,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: 28c134965d47644a98d3ba8a1343674a - guid: 28c134965d47644a98d3ba8a1343674a
type: 3 type: 3
m_fileInfoHash: 1718126.unity m_fileInfoHash: 1717960.unity
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 1718126 m_fileSize: 1717960
m_assetChangeTS: 1783665760 m_assetChangeTS: 1784905497
m_fileInfoReadTS: 1783665761 m_fileInfoReadTS: 1784905499
m_fileWriteTS: 1783665760 m_fileWriteTS: 1784905497
m_cachefileWriteTS: 1783665760 m_cachefileWriteTS: 1784905497
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: UseGUIDsList:
- guid: 0000000000000000f000000000000000 - guid: 0000000000000000f000000000000000
@@ -188235,10 +188235,10 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 4597 m_fileSize: 4597
m_assetChangeTS: 1784718010 m_assetChangeTS: 1784786009
m_fileInfoReadTS: 1784718013 m_fileInfoReadTS: 1784786075
m_fileWriteTS: 1784718010 m_fileWriteTS: 1784786009
m_cachefileWriteTS: 1784718010 m_cachefileWriteTS: 1784786009
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: UseGUIDsList:
- guid: bf2edee5c58d82540a51f03df9d42094 - guid: bf2edee5c58d82540a51f03df9d42094
@@ -193976,15 +193976,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: eb907071d10d7324995ff3aefbc2f1df - guid: eb907071d10d7324995ff3aefbc2f1df
type: 2 type: 2
m_fileInfoHash: 13716.cs m_fileInfoHash: 13564.cs
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 13716 m_fileSize: 13564
m_assetChangeTS: 1783397339 m_assetChangeTS: 1784905126
m_fileInfoReadTS: 1783397348 m_fileInfoReadTS: 1784905137
m_fileWriteTS: 1783397337 m_fileWriteTS: 1784903563
m_cachefileWriteTS: 1783397337 m_cachefileWriteTS: 1784903563
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: ebe0e8e6fb594ed4fb41a9af339ab90c - guid: ebe0e8e6fb594ed4fb41a9af339ab90c
@@ -207063,15 +207063,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: 8c3c6c8aa2d7f5d48aee5ced0ffe9bb8 - guid: 8c3c6c8aa2d7f5d48aee5ced0ffe9bb8
type: 2 type: 2
m_fileInfoHash: 9769.cs m_fileInfoHash: 9119.cs
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 9769 m_fileSize: 9119
m_assetChangeTS: 1783662864 m_assetChangeTS: 1784909702
m_fileInfoReadTS: 1783662889 m_fileInfoReadTS: 1784909710
m_fileWriteTS: 1783662667 m_fileWriteTS: 1784909672
m_cachefileWriteTS: 1783662667 m_cachefileWriteTS: 1784909672
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 8c7c7e69d9574cd6994b42e64fb32db2 - guid: 8c7c7e69d9574cd6994b42e64fb32db2
@@ -207740,15 +207740,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: 9c6906848c3ff094bb7de22ec40de351 - guid: 9c6906848c3ff094bb7de22ec40de351
type: 9 type: 9
m_fileInfoHash: 2031573 m_fileInfoHash: 2032370
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 2031573 m_fileSize: 2032370
m_assetChangeTS: 1784182252 m_assetChangeTS: 1784786003
m_fileInfoReadTS: 1784182253 m_fileInfoReadTS: 1784786004
m_fileWriteTS: 1784182149 m_fileWriteTS: 1784785979
m_cachefileWriteTS: 1784182149 m_cachefileWriteTS: 1784785979
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 9ce919d8f2acf2b47a932e850e399d3a - guid: 9ce919d8f2acf2b47a932e850e399d3a
@@ -233240,15 +233240,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: 2e498d1c8094910479dc3e1b768306a4 - guid: 2e498d1c8094910479dc3e1b768306a4
type: 5 type: 5
m_fileInfoHash: 1133727.asset m_fileInfoHash: 1133726.asset
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 1133727 m_fileSize: 1133726
m_assetChangeTS: 1784785140 m_assetChangeTS: 1784905497
m_fileInfoReadTS: 1784785157 m_fileInfoReadTS: 1784905499
m_fileWriteTS: 1784785140 m_fileWriteTS: 1784905497
m_cachefileWriteTS: 1784785140 m_cachefileWriteTS: 1784905497
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: UseGUIDsList:
- guid: fe393ace9b354375a9cb14cdbbc28be4 - guid: fe393ace9b354375a9cb14cdbbc28be4
@@ -254985,10 +254985,10 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 1170 m_fileSize: 1170
m_assetChangeTS: 1784182252 m_assetChangeTS: 1784786003
m_fileInfoReadTS: 1784182253 m_fileInfoReadTS: 1784786004
m_fileWriteTS: 1784182243 m_fileWriteTS: 1784785979
m_cachefileWriteTS: 1784182243 m_cachefileWriteTS: 1784785979
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 9f959286f2d624a08b56b6d290871b33 - guid: 9f959286f2d624a08b56b6d290871b33
@@ -262421,15 +262421,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: f68947e1ae908304ca086ca100372e3f - guid: f68947e1ae908304ca086ca100372e3f
type: 9 type: 9
m_fileInfoHash: 15186962.json m_fileInfoHash: 15210965.json
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 15186962 m_fileSize: 15210965
m_assetChangeTS: 1784732419 m_assetChangeTS: 1784785839
m_fileInfoReadTS: 1784732431 m_fileInfoReadTS: 1784785840
m_fileWriteTS: 1784731743 m_fileWriteTS: 1784785767
m_cachefileWriteTS: 1784731743 m_cachefileWriteTS: 1784785767
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 388d550a736749e4f8aa928ff1081daa - guid: 388d550a736749e4f8aa928ff1081daa
@@ -262439,23 +262439,23 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 545 m_fileSize: 545
m_assetChangeTS: 0 m_assetChangeTS: 1784883252
m_fileInfoReadTS: 1784043068 m_fileInfoReadTS: 1784883260
m_fileWriteTS: 1784043056 m_fileWriteTS: 1784792273
m_cachefileWriteTS: 1784043056 m_cachefileWriteTS: 1784792273
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 8f32feb6eb2261445b28dc6e4c5f7f28 - guid: 8f32feb6eb2261445b28dc6e4c5f7f28
type: 9 type: 9
m_fileInfoHash: 247.json m_fileInfoHash: 14800365.json
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 247 m_fileSize: 14800365
m_assetChangeTS: 0 m_assetChangeTS: 1784883252
m_fileInfoReadTS: 1784043068 m_fileInfoReadTS: 1784883260
m_fileWriteTS: 1784043056 m_fileWriteTS: 1784792273
m_cachefileWriteTS: 1784043056 m_cachefileWriteTS: 1784792273
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: ac415fe515a00744891e54b58bc3e0a1 - guid: ac415fe515a00744891e54b58bc3e0a1
@@ -262517,10 +262517,10 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 554 m_fileSize: 554
m_assetChangeTS: 1784732419 m_assetChangeTS: 1784785839
m_fileInfoReadTS: 1784732431 m_fileInfoReadTS: 1784785840
m_fileWriteTS: 1784731742 m_fileWriteTS: 1784785766
m_cachefileWriteTS: 1784731742 m_cachefileWriteTS: 1784785766
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: c5ed43774d4b5334d98b6022b037583d - guid: c5ed43774d4b5334d98b6022b037583d
@@ -262759,15 +262759,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: c8e0717920cb3b547966d49d9d686146 - guid: c8e0717920cb3b547966d49d9d686146
type: 2 type: 2
m_fileInfoHash: 5252.cs m_fileInfoHash: 5574.cs
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 5252 m_fileSize: 5574
m_assetChangeTS: 1784702403 m_assetChangeTS: 1784909702
m_fileInfoReadTS: 1784702410 m_fileInfoReadTS: 1784909710
m_fileWriteTS: 1784702399 m_fileWriteTS: 1784906467
m_cachefileWriteTS: 1784702399 m_cachefileWriteTS: 1784906467
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 1e190c7559e20d047b531f59f136331a - guid: 1e190c7559e20d047b531f59f136331a
@@ -263024,23 +263024,23 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 551 m_fileSize: 551
m_assetChangeTS: 1784700774 m_assetChangeTS: 1784909702
m_fileInfoReadTS: 1784700781 m_fileInfoReadTS: 1784909710
m_fileWriteTS: 1784700596 m_fileWriteTS: 1784905762
m_cachefileWriteTS: 1784700596 m_cachefileWriteTS: 1784905762
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 4e04e0cbddede8c429ca7c9f46e1098f - guid: 4e04e0cbddede8c429ca7c9f46e1098f
type: 9 type: 9
m_fileInfoHash: 14653.json m_fileInfoHash: 19963.json
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 14653 m_fileSize: 19963
m_assetChangeTS: 1784700774 m_assetChangeTS: 1784909702
m_fileInfoReadTS: 1784700781 m_fileInfoReadTS: 1784909710
m_fileWriteTS: 1784700596 m_fileWriteTS: 1784905762
m_cachefileWriteTS: 1784700596 m_cachefileWriteTS: 1784905762
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 84fe6127edc543044a3c947e88ffc5fa - guid: 84fe6127edc543044a3c947e88ffc5fa
@@ -263362,10 +263362,10 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 352 m_fileSize: 352
m_assetChangeTS: 1784732419 m_assetChangeTS: 1784785839
m_fileInfoReadTS: 1784732431 m_fileInfoReadTS: 1784785840
m_fileWriteTS: 1784731794 m_fileWriteTS: 1784785767
m_cachefileWriteTS: 1784731794 m_cachefileWriteTS: 1784785767
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 443b906b6bd2e6b478c13c9a0deba734 - guid: 443b906b6bd2e6b478c13c9a0deba734
@@ -263383,15 +263383,15 @@ MonoBehaviour:
UseGUIDsList: [] UseGUIDsList: []
- guid: a464686c9655ccd49b720ecbaefaa6fd - guid: a464686c9655ccd49b720ecbaefaa6fd
type: 9 type: 9
m_fileInfoHash: 559232.bytes m_fileInfoHash: 560192.bytes
m_assetbundle: m_assetbundle:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 559232 m_fileSize: 560192
m_assetChangeTS: 1784732419 m_assetChangeTS: 1784785839
m_fileInfoReadTS: 1784732431 m_fileInfoReadTS: 1784785840
m_fileWriteTS: 1784731795 m_fileWriteTS: 1784785769
m_cachefileWriteTS: 1784731795 m_cachefileWriteTS: 1784785769
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: c42e3f0f030977241b16920749a48fa3 - guid: c42e3f0f030977241b16920749a48fa3
@@ -263401,10 +263401,10 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 192 m_fileSize: 192
m_assetChangeTS: 1784732419 m_assetChangeTS: 1784785839
m_fileInfoReadTS: 1784732431 m_fileInfoReadTS: 1784785840
m_fileWriteTS: 1784731795 m_fileWriteTS: 1784785769
m_cachefileWriteTS: 1784731795 m_cachefileWriteTS: 1784785769
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 5746466ef7128924ead2f8bcb9b92942 - guid: 5746466ef7128924ead2f8bcb9b92942
@@ -263427,10 +263427,10 @@ MonoBehaviour:
m_addressable: m_addressable:
m_atlas: m_atlas:
m_fileSize: 240 m_fileSize: 240
m_assetChangeTS: 1784732419 m_assetChangeTS: 1784785839
m_fileInfoReadTS: 1784732431 m_fileInfoReadTS: 1784785840
m_fileWriteTS: 1784731794 m_fileWriteTS: 1784785767
m_cachefileWriteTS: 1784731794 m_cachefileWriteTS: 1784785767
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 89f22bdfdf47cb64597e998e025e10a2 - guid: 89f22bdfdf47cb64597e998e025e10a2
@@ -263472,6 +263472,19 @@ MonoBehaviour:
m_cachefileWriteTS: 1784732419 m_cachefileWriteTS: 1784732419
refreshStamp: 2 refreshStamp: 2
UseGUIDsList: [] UseGUIDsList: []
- guid: 5ce75de045ac4fdaa86370a04faa919f
type: 2
m_fileInfoHash: 7884.cs
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 7884
m_assetChangeTS: 1784909702
m_fileInfoReadTS: 1784909710
m_fileWriteTS: 1784909679
m_cachefileWriteTS: 1784909679
refreshStamp: 2
UseGUIDsList: []
setting: setting:
alternateColor: 1 alternateColor: 1
excludeTypes: 0 excludeTypes: 0

View File

@@ -3387,7 +3387,7 @@ MonoBehaviour:
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_text: "7/10:\u6CE8\u610F\uFF1A\u8BE5\u7248\u672C\u4E4B\u524D\u7684\u8C31\u9762\u7684crossTrack\u70B9\u4F1A\u5931\u6548\uFF0C\u8BF7\u91CD\u65B0\u8FDB\u884C\u4E00\u6B21paste" m_text:
m_isRightToLeft: 0 m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
@@ -17328,7 +17328,7 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 4337614255116277774} m_TargetGraphic: {fileID: 4337614255116277774}
m_HandleRect: {fileID: 4337614255116277775} m_HandleRect: {fileID: 4337614255116277775}
m_Direction: 2 m_Direction: 2
m_Value: 0 m_Value: 1
m_Size: 1 m_Size: 1
m_NumberOfSteps: 0 m_NumberOfSteps: 0
m_OnValueChanged: m_OnValueChanged:

View File

@@ -107,6 +107,7 @@ public class consoleOnMono : MonoBehaviour
yield return GenerateLegacyTrackSubmodules(stats); yield return GenerateLegacyTrackSubmodules(stats);
yield return GenerateLegacyPathNodes(elements, stats); yield return GenerateLegacyPathNodes(elements, stats);
yield return GenerateLegacyTrackPoints(elements, stats); yield return GenerateLegacyTrackPoints(elements, stats);
yield return GenerateLegacyEnvironmentObjects(elements, stats);
yield return GenerateLegacyNotes(elements, stats); yield return GenerateLegacyNotes(elements, stats);
yield return GenerateLegacyNoteVisualOverrides(elements, stats); yield return GenerateLegacyNoteVisualOverrides(elements, stats);
yield return GenerateLegacyAnimations(elements, stats); yield return GenerateLegacyAnimations(elements, stats);
@@ -201,26 +202,6 @@ public class consoleOnMono : MonoBehaviour
}, stats); }, stats);
break; break;
case "EnvironmentObject_BM":
Debug.Log($"[LegacyImport] Processing EnvironmentObject_BM: {GetElementName(node, "unnamed")}");
TryCreateLegacyElement(node, () =>
{
GameElement parent = GetLegacyParentOrAncestor(node) ?? CreateFallbackFolder();
if (!TryFindLegacyEnvironmentObject(node, out string themeBundleName, out string objectName))
{
return null;
}
EnvironmentObject environmentObject = EnvironmentObject.GenerateElement(
GetElementName(node, "Legacy Environment Object"),
CreateGuid(), new List<string>(), true, themeBundleName, objectName, parent,
GetBool(node, "isStatic", false));
ApplyLegacySubstantialObject(environmentObject, node);
Debug.Log($"[LegacyImport] EnvironmentObject_BM created: oldObject='{GetString(node, "objectName", "?")}', newObject='{themeBundleName}/{objectName}', parent='{parent.elementName}'");
return environmentObject;
}, stats);
break;
case "TimeTrackPoint_BM": case "TimeTrackPoint_BM":
Debug.Log($"[LegacyImport] Processing TimeTrackPoint_BM as CrossTrackPoint: {GetElementName(node, "unnamed")}"); Debug.Log($"[LegacyImport] Processing TimeTrackPoint_BM as CrossTrackPoint: {GetElementName(node, "unnamed")}");
TryCreateLegacyElement(node, () => TryCreateLegacyElement(node, () =>
@@ -432,6 +413,46 @@ public class consoleOnMono : MonoBehaviour
Debug.Log($"[LegacyImport] TrackPoints summary: TrackPercentPoint={trackPercentPointCount}"); Debug.Log($"[LegacyImport] TrackPoints summary: TrackPercentPoint={trackPercentPointCount}");
} }
private IEnumerator GenerateLegacyEnvironmentObjects(JSONNode elements, LegacyImportStats stats)
{
int environmentObjectCount = 0;
for (int i = 0; i < elements.Count; i++)
{
JSONNode node = elements[i];
if (GetLegacyTypeName(node) != "EnvironmentObject_BM")
{
continue;
}
environmentObjectCount++;
Debug.Log($"[LegacyImport] Processing EnvironmentObject_BM: {GetElementName(node, "unnamed")}");
TryCreateLegacyElement(node, () =>
{
GameElement parent = GetLegacyParentOrAncestor(node) ?? CreateFallbackFolder();
if (!TryFindLegacyEnvironmentObject(node, out string themeBundleName, out string objectName))
{
return null;
}
EnvironmentObject environmentObject = EnvironmentObject.GenerateElement(
GetElementName(node, "Legacy Environment Object"),
CreateGuid(), new List<string>(), true, themeBundleName, objectName, parent,
GetBool(node, "isStatic", false));
ApplyLegacySubstantialObject(environmentObject, node);
Debug.Log($"[LegacyImport] EnvironmentObject_BM created: oldObject='{GetString(node, "objectName", "?")}', newObject='{themeBundleName}/{objectName}', parent='{parent.elementName}'");
return environmentObject;
}, stats);
if (i % ElementsPerFrame == 0)
{
yield return null;
}
}
Debug.Log($"[LegacyImport] EnvironmentObject summary: EnvironmentObject={environmentObjectCount}");
}
private IEnumerator GenerateLegacyNotes(JSONNode elements, LegacyImportStats stats) private IEnumerator GenerateLegacyNotes(JSONNode elements, LegacyImportStats stats)
{ {
int[] noteCounts = new int[4]; // 0=Tap, 1=Stay, 2=Hold, 3=unknown skipped int[] noteCounts = new int[4]; // 0=Tap, 1=Stay, 2=Hold, 3=unknown skipped

View File

@@ -0,0 +1,199 @@
using System.Collections.Generic;
using Ichni.Editor;
using Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse;
using UnityEngine;
namespace Ichni.RhythmGame
{
public partial class ElementFolder
{
private void QuickCopy(Vector3 unitPositionOffset, Vector3 unitRotationOffset, Vector3 unitScaleOffset, float unitTimeOffset, int iteration = 1)
{
if (iteration <= 0) return;
if (parentElement == null)
{
LogWindow.Log("Folder QuickCopy requires a parent element.", Color.red);
return;
}
CopyPasteDeleteModule cpd = EditorManager.instance.operationManager.CopyPasteDeleteModule;
cpd.CopyElement(this);
for (int i = 1; i <= iteration; i++)
{
ElementFolder newFolder = cpd.PasteElementRaw(this, parentElement) as ElementFolder;
if (newFolder == null) continue;
Vector3 positionOffset = unitPositionOffset * i;
Vector3 rotationOffset = unitRotationOffset * i;
Vector3 scaleOffset = unitScaleOffset * i;
float timeOffset = unitTimeOffset * i;
newFolder.ApplyFolderPositionOffset(positionOffset);
newFolder.ApplyFolderRotationOffset(rotationOffset);
newFolder.ApplyFolderScaleOffset(scaleOffset);
newFolder.ApplyElementFolderTimeOffsetRecursive(timeOffset, true);
newFolder.Refresh();
}
cpd.pastedElementList?.Clear();
}
private void ApplyFolderPositionOffset(Vector3 positionOffset)
{
if (transformSubmodule == null) return;
transformSubmodule.originalPosition += positionOffset;
transformSubmodule.Refresh();
}
private void ApplyFolderRotationOffset(Vector3 rotationOffset)
{
if (transformSubmodule == null) return;
transformSubmodule.originalEulerAngles += rotationOffset;
transformSubmodule.Refresh();
}
private void ApplyFolderScaleOffset(Vector3 scaleOffset)
{
if (transformSubmodule == null) return;
transformSubmodule.originalScale += scaleOffset;
transformSubmodule.Refresh();
}
private void ApplyElementFolderTimeOffsetRecursive(float offset, bool affectNotes)
{
List<GameElement> elements = GetAllGameElementsFromThis();
for (int i = 0; i < elements.Count; i++)
{
ApplyQuickCopyTimeOffsetToElement(elements[i], offset, affectNotes);
}
}
private static void ApplyQuickCopyTimeOffsetToElement(GameElement element, float offset, bool affectNotes)
{
if (element == null) return;
try
{
switch (element)
{
case AnimationBase animation:
animation.ApplyTimeOffset(offset);
animation.Refresh();
return;
case NoteBase note:
if (!affectNotes) return;
note.exactJudgeTime += offset;
if (note is Hold hold)
{
hold.holdEndTime += offset;
}
ApplyDurationOffset(note, offset, true);
note.UpdateNoteInTrack(EditorManager.instance.songInformation.songTime);
note.AddinNoteManager(false);
note.Refresh();
return;
case Track track:
ApplyDurationOffset(track, offset, true);
if (track.trackTimeSubmodule is TrackTimeSubmoduleMovable movable)
{
movable.trackStartTime += offset;
movable.trackEndTime += offset;
movable.Refresh();
}
track.Refresh();
return;
case TrackPercentPoint trackPercentPoint:
trackPercentPoint.trackPercent?.ApplyTimeOffset(offset);
ApplyDurationOffset(trackPercentPoint, offset, true);
trackPercentPoint.Refresh();
return;
case CrossTrackPoint crossTrackPoint:
ApplyFlexibleIntTimeOffset(crossTrackPoint.trackSwitch, offset);
crossTrackPoint.trackPercent?.ApplyTimeOffset(offset);
ApplyDurationOffset(crossTrackPoint, offset, true);
crossTrackPoint.Refresh();
return;
case TimeEffectsCollection timeEffectsCollection:
timeEffectsCollection.time += offset;
timeEffectsCollection.Refresh();
return;
case ParticleEmitter particleEmitter:
particleEmitter.playTime += offset;
particleEmitter.stopTime += offset;
ApplyDurationOffset(particleEmitter, offset, true);
particleEmitter.Refresh();
return;
case ParticleTracker particleTracker:
particleTracker.playTime += offset;
particleTracker.stopTime += offset;
particleTracker.Refresh();
return;
case ObjectTracker objectTracker:
objectTracker.playTime += offset;
objectTracker.stopTime += offset;
objectTracker.Refresh();
return;
case SkyboxSubsetter skyboxSubsetter:
if (skyboxSubsetter.blendTimeList != null)
{
for (int i = 0; i < skyboxSubsetter.blendTimeList.Count; i++)
{
skyboxSubsetter.blendTimeList[i] += offset;
}
}
skyboxSubsetter.Refresh();
return;
case DTMTrail dtmTrail:
dtmTrail.ApplyTimeOffset(offset);
dtmTrail.Refresh();
return;
case IHaveTimeDurationSubmodule hasDuration:
ApplyDurationOffset(hasDuration, offset, true);
element.Refresh();
return;
}
}
catch (System.Exception ex)
{
Debug.LogError($"[ElementFolderQuickCopy] Time offset failed on '{element.elementName}' ({element.GetType().Name}): {ex.Message}\n{ex.StackTrace}");
}
}
private static void ApplyDurationOffset(IHaveTimeDurationSubmodule element, float offset, bool onlyWhenOverriding)
{
TimeDurationSubmodule duration = element.timeDurationSubmodule;
if (duration == null) return;
if (onlyWhenOverriding && !duration.isOverridingDuration) return;
duration.startTime += offset;
duration.endTime += offset;
}
private static void ApplyFlexibleIntTimeOffset(FlexibleInt flexibleInt, float offset)
{
if (flexibleInt?.animations == null) return;
for (int i = 0; i < flexibleInt.animations.Count; i++)
{
flexibleInt.animations[i].ApplyTimeOffset(offset);
}
}
}
}

View File

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

View File

@@ -53,6 +53,42 @@ namespace Ichni.RhythmGame
}) })
.Section("Tools", sectionOrder: 40) .Section("Tools", sectionOrder: 40)
.Button("QuickCopy", () =>
{
var inspectorMain = EditorManager.instance.uiManager.inspector;
IHaveInspection qcWindow = inspectorMain.GenerateSecondaryWindow(this, elementName + "'s Quick Copy");
var qcContainer = qcWindow.GenerateContainer();
var positionSub = qcContainer.GenerateSubcontainer(3);
var xField = qcWindow.GenerateInputField(positionSub, "X offset", "0");
var yField = qcWindow.GenerateInputField(positionSub, "Y offset", "0");
var zField = qcWindow.GenerateInputField(positionSub, "Z offset", "0");
var rotationSub = qcContainer.GenerateSubcontainer(3);
var rxField = qcWindow.GenerateInputField(rotationSub, "RX offset", "0");
var ryField = qcWindow.GenerateInputField(rotationSub, "RY offset", "0");
var rzField = qcWindow.GenerateInputField(rotationSub, "RZ offset", "0");
var scaleSub = qcContainer.GenerateSubcontainer(3);
var sxField = qcWindow.GenerateInputField(scaleSub, "SX offset", "0");
var syField = qcWindow.GenerateInputField(scaleSub, "SY offset", "0");
var szField = qcWindow.GenerateInputField(scaleSub, "SZ offset", "0");
var timeSub = qcContainer.GenerateSubcontainer(3);
var timeField = qcWindow.GenerateInputField(timeSub, "Time offset", "0");
var iterationField = qcWindow.GenerateInputField(timeSub, "Iteration", "1");
qcWindow.GenerateButton(this, timeSub, "Copy", () =>
{
Vector3 positionOffset = new Vector3(xField.GetValue<float>(), yField.GetValue<float>(), zField.GetValue<float>());
Vector3 rotationOffset = new Vector3(rxField.GetValue<float>(), ryField.GetValue<float>(), rzField.GetValue<float>());
Vector3 scaleOffset = new Vector3(sxField.GetValue<float>(), syField.GetValue<float>(), szField.GetValue<float>());
float timeOffset = timeField.GetValue<float>();
int iteration = iterationField.GetValue<int>();
QuickCopy(positionOffset, rotationOffset, scaleOffset, timeOffset, iteration);
});
})
.Span(3)
.Button("Time Shift Tool", () => .Button("Time Shift Tool", () =>
{ {
GeneralSecondaryWindow timeShiftWindow = UnityEngine.Object.Instantiate( GeneralSecondaryWindow timeShiftWindow = UnityEngine.Object.Instantiate(
@@ -114,81 +150,9 @@ namespace Ichni.RhythmGame
public void ApplyTimeShiftRecursive(bool affectNotes, float offset) public void ApplyTimeShiftRecursive(bool affectNotes, float offset)
{ {
ApplyTimeShiftToElement(this, affectNotes, offset); ApplyElementFolderTimeOffsetRecursive(offset, affectNotes);
} }
/// <summary>
/// 递归偏移元素及其所有子元素的时间参数。
/// 处理顺序:先偏移当前元素,再递归处理子元素。
/// </summary>
private void ApplyTimeShiftToElement(GameElement element, bool affectNotes, float offset)
{
try
{
if (element == null) return;
switch (element)
{
case AnimationBase anim:
anim.ApplyTimeOffset(offset);
anim.Refresh();
break;
case NoteBase note when affectNotes:
note.exactJudgeTime += offset;
if (note is Hold hold)
{
hold.holdEndTime += offset;
}
note.UpdateNoteInTrack(EditorManager.instance.songInformation.songTime);
note.AddinNoteManager(false);
note.Refresh();
break;
case Track track:
// 偏移 Track 自身的 timeDurationSubmodule
if (track.timeDurationSubmodule != null && track.timeDurationSubmodule.isOverridingDuration)
{
track.timeDurationSubmodule.startTime += offset;
track.timeDurationSubmodule.endTime += offset;
}
// 偏移 TrackTimeSubmodule 中的轨道起止时间
if (track.trackTimeSubmodule is TrackTimeSubmoduleMovable movable)
{
movable.trackStartTime += offset;
movable.trackEndTime += offset;
movable.Refresh();
}
track.Refresh();
break;
case DTMTrail dtmTrail:
dtmTrail.ApplyTimeOffset(offset);
dtmTrail.Refresh();
break;
// 泛型兜底:处理 TemporaryObject、ParticleEmitter、GameCamera、TimeEffectsCollection 等
// 所有实现了 IHaveTimeDurationSubmodule 但不属于上述类型的元素
case IHaveTimeDurationSubmodule hasDuration:
hasDuration.ApplyTimeOffset(offset);
break;
}
}
catch (System.Exception ex)
{
Debug.LogError($"[TimeShift] 处理元素 '{element?.elementName}' ({element?.GetType().Name}) 时出错: {ex.Message}\n{ex.StackTrace}");
}
// 使用快照副本进行安全迭代,防止子操作意外修改集合
if (element.childElementList != null && element.childElementList.Count > 0)
{
List<GameElement> snapshot = new List<GameElement>(element.childElementList);
for (int i = 0; i < snapshot.Count; i++)
{
ApplyTimeShiftToElement(snapshot[i], affectNotes, offset);
}
}
}
#endregion #endregion
} }
} }

View File

@@ -9,7 +9,7 @@ namespace Ichni.RhythmGame
/// <summary> /// <summary>
/// 将物体的z轴指向目标物体注意LookAt的启用期间物体的旋转将被锁定 /// 将物体的z轴指向目标物体注意LookAt的启用期间物体的旋转将被锁定
/// </summary> /// </summary>
public partial class LookAt : AnimationBase public partial class LookAt : AnimationBase, IPastedReferenceResolver
{ {
#region [] Property Caches #region [] Property Caches
public GameCamera gameCamera; public GameCamera gameCamera;
@@ -98,6 +98,22 @@ namespace Ichni.RhythmGame
enabling.animations.ForEach(anim => anim.ApplyTimeOffset(offset)); enabling.animations.ForEach(anim => anim.ApplyTimeOffset(offset));
} }
public void ResolvePastedReferences(IReadOnlyDictionary<Guid, GameElement> pastedElementBySourceGuid)
{
if (lookAtObject == null) return;
if (pastedElementBySourceGuid.TryGetValue(lookAtObject.elementGuid, out GameElement pastedTarget))
{
lookAtObject = pastedTarget;
targetTransformSubmodule = (animatedObject as IHaveTransformSubmodule)?.transformSubmodule;
if (targetTransformSubmodule != null)
{
targetTransformSubmodule.lookAt = this;
targetTransformSubmodule.eulerAnglesDirtyMark = true;
}
}
}
public void OnDestroy() public void OnDestroy()
{ {
targetTransformSubmodule.eulerAnglesDirtyMark = true; targetTransformSubmodule.eulerAnglesDirtyMark = true;
@@ -112,4 +128,4 @@ namespace Ichni.RhythmGame
} }
#endregion #endregion
} }
} }

View File

@@ -10,7 +10,7 @@ namespace Ichni.RhythmGame
/// Synchronizes this element's world position to another transform-bearing element. /// Synchronizes this element's world position to another transform-bearing element.
/// The target world position is converted back into this element parent's local space. /// The target world position is converted back into this element parent's local space.
/// </summary> /// </summary>
public partial class PositionSync : AnimationBase public partial class PositionSync : AnimationBase, IPastedReferenceResolver
{ {
#region [] Property Caches #region [] Property Caches
public TransformSubmodule targetTransformSubmodule; public TransformSubmodule targetTransformSubmodule;
@@ -114,6 +114,21 @@ namespace Ichni.RhythmGame
enabling?.animations.ForEach(anim => anim.ApplyTimeOffset(offset)); enabling?.animations.ForEach(anim => anim.ApplyTimeOffset(offset));
} }
public void ResolvePastedReferences(IReadOnlyDictionary<Guid, GameElement> pastedElementBySourceGuid)
{
if (syncTargetObject == null) return;
if (pastedElementBySourceGuid.TryGetValue(syncTargetObject.elementGuid, out GameElement pastedTarget))
{
syncTargetObject = pastedTarget;
targetTransformSubmodule = (animatedObject as IHaveTransformSubmodule)?.transformSubmodule;
if (targetTransformSubmodule != null)
{
targetTransformSubmodule.positionDirtyMark = true;
}
}
}
public void OnDestroy() public void OnDestroy()
{ {
if (targetTransformSubmodule != null) if (targetTransformSubmodule != null)

View File

@@ -1,4 +1,5 @@
using System.Collections; using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Ichni.Editor.Commands; using Ichni.Editor.Commands;
@@ -110,10 +111,11 @@ namespace Ichni.Editor
} }
} }
public class CopyPasteDeleteModule public class CopyPasteDeleteModule
{ {
public GameElement copiedElement; public GameElement copiedElement;
public List<GameElement> pastedElementList; public List<GameElement> pastedElementList;
private Dictionary<Guid, GameElement> pastedElementBySourceGuid;
public void CopyElement(GameElement gameElement) public void CopyElement(GameElement gameElement)
{ {
@@ -150,7 +152,9 @@ namespace Ichni.Editor
LogWindow.Log("Pasted element: " + sourceElement.elementName + " to " + parentElement.elementName); LogWindow.Log("Pasted element: " + sourceElement.elementName + " to " + parentElement.elementName);
pastedElementList = new List<GameElement>(); pastedElementList = new List<GameElement>();
pastedElementBySourceGuid = new Dictionary<Guid, GameElement>();
AffiliatedPaste(sourceElement, parentElement); AffiliatedPaste(sourceElement, parentElement);
ResolvePastedReferences();
// 粘贴完成后,对所有新生成的元素执行 AfterInitialize 和 Refresh // 粘贴完成后,对所有新生成的元素执行 AfterInitialize 和 Refresh
// 与 EditorManager.LoadProject 的加载后流程对齐,确保 Manager 注册等关键步骤不遗漏。 // 与 EditorManager.LoadProject 的加载后流程对齐,确保 Manager 注册等关键步骤不遗漏。
@@ -164,6 +168,19 @@ namespace Ichni.Editor
return pastedElementList.FirstOrDefault(); return pastedElementList.FirstOrDefault();
} }
private void ResolvePastedReferences()
{
if (pastedElementBySourceGuid == null || pastedElementBySourceGuid.Count == 0) return;
foreach (GameElement pastedElement in pastedElementList)
{
if (pastedElement is IPastedReferenceResolver referenceResolver)
{
referenceResolver.ResolvePastedReferences(pastedElementBySourceGuid);
}
}
}
public void DeleteElement(GameElement gameElement) public void DeleteElement(GameElement gameElement)
{ {
if (gameElement == null) if (gameElement == null)
@@ -229,9 +246,10 @@ namespace Ichni.Editor
LogWindow.Log("Paste failed: " + gameElement.elementName + " could not be duplicated.", Color.red); LogWindow.Log("Paste failed: " + gameElement.elementName + " could not be duplicated.", Color.red);
return; return;
} }
pastedElementList.Add(pastedElement); pastedElementList.Add(pastedElement);
pastedElementBySourceGuid[gameElement.elementGuid] = pastedElement;
gameElement.submoduleList.ForEach(submodule => gameElement.submoduleList.ForEach(submodule =>
{ {
if (submodule == null) return; if (submodule == null) return;
@@ -254,7 +272,12 @@ namespace Ichni.Editor
AffiliatedPaste(Element, pastedElement); AffiliatedPaste(Element, pastedElement);
} }
} }
} }
} }
}
public interface IPastedReferenceResolver
{
void ResolvePastedReferences(IReadOnlyDictionary<Guid, GameElement> pastedElementBySourceGuid);
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,7 @@
"creatorName" : "TR", "creatorName" : "TR",
"editorVersion" : "0.1.0", "editorVersion" : "0.1.0",
"createTime" : "2026\/7\/14 23:27:03", "createTime" : "2026\/7\/14 23:27:03",
"lastSaveTime" : "2026\/7\/14 23:27:07", "lastSaveTime" : "2026\/7\/23 15:37:53",
"selectedThemeBundleList" : [ "selectedThemeBundleList" : [
"basic","departure_to_multiverse" "basic","departure_to_multiverse"
], ],

View File

@@ -5,12 +5,12 @@
"elementList" : [ "elementList" : [
{ {
"__type" : "Ichni.RhythmGame.Beatmap.ElementFolder_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.ElementFolder_BM,Assembly-CSharp",
"elementName" : "New Element Folder", "elementName" : "Folder",
"tags" : [ "tags" : [
], ],
"elementGuid" : { "elementGuid" : {
"value" : "c6f2f459-5b6d-419c-b06b-9e741678344a" "value" : "f3ad7cbc-c238-4053-8276-e20ca96a9849"
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "00000000-0000-0000-0000-000000000000" "value" : "00000000-0000-0000-0000-000000000000"
@@ -33,7 +33,7 @@
"z" : 1 "z" : 1
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "c6f2f459-5b6d-419c-b06b-9e741678344a" "value" : "f3ad7cbc-c238-4053-8276-e20ca96a9849"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -41,19 +41,19 @@
"startTime" : -32767, "startTime" : -32767,
"endTime" : 32767, "endTime" : 32767,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "c6f2f459-5b6d-419c-b06b-9e741678344a" "value" : "f3ad7cbc-c238-4053-8276-e20ca96a9849"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.Track_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.ElementFolder_BM,Assembly-CSharp",
"elementName" : "New Track (0)", "elementName" : "New Element Folder",
"tags" : [ "tags" : [
], ],
"elementGuid" : { "elementGuid" : {
"value" : "6a53bb3d-8d64-4bfc-8a25-60af92c2e194" "value" : "2728e58c-26bb-4714-b13e-734a07946581"
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "c6f2f459-5b6d-419c-b06b-9e741678344a" "value" : "f3ad7cbc-c238-4053-8276-e20ca96a9849"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
@@ -73,7 +73,47 @@
"z" : 1 "z" : 1
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "6a53bb3d-8d64-4bfc-8a25-60af92c2e194" "value" : "2728e58c-26bb-4714-b13e-734a07946581"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "2728e58c-26bb-4714-b13e-734a07946581"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Track_BM,Assembly-CSharp",
"elementName" : "New Track (0)",
"tags" : [
],
"elementGuid" : {
"value" : "99019f51-009c-49d9-95a0-b82e1d81ef56"
},
"attachedElementGuid" : {
"value" : "2728e58c-26bb-4714-b13e-734a07946581"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalEulerAngles" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalScale" : {
"x" : 1,
"y" : 1,
"z" : 1
},
"attachedElementGuid" : {
"value" : "99019f51-009c-49d9-95a0-b82e1d81ef56"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -81,7 +121,7 @@
"startTime" : 0, "startTime" : 0,
"endTime" : 161.098, "endTime" : 161.098,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "6a53bb3d-8d64-4bfc-8a25-60af92c2e194" "value" : "99019f51-009c-49d9-95a0-b82e1d81ef56"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TrackPathSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TrackPathSubmodule_BM,Assembly-CSharp",
@@ -91,7 +131,7 @@
"isShowingDisplay" : false, "isShowingDisplay" : false,
"sampleRate" : 8, "sampleRate" : 8,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "6a53bb3d-8d64-4bfc-8a25-60af92c2e194" "value" : "99019f51-009c-49d9-95a0-b82e1d81ef56"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TrackTimeSubmoduleMovable_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TrackTimeSubmoduleMovable_BM,Assembly-CSharp",
@@ -100,7 +140,7 @@
"visibleTrackTimeLength" : 999, "visibleTrackTimeLength" : 999,
"animationCurveType" : 0, "animationCurveType" : 0,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "6a53bb3d-8d64-4bfc-8a25-60af92c2e194" "value" : "99019f51-009c-49d9-95a0-b82e1d81ef56"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TrackRendererSubmoduleAutoOrient_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TrackRendererSubmoduleAutoOrient_BM,Assembly-CSharp",
@@ -123,7 +163,7 @@
"uvRotation" : 0, "uvRotation" : 0,
"size" : 1, "size" : 1,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "6a53bb3d-8d64-4bfc-8a25-60af92c2e194" "value" : "99019f51-009c-49d9-95a0-b82e1d81ef56"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp",
@@ -133,10 +173,10 @@
], ],
"elementGuid" : { "elementGuid" : {
"value" : "9bd02980-ac41-487a-80f8-913d547036a4" "value" : "b79a50a7-f646-4cae-be0c-f26c87a4b45c"
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "6a53bb3d-8d64-4bfc-8a25-60af92c2e194" "value" : "99019f51-009c-49d9-95a0-b82e1d81ef56"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
@@ -156,7 +196,7 @@
"z" : 0.1 "z" : 0.1
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "9bd02980-ac41-487a-80f8-913d547036a4" "value" : "b79a50a7-f646-4cae-be0c-f26c87a4b45c"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -164,7 +204,7 @@
"startTime" : -32767, "startTime" : -32767,
"endTime" : 32767, "endTime" : 32767,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "9bd02980-ac41-487a-80f8-913d547036a4" "value" : "b79a50a7-f646-4cae-be0c-f26c87a4b45c"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
@@ -183,7 +223,7 @@
}, },
"originalEmissionIntensity" : 0, "originalEmissionIntensity" : 0,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "9bd02980-ac41-487a-80f8-913d547036a4" "value" : "b79a50a7-f646-4cae-be0c-f26c87a4b45c"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp",
@@ -193,10 +233,10 @@
], ],
"elementGuid" : { "elementGuid" : {
"value" : "a6f276a7-d6f4-40c4-9f3d-16c397a32159" "value" : "1f42e21b-311c-4474-b035-47dad87896e4"
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "6a53bb3d-8d64-4bfc-8a25-60af92c2e194" "value" : "99019f51-009c-49d9-95a0-b82e1d81ef56"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
@@ -216,7 +256,7 @@
"z" : 0.1 "z" : 0.1
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "a6f276a7-d6f4-40c4-9f3d-16c397a32159" "value" : "1f42e21b-311c-4474-b035-47dad87896e4"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -224,7 +264,7 @@
"startTime" : -32767, "startTime" : -32767,
"endTime" : 32767, "endTime" : 32767,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "a6f276a7-d6f4-40c4-9f3d-16c397a32159" "value" : "1f42e21b-311c-4474-b035-47dad87896e4"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
@@ -243,7 +283,7 @@
}, },
"originalEmissionIntensity" : 0, "originalEmissionIntensity" : 0,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "a6f276a7-d6f4-40c4-9f3d-16c397a32159" "value" : "1f42e21b-311c-4474-b035-47dad87896e4"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp",
@@ -253,10 +293,10 @@
], ],
"elementGuid" : { "elementGuid" : {
"value" : "0362e2f1-3b95-4bd8-912c-e8769f8a537b" "value" : "b6d47ffe-2b4f-406e-bd65-99b729b703b1"
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "6a53bb3d-8d64-4bfc-8a25-60af92c2e194" "value" : "99019f51-009c-49d9-95a0-b82e1d81ef56"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
@@ -276,7 +316,7 @@
"z" : 0.1 "z" : 0.1
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "0362e2f1-3b95-4bd8-912c-e8769f8a537b" "value" : "b6d47ffe-2b4f-406e-bd65-99b729b703b1"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -284,7 +324,7 @@
"startTime" : -32767, "startTime" : -32767,
"endTime" : 32767, "endTime" : 32767,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "0362e2f1-3b95-4bd8-912c-e8769f8a537b" "value" : "b6d47ffe-2b4f-406e-bd65-99b729b703b1"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
@@ -303,7 +343,7 @@
}, },
"originalEmissionIntensity" : 0, "originalEmissionIntensity" : 0,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "0362e2f1-3b95-4bd8-912c-e8769f8a537b" "value" : "b6d47ffe-2b4f-406e-bd65-99b729b703b1"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp",
@@ -313,10 +353,10 @@
], ],
"elementGuid" : { "elementGuid" : {
"value" : "d101b4a0-41c5-4fe9-86df-4a93ab0a64e2" "value" : "579c9d13-0b05-4788-ba05-e0dd711cd9b2"
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "6a53bb3d-8d64-4bfc-8a25-60af92c2e194" "value" : "99019f51-009c-49d9-95a0-b82e1d81ef56"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
@@ -336,7 +376,7 @@
"z" : 0.1 "z" : 0.1
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "d101b4a0-41c5-4fe9-86df-4a93ab0a64e2" "value" : "579c9d13-0b05-4788-ba05-e0dd711cd9b2"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -344,7 +384,7 @@
"startTime" : -32767, "startTime" : -32767,
"endTime" : 32767, "endTime" : 32767,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "d101b4a0-41c5-4fe9-86df-4a93ab0a64e2" "value" : "579c9d13-0b05-4788-ba05-e0dd711cd9b2"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
@@ -363,7 +403,38 @@
}, },
"originalEmissionIntensity" : 0, "originalEmissionIntensity" : 0,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "d101b4a0-41c5-4fe9-86df-4a93ab0a64e2" "value" : "579c9d13-0b05-4788-ba05-e0dd711cd9b2"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.PositionSync_BM,Assembly-CSharp",
"enabling" : {
"animatedBoolList" : [
{
"value" : true,
"time" : 0
}
]
},
"syncTargetObjectGuid" : {
"value" : "25c0ae0b-6862-4554-9edf-02f5e8e32f6e"
},
"elementName" : "New PathNode-movement-sync",
"tags" : [
],
"elementGuid" : {
"value" : "ec4e595b-ef2b-4ecd-ba2a-07f18bfdf290"
},
"attachedElementGuid" : {
"value" : "579c9d13-0b05-4788-ba05-e0dd711cd9b2"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "ec4e595b-ef2b-4ecd-ba2a-07f18bfdf290"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.Track_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.Track_BM,Assembly-CSharp",
@@ -372,10 +443,10 @@
], ],
"elementGuid" : { "elementGuid" : {
"value" : "d4b5f834-034e-442a-8497-b919fb9e3767" "value" : "2dcfde0c-3336-4498-a331-c71061d2181b"
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "6a53bb3d-8d64-4bfc-8a25-60af92c2e194" "value" : "99019f51-009c-49d9-95a0-b82e1d81ef56"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
@@ -395,7 +466,7 @@
"z" : 1 "z" : 1
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "d4b5f834-034e-442a-8497-b919fb9e3767" "value" : "2dcfde0c-3336-4498-a331-c71061d2181b"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -403,7 +474,7 @@
"startTime" : -32767, "startTime" : -32767,
"endTime" : 32767, "endTime" : 32767,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "d4b5f834-034e-442a-8497-b919fb9e3767" "value" : "2dcfde0c-3336-4498-a331-c71061d2181b"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TrackPathSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TrackPathSubmodule_BM,Assembly-CSharp",
@@ -413,7 +484,7 @@
"isShowingDisplay" : false, "isShowingDisplay" : false,
"sampleRate" : 8, "sampleRate" : 8,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "d4b5f834-034e-442a-8497-b919fb9e3767" "value" : "2dcfde0c-3336-4498-a331-c71061d2181b"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp",
@@ -423,10 +494,10 @@
], ],
"elementGuid" : { "elementGuid" : {
"value" : "8df92119-e676-4593-b526-90756c0024db" "value" : "dec6a9e5-6a35-470c-96af-266fd1e5e8f9"
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "d4b5f834-034e-442a-8497-b919fb9e3767" "value" : "2dcfde0c-3336-4498-a331-c71061d2181b"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
@@ -446,7 +517,7 @@
"z" : 1 "z" : 1
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "8df92119-e676-4593-b526-90756c0024db" "value" : "dec6a9e5-6a35-470c-96af-266fd1e5e8f9"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -454,7 +525,7 @@
"startTime" : -32767, "startTime" : -32767,
"endTime" : 32767, "endTime" : 32767,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "8df92119-e676-4593-b526-90756c0024db" "value" : "dec6a9e5-6a35-470c-96af-266fd1e5e8f9"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
@@ -473,7 +544,7 @@
}, },
"originalEmissionIntensity" : 0, "originalEmissionIntensity" : 0,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "8df92119-e676-4593-b526-90756c0024db" "value" : "dec6a9e5-6a35-470c-96af-266fd1e5e8f9"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp",
@@ -483,10 +554,10 @@
], ],
"elementGuid" : { "elementGuid" : {
"value" : "95f50c60-71c0-470d-8a6e-9decf319db61" "value" : "74b55930-03df-4511-ba64-bcaab51efe7e"
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "d4b5f834-034e-442a-8497-b919fb9e3767" "value" : "2dcfde0c-3336-4498-a331-c71061d2181b"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
@@ -506,7 +577,7 @@
"z" : 1 "z" : 1
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "95f50c60-71c0-470d-8a6e-9decf319db61" "value" : "74b55930-03df-4511-ba64-bcaab51efe7e"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -514,7 +585,7 @@
"startTime" : -32767, "startTime" : -32767,
"endTime" : 32767, "endTime" : 32767,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "95f50c60-71c0-470d-8a6e-9decf319db61" "value" : "74b55930-03df-4511-ba64-bcaab51efe7e"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
@@ -533,7 +604,7 @@
}, },
"originalEmissionIntensity" : 0, "originalEmissionIntensity" : 0,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "95f50c60-71c0-470d-8a6e-9decf319db61" "value" : "74b55930-03df-4511-ba64-bcaab51efe7e"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp",
@@ -543,10 +614,10 @@
], ],
"elementGuid" : { "elementGuid" : {
"value" : "f6016204-f5ba-4e2d-a9c7-25f59f628d6c" "value" : "06491ebb-ccf1-47d4-9399-89fdee4d35dd"
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "d4b5f834-034e-442a-8497-b919fb9e3767" "value" : "2dcfde0c-3336-4498-a331-c71061d2181b"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
@@ -566,7 +637,7 @@
"z" : 1 "z" : 1
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "f6016204-f5ba-4e2d-a9c7-25f59f628d6c" "value" : "06491ebb-ccf1-47d4-9399-89fdee4d35dd"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -574,7 +645,7 @@
"startTime" : -32767, "startTime" : -32767,
"endTime" : 32767, "endTime" : 32767,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "f6016204-f5ba-4e2d-a9c7-25f59f628d6c" "value" : "06491ebb-ccf1-47d4-9399-89fdee4d35dd"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
@@ -593,7 +664,7 @@
}, },
"originalEmissionIntensity" : 0, "originalEmissionIntensity" : 0,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "f6016204-f5ba-4e2d-a9c7-25f59f628d6c" "value" : "06491ebb-ccf1-47d4-9399-89fdee4d35dd"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TrackPercentPoint_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TrackPercentPoint_BM,Assembly-CSharp",
@@ -614,10 +685,10 @@
], ],
"elementGuid" : { "elementGuid" : {
"value" : "d7882bc8-3ec4-4d2c-b9a2-fb1445492a13" "value" : "63e8e1e4-9b1e-422e-8137-779ed750f7f7"
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "d4b5f834-034e-442a-8497-b919fb9e3767" "value" : "2dcfde0c-3336-4498-a331-c71061d2181b"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -625,19 +696,19 @@
"startTime" : -32767, "startTime" : -32767,
"endTime" : 32767, "endTime" : 32767,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "d7882bc8-3ec4-4d2c-b9a2-fb1445492a13" "value" : "63e8e1e4-9b1e-422e-8137-779ed750f7f7"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.ElementFolder_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.ElementFolder_BM,Assembly-CSharp",
"elementName" : "New PathNode-movement-anchor", "elementName" : "New PathNode-movement-anchor121",
"tags" : [ "tags" : [
], ],
"elementGuid" : { "elementGuid" : {
"value" : "a8962c9a-ddd3-48be-bd5c-bca8730ce7d5" "value" : "25c0ae0b-6862-4554-9edf-02f5e8e32f6e"
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "d7882bc8-3ec4-4d2c-b9a2-fb1445492a13" "value" : "63e8e1e4-9b1e-422e-8137-779ed750f7f7"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
@@ -657,7 +728,7 @@
"z" : 1 "z" : 1
}, },
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "a8962c9a-ddd3-48be-bd5c-bca8730ce7d5" "value" : "25c0ae0b-6862-4554-9edf-02f5e8e32f6e"
} }
},{ },{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp", "__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -665,38 +736,7 @@
"startTime" : -32767, "startTime" : -32767,
"endTime" : 32767, "endTime" : 32767,
"attachedElementGuid" : { "attachedElementGuid" : {
"value" : "a8962c9a-ddd3-48be-bd5c-bca8730ce7d5" "value" : "25c0ae0b-6862-4554-9edf-02f5e8e32f6e"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.PositionSync_BM,Assembly-CSharp",
"enabling" : {
"animatedBoolList" : [
{
"value" : true,
"time" : 0
}
]
},
"syncTargetObjectGuid" : {
"value" : "a8962c9a-ddd3-48be-bd5c-bca8730ce7d5"
},
"elementName" : "New PathNode-movement-sync",
"tags" : [
],
"elementGuid" : {
"value" : "fbe180ac-0bf6-4071-a9de-12d82d7237b5"
},
"attachedElementGuid" : {
"value" : "d101b4a0-41c5-4fe9-86df-4a93ab0a64e2"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "fbe180ac-0bf6-4071-a9de-12d82d7237b5"
} }
} }
], ],

View File

@@ -6,7 +6,7 @@
"creatorName" : "TR", "creatorName" : "TR",
"editorVersion" : "0.1.0", "editorVersion" : "0.1.0",
"createTime" : "2026\/7\/22 14:02:51", "createTime" : "2026\/7\/22 14:02:51",
"lastSaveTime" : "2026\/7\/22 14:13:50", "lastSaveTime" : "2026\/7\/24 23:09:22",
"selectedThemeBundleList" : [ "selectedThemeBundleList" : [
"basic","departure_to_multiverse" "basic","departure_to_multiverse"
], ],

View File

@@ -1,6 +1,6 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
UnityVersion: 6000.3.7f1 UnityVersion: 6000.3.7f1
CRC: 160404636 CRC: 1957161009
HashAppended: 0 HashAppended: 0
AssetBundleManifest: AssetBundleManifest:
AssetBundleInfos: AssetBundleInfos:

View File

@@ -1,16 +1,16 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
UnityVersion: 6000.3.7f1 UnityVersion: 6000.3.7f1
CRC: 1473640568 CRC: 2242414026
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: f3e7a91b00f9879bf37bcc2f810f8479 Hash: 0e7206dd29b8268294331a78977c8536
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 18cfab2a6b4e689dd1e9255aa8b69d98 Hash: 18cfab2a6b4e689dd1e9255aa8b69d98
IncrementalBuildHash: IncrementalBuildHash:
serializedVersion: 2 serializedVersion: 2
Hash: 7709e7ef4e06ade3df72796f7cbe6363 Hash: 1517537eb03513b66050c58be6d607e9
HashAppended: 0 HashAppended: 0
ClassTypes: ClassTypes:
- Class: 1 - Class: 1

File diff suppressed because one or more lines are too long

View File

@@ -149,6 +149,10 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
public override void ApplyTimeOffset(float offset) public override void ApplyTimeOffset(float offset)
{ {
base.ApplyTimeOffset(offset); base.ApplyTimeOffset(offset);
visibleTimeLength?.ApplyTimeOffset(offset);
headRotateSpeed?.ApplyTimeOffset(offset);
if (enableTimes?.animations == null) return;
foreach (AnimatedBool animBool in enableTimes.animations) foreach (AnimatedBool animBool in enableTimes.animations)
{ {
animBool.time += offset; animBool.time += offset;
@@ -319,4 +323,4 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
} }
#endregion #endregion
} }
} }