Merge branch 'develop' into feature/hp_swim

This commit is contained in:
Tungdv
2026-02-11 16:38:22 +07:00
345 changed files with 855374 additions and 15624 deletions
@@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: 712e3991f28e549e7a56ee582a977810
m_currentHash:
serializedVersion: 2
Hash: f31c7227b70701eab297439e808bd57d
Hash: 00000000000000000000000000000000
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 0
m_CatalogRequestsTimeout: 0
@@ -21,6 +21,54 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 10169acfafd56cb4989fd9a95cd7a098
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u98CE\u5377\u6B8B\u4E91\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 12232fbad2bd06343bd1d2546c48f064
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u98DE\u884C/\u843D\u77F3\u672F\u98DE\u884C\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 17ec0af14fc18304187c2395b1b9d6d1
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u9F99\u817E.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1965dcd1fa366c3409c80082628b128f
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u864E\u51FB.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 19d3b28c1fe13e24f8f601297e266dc0
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u5251\u6C14\u7EB5\u6A2A\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1c483678cadbac74da2a4f060c1b934a
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u98DE\u884C/\u70C8\u706B\u7B26\u65BD\u653E.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 21c4fc3924942124db60bcfb3e38cbf3
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u5251\u6C14\u7EB5\u6A2A.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 21f47d2368f38ec448512368fdfb8f7a
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u6A2A\u626B\u5343\u519B.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 26864002ccb91ea4686581d06a326393
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u8F6F\u97AD\u51FB\u4E2D.gfx"
m_ReadOnly: 0
@@ -33,36 +81,156 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 28da0ed345b9a414687404e0e0fd6aaa
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u5203\u57DF.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2de59d4c1c067624b8f212bcbfdb95a5
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u65A7\u9524\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 30be7771319e90243add03af4b36cb63
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u4E91\u9F99\u4E5D\u73B0\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 39a8f3a67a40fc64ba315fa7d0cd7d0d
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u864E\u8DC3.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 3cd3799093e5762469213486f32178a6
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u65AD\u5CA9\u65A9\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4237c380ab3163d44914252054286569
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6613\u7B4B\u7ECF.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 42e5b0010d11e6b40abf25110a01aec0
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u5315\u9996\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 44a8d5af73dd2144faaab469423efd34
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u8FFD\u9B42\u8BC0\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 45cb0d5a469bd984d851f8d818719fd9
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u72C2\u9F99\u65A9\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 48582ea91cdc6ab4a95e1b58797d046b
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u72EE\u5B50\u543C\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 48d68385409124f4f8615d769632af90
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u88C5\u5907\u5B9D\u77F3\u9576\u5D4C/\u78E8\u5200\u77F3\u5149\u6548\u751F\u547D\u589E\u5F3A3\u7EA73.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4ba6555f9591e474ca7ad39d11f3aa2e
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u88C5\u5907\u5B9D\u77F3\u9576\u5D4C/\u7D2B\u8272\u80F8\u75322\u7EA7.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4e30ab5d1448a9e4eade2883ecdc3fbe
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u6CD5\u9632\u7B26\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4f0545dd61d92d14ea210cb48687adee
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u6613\u7B4B\u7ECF.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5506e67742f173f4fb2bf6aaed22cdaf
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u4E91\u9F99\u4E5D\u73B0.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5611c5ccf57ca7641825dc386e3c86fa
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6D41\u6C34\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 562300fbee8052a499dfecadab60619a
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u8FFD\u9B42\u8BC0.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 56359c8538ad944449c78376634f11d0
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u864E\u8DC3.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5e6764d07538a5143be3f59ee9684b2b
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u5F13\u7BAD\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 65b993130889e5f469dcf1da0dd5b2e5
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u65AD\u5CA9\u65A9.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 699776b14948dd14d886b55af4accaf7
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u72C2\u9F99\u65A9.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6a08e4f8daa179e48aa569991adc0c52
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u65E0\u5F71\u811A.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6bc66e9a28699c44a93c55957b82048b
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u65E0\u5F71\u811A\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6d0aab545e293604f8eca6c3ad7a603e
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u706B\u67AA\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6d2f7b039a0e8a54ba8ccb1ee1b49e80
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u75BE\u98CE\u9739\u96F3.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6eb6b79c280811e4ab333b6dedbaf5a7
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u65E0\u6548\u653B\u51FB\u51FB\u4E2D.gfx"
m_ReadOnly: 0
@@ -81,6 +249,36 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 75e4b00fccdeefd449812973c7a69622
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u9F99\u73B0.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7887d4c9101722741b42a2a2392a6ada
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u88C5\u5907\u5B9D\u77F3\u9576\u5D4C/\u767D\u8272\u80F8\u75321\u7EA7.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7c756e961c3000c40a32ee5981dd5fa7
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u6D41\u6C34.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7f472aa8bebc5234296b0fe5a57e1003
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u51CC\u98CE.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8044c820dd2daa24f9b22cbc1c9e459d
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u88C5\u5907\u5B9D\u77F3\u9576\u5D4C/\u78E8\u5200\u77F3\u5149\u6548\u751F\u547D\u589E\u5F3A3\u7EA7\u5B50.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8104d64f80a70b24dba3a9267f0143f5
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u65B0\u79CD\u65CF_\u53CC\u624B\u957F\u666E\u901A\u51FB\u4E2D.gfx"
m_ReadOnly: 0
@@ -93,38 +291,194 @@ MonoBehaviour:
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 84a7d1e5df3d9cb449f8f8c39badc6a0
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u5288\u7A7A\u638C\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 88745aeb0241d0e449d1093e2e5a7f83
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u5203\u57DF\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8daa916544fd0414ba53e0671ba297a8
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u5BF8\u529B\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 92492712d1e006143a8f8307c52209a7
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6B66\u4FA0_\u51CC\u98CE\u6539_\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 948c28c528894e14bac4c8b3475e4eba
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u56DE\u9A6C\u67AA.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 98390588398b78041b8ca23a21d75e37
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u75BE\u98CE\u9739\u96F3\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 99f1f9422180d5b4495b7d3ea310c6b7
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u98DE\u884C/\u6D8C\u6CC9\u4E2D\u62DB.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9bd1bdc807ba3b744891c04647b7fd09
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u98DE\u884C/\u4E07\u5251\u8BC0\u98DE\u884C.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9c201cddd642b6c449e2f6db039af136
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u864E\u51FB\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ac9ab47105d466b499c86e20c7f31631
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u767D\u8001\u864E\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b1e7f6e966a98824293e3314434c6403
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u70C8\u706B\u526F\u7206\u70B8\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b23b2403475b3dd438639921dc03eb64
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u5288\u7A7A\u638C.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b56db4cc8cba926479fd5e309dc05260
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u88C5\u5907\u5B9D\u77F3\u9576\u5D4C/\u7D2B\u8272\u9774\u75322\u7EA7.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b5e11355f071db54197be3e9bdc74521
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u7130\u5149\u5F39\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: bfb664b6004e0b84cb577dc858846553
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u5BF8\u529B.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c1afba0bc5b5f644898e5134f7ccdec6
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u9F99\u73B0\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c1bc39d066ae88b4f90025c9ac61a280
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u98DE\u884C/\u5929\u706B\u72C2\u9F99\u98DE\u884C.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ca5346b8caa8687488cf931f4b844d1d
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6613\u9AD3\u7ECF.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: cd8645249ddb6e140aaa3381f8a510bb
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u6D41\u661F\u8D76\u6708.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d07df5ea2282211449d447c827ff6b7c
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6A2A\u626B\u5343\u519B\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d0f0111beed4fe341a5fa1439ebf9005
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u5200\u5251\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d2fe87cdd491ffb47bd5f3fc0b2d2381
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u51B0\u96F9\u98DE\u884C.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d855fb98b35e03c4fa7aad487db5a4d0
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u7A7A\u62F3\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d9444a0481d5b6c42be7eac759fecb03
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u4E07\u5251\u8BC0.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ddf37341503f2ef488489fce757e6f4b
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u72EE\u5B50\u543C.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: df9e9a4475c972341b1c7dfe44056b18
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6D41\u661F\u8D76\u6708\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e72f6686b98471f428704367f8e13504
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u6697\u5668\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: fbd68e1c27950834da622b6c092212da
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u6CD5\u653B\u7B26\u51FB\u4E2D2.gfx"
- m_GUID: f21ec74a0f368ca489770fe0ac41bf49
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u6613\u9AD3\u7ECF.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f7afdff4d28a54f4487905be81edc8a9
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u9738\u738B\u732E\u9F0E.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f9dd6984441411e418005801649a0f2b
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u98CE\u5377\u6B8B\u4E91.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: fc854068dbe0da3409a88bc92a0df4df
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u56DE\u9A6C\u67AA\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: fdd2bee325c891340b51cb6b30323a11
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u795E\u706B\u7B26\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- gfx
+294
View File
@@ -0,0 +1,294 @@
using UnityEngine;
using UnityEditor;
using System.IO;
namespace BrewMonster
{
public class PrefabMoverTool : EditorWindow
{
private Object folderRoot;
private string folderRootPath = "";
private string subfolderPath = "";
private Object prefabToMove;
private Vector2 scrollPosition;
private GUIStyle headerStyle;
private GUIStyle boxStyle;
[MenuItem("Tools/Prefab Mover")]
public static void ShowWindow()
{
PrefabMoverTool window = GetWindow<PrefabMoverTool>("Prefab Mover");
window.minSize = new Vector2(400, 300);
window.Show();
}
private void OnEnable()
{
// Initialize styles
InitializeStyles();
}
private void InitializeStyles()
{
if (headerStyle == null)
{
headerStyle = new GUIStyle(EditorStyles.boldLabel)
{
fontSize = 14,
alignment = TextAnchor.MiddleLeft,
margin = new RectOffset(5, 5, 10, 10)
};
}
if (boxStyle == null)
{
boxStyle = new GUIStyle(GUI.skin.box)
{
padding = new RectOffset(10, 10, 10, 10),
margin = new RectOffset(5, 5, 5, 5)
};
}
}
private void OnGUI()
{
InitializeStyles();
scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);
// Title
GUILayout.Label("Prefab Mover Tool", headerStyle);
EditorGUILayout.Space(5);
// Folder Root Section
EditorGUILayout.BeginVertical(boxStyle);
{
GUILayout.Label("1. Set Folder Root", EditorStyles.boldLabel);
EditorGUILayout.HelpBox("Drag and drop a folder from the Project window to set the root folder.", MessageType.Info);
EditorGUILayout.BeginHorizontal();
GUILayout.Label("Folder Root:", GUILayout.Width(100));
Object newFolderRoot = EditorGUILayout.ObjectField(folderRoot, typeof(Object), false);
if (newFolderRoot != folderRoot)
{
folderRoot = newFolderRoot;
UpdateFolderRootPath();
}
EditorGUILayout.EndHorizontal();
if (!string.IsNullOrEmpty(folderRootPath))
{
EditorGUILayout.BeginHorizontal();
GUILayout.Label("Path:", GUILayout.Width(100));
EditorGUILayout.SelectableLabel(folderRootPath, EditorStyles.textField, GUILayout.Height(18));
EditorGUILayout.EndHorizontal();
}
}
EditorGUILayout.EndVertical();
EditorGUILayout.Space(5);
// Subfolder Path Section
EditorGUILayout.BeginVertical(boxStyle);
{
GUILayout.Label("2. Set Subfolder Path", EditorStyles.boldLabel);
EditorGUILayout.HelpBox("Enter the subfolder path (e.g., 'a/b' or 'a\\b'). This will be created inside the folder root.", MessageType.Info);
EditorGUILayout.BeginHorizontal();
GUILayout.Label("Subfolder Path:", GUILayout.Width(100));
subfolderPath = EditorGUILayout.TextField(subfolderPath);
EditorGUILayout.EndHorizontal();
if (!string.IsNullOrEmpty(folderRootPath) && !string.IsNullOrEmpty(subfolderPath))
{
string fullPath = GetFullTargetPath();
EditorGUILayout.BeginHorizontal();
GUILayout.Label("Full Path:", GUILayout.Width(100));
EditorGUILayout.SelectableLabel(fullPath, EditorStyles.textField, GUILayout.Height(18));
EditorGUILayout.EndHorizontal();
}
}
EditorGUILayout.EndVertical();
EditorGUILayout.Space(5);
// Prefab Section
EditorGUILayout.BeginVertical(boxStyle);
{
GUILayout.Label("3. Select Prefab to Move", EditorStyles.boldLabel);
EditorGUILayout.HelpBox("Drag and drop a prefab from the Project window.", MessageType.Info);
EditorGUILayout.BeginHorizontal();
GUILayout.Label("Prefab:", GUILayout.Width(100));
prefabToMove = EditorGUILayout.ObjectField(prefabToMove, typeof(GameObject), false);
EditorGUILayout.EndHorizontal();
}
EditorGUILayout.EndVertical();
EditorGUILayout.Space(10);
// Move Button
EditorGUI.BeginDisabledGroup(!CanMovePrefab());
{
if (GUILayout.Button("Move Prefab", GUILayout.Height(35)))
{
MovePrefab();
}
}
EditorGUI.EndDisabledGroup();
if (!CanMovePrefab())
{
if (string.IsNullOrEmpty(folderRootPath))
EditorGUILayout.HelpBox("Please set a folder root.", MessageType.Warning);
else if (string.IsNullOrEmpty(subfolderPath))
EditorGUILayout.HelpBox("Please enter a subfolder path.", MessageType.Warning);
else if (prefabToMove == null)
EditorGUILayout.HelpBox("Please select a prefab to move.", MessageType.Warning);
}
EditorGUILayout.EndScrollView();
}
private void UpdateFolderRootPath()
{
if (folderRoot == null)
{
folderRootPath = "";
return;
}
string path = AssetDatabase.GetAssetPath(folderRoot);
// Check if it's a folder
if (Directory.Exists(path))
{
folderRootPath = path;
}
else if (File.Exists(path))
{
// If user dropped a file, use its parent folder
folderRootPath = Path.GetDirectoryName(path);
EditorUtility.DisplayDialog("Info", "You selected a file. Using its parent folder instead.", "OK");
}
else
{
folderRootPath = "";
EditorUtility.DisplayDialog("Error", "Invalid folder selected.", "OK");
}
}
private string GetFullTargetPath()
{
if (string.IsNullOrEmpty(folderRootPath) || string.IsNullOrEmpty(subfolderPath))
return "";
// Normalize the subfolder path (replace backslashes with forward slashes)
string normalizedSubPath = subfolderPath.Replace('\\', '/');
// Combine paths
string fullPath = Path.Combine(folderRootPath, normalizedSubPath);
// Normalize to forward slashes (Unity convention)
return fullPath.Replace('\\', '/');
}
private bool CanMovePrefab()
{
return !string.IsNullOrEmpty(folderRootPath) &&
!string.IsNullOrEmpty(subfolderPath) &&
prefabToMove != null;
}
private void MovePrefab()
{
string prefabPath = AssetDatabase.GetAssetPath(prefabToMove);
if (string.IsNullOrEmpty(prefabPath))
{
EditorUtility.DisplayDialog("Error", "Cannot get prefab path.", "OK");
return;
}
// Get the full target path
string targetFolder = GetFullTargetPath();
// Create the folder structure if it doesn't exist
CreateFolderStructure(targetFolder);
// Get prefab filename
string prefabFileName = Path.GetFileName(prefabPath);
string targetPath = Path.Combine(targetFolder, prefabFileName).Replace('\\', '/');
// Check if file already exists at target
if (File.Exists(targetPath))
{
bool overwrite = EditorUtility.DisplayDialog(
"File Exists",
$"A file with the name '{prefabFileName}' already exists at:\n{targetPath}\n\nDo you want to overwrite it?",
"Overwrite",
"Cancel"
);
if (!overwrite)
{
return;
}
}
// Move the asset
string error = AssetDatabase.MoveAsset(prefabPath, targetPath);
if (string.IsNullOrEmpty(error))
{
AssetDatabase.Refresh();
EditorUtility.DisplayDialog("Success", $"Prefab moved successfully to:\n{targetPath}", "OK");
// Clear the prefab field after successful move
prefabToMove = null;
// Ping the moved asset in the Project window
Object movedAsset = AssetDatabase.LoadAssetAtPath<Object>(targetPath);
EditorGUIUtility.PingObject(movedAsset);
}
else
{
EditorUtility.DisplayDialog("Error", $"Failed to move prefab:\n{error}", "OK");
}
}
private void CreateFolderStructure(string fullPath)
{
// Normalize path
fullPath = fullPath.Replace('\\', '/');
// Split the path into parts
string[] pathParts = fullPath.Split('/');
string currentPath = "";
foreach (string part in pathParts)
{
if (string.IsNullOrEmpty(part))
continue;
string parentPath = currentPath;
currentPath = string.IsNullOrEmpty(currentPath) ? part : currentPath + "/" + part;
// Check if folder exists
if (!Directory.Exists(currentPath))
{
// Create the folder using AssetDatabase
if (!string.IsNullOrEmpty(parentPath))
{
AssetDatabase.CreateFolder(parentPath, part);
Debug.Log($"Created folder: {currentPath}");
}
}
}
AssetDatabase.Refresh();
}
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 421631360572bc7418be0f642d1edc7b
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: fbd68e1c27950834da622b6c092212da
guid: d9444a0481d5b6c42be7eac759fecb03
PrefabImporter:
externalObjects: {}
userData:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 5506e67742f173f4fb2bf6aaed22cdaf
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d2fe87cdd491ffb47bd5f3fc0b2d2381
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7f472aa8bebc5234296b0fe5a57e1003
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 28da0ed345b9a414687404e0e0fd6aaa
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 21c4fc3924942124db60bcfb3e38cbf3
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b23b2403475b3dd438639921dc03eb64
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 948c28c528894e14bac4c8b3475e4eba
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: bfb664b6004e0b84cb577dc858846553
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 65b993130889e5f469dcf1da0dd5b2e5
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6a08e4f8daa179e48aa569991adc0c52
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4f0545dd61d92d14ea210cb48687adee
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f21ec74a0f368ca489770fe0ac41bf49
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 21f47d2368f38ec448512368fdfb8f7a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: cd8645249ddb6e140aaa3381f8a510bb
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7c756e961c3000c40a32ee5981dd5fa7
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 699776b14948dd14d886b55af4accaf7
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ddf37341503f2ef488489fce757e6f4b
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6d2f7b039a0e8a54ba8ccb1ee1b49e80
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1965dcd1fa366c3409c80082628b128f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 39a8f3a67a40fc64ba315fa7d0cd7d0d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 562300fbee8052a499dfecadab60619a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f7afdff4d28a54f4487905be81edc8a9
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f9dd6984441411e418005801649a0f2b
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 75e4b00fccdeefd449812973c7a69622
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 22387f7d0933f1747a0014d8a95bec07
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 99cbc82e9b2706347bdb2fd7fac7a1ca
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ae23118caa472f34c8892e708665faab
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -12,7 +12,7 @@ GameObject:
- component: {fileID: 6353708185804414749}
- component: {fileID: 7313970609931230196}
m_Layer: 0
m_Name: Liehuo Fu
m_Name: "\u70C8\u706B\u526F\u7206\u70B8\u51FB\u4E2D"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: fdd2bee325c891340b51cb6b30323a11
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More