Merge pull request 'feature/gfx-action' (#475) from feature/gfx-action into develop

Reviewed-on: https://git.pthub.vn/Unity/perfect-world-unity/pulls/475
This commit is contained in:
hoangvd
2026-05-29 11:01:31 +00:00
92 changed files with 527377 additions and 16279 deletions
@@ -21,6 +21,11 @@ MonoBehaviour:
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 00dc285dd958812488be0a9ec771571d
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u5730\u88C2\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 01d76e59476ddc94d96d2a9497373831
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u843D\u96F7\u51FB\u4E2D.gfx"
m_ReadOnly: 0
@@ -732,6 +737,12 @@ MonoBehaviour:
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 57877e89e56213043860fc4fbf018852
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u5996\u517D/\u517D\u738B\u9F13\u821E\u9884\u5907
1.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 581095497c6338141927488db3aad8fb
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u98DE\u884C/\u5996\u72D0\u9644\u4F53.gfx"
m_ReadOnly: 0
@@ -851,6 +862,11 @@ MonoBehaviour:
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6a639fee4b7e68742b642f9c711b323e
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u7EDE\u6740\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6adb695057ad951409512c3ae23fad55
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u5BA0\u7269\u590D\u6D3B\u51FB\u4E2D.gfx"
m_ReadOnly: 0
@@ -988,6 +1004,11 @@ MonoBehaviour:
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7be7d1fceb578c041b621d9bd244c89b
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u767D\u864E\u53D8.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7c756e961c3000c40a32ee5981dd5fa7
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u6D41\u6C34.gfx"
m_ReadOnly: 0
@@ -1155,6 +1176,11 @@ MonoBehaviour:
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9217afccafc580c408d0cb73c6bcf386
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u5996\u517D/\u517D\u738B\u65E0\u654C\u91CA\u653E.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9226e4f1aa223954390ad6394a1b791a
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u98DE\u884C/\u5DE8\u7075\u795E\u529B\u51FB\u4E2D.gfx"
m_ReadOnly: 0
@@ -1281,6 +1307,11 @@ MonoBehaviour:
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9ad7e58863db1b44286528f7f0fce573
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u98CE\u706B\u8F6E\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9af3ee014671762458a82fb84a950f28
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u6CD5\u5E08/\u5200\u5C71\u706B\u6D77\u9884\u59073.gfx"
m_ReadOnly: 0
@@ -1423,12 +1454,27 @@ MonoBehaviour:
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ae225215a126a2a46be66d0b420eba89
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u517D\u738B\u65E0\u654C\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: aebfe0b58d284054396652f385f14b8d
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u5BD2\u51B0\u4E4B\u77E2\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: aed560dfd7f4e0c45b91cf2f0ed7c5f4
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u5996\u517D/\u517D\u738B\u9524\u9884\u5907.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b10a0523784363c408717c098b14b706
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6495\u54AC\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b11e50bf7a1e65748b0b8676f05f8aeb
m_Address: "gfx/models/\u56DA\u9B42\u9B54/\u56DA\u9B42\u9B54_\u5E7D\u7075/\u56DA\u9B42\u9B54_0.gfx"
m_ReadOnly: 0
@@ -1597,12 +1643,6 @@ MonoBehaviour:
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c90db784f47aca643935a0fc667ca7af
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u706B\u6D77\u5200\u5C71\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- RemoteContent
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
@@ -1651,6 +1691,11 @@ MonoBehaviour:
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d4f26c237dbf65641910f7ab9ea45858
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u5996\u517D/\u517D\u738B\u65E0\u654C\u9884\u5907.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d58e34955bee5754ba836348ca10cf07
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u6B66\u4FA0/\u864E\u51FB\u9884\u5907.gfx"
m_ReadOnly: 0
@@ -1771,6 +1816,11 @@ MonoBehaviour:
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e137f9b8dd223b044b92814bf76a164d
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u767D\u8001\u864E/\u5DE6\u773C\u5149.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e177087afce72de419bc651787c342d4
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u6B66\u4FA0/\u9738\u738B\u65AD\u5CB3\u65BD\u653E.gfx"
m_ReadOnly: 0
@@ -1789,12 +1839,27 @@ MonoBehaviour:
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e3af4ce43881e1c44813cc0ef0e8d7e6
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u5996\u517D/\u517D\u738B\u9F13\u821E\u91CA\u653E.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e416cd04d1f2e5140a1d4d88ebb85eec
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u517D\u738B\u9524\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e4a3a2fd961acfe46b3718cd1e538ef6
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u6B66\u4FA0/\u6D41\u6C3411.gfx"
m_ReadOnly: 0
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e5cd5938c1504d640b9dd6b0d370d56f
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u6D41\u661F\u9524\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e6642950869c39545915901b64ec275e
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u72B6\u6001\u6548\u679C/\u6301\u7EED\u571F\u7CFB\u4F24\u5BB3.gfx"
m_ReadOnly: 0
@@ -1819,6 +1884,11 @@ MonoBehaviour:
m_SerializedLabels:
- RemoteContent
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e7ee4b2d18fed2a43b28ba0f84be7a7c
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u7834\u7532\u4E00\u51FB\u51FB\u4E2D.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e85b853f37099df4c998b47c98dbfc91
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u5996\u517D/\u5DE8\u6D6A\u9884\u5907.gfx"
m_ReadOnly: 0
@@ -190,7 +190,7 @@ Material:
- _DissolveColor: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _FnlColor: {r: 1, g: 1, b: 1, a: 1}
- _MainColor: {r: 1, g: 1, b: 1, a: 1}
- _MainColor: {r: 4, g: 4, b: 4, a: 1}
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -0,0 +1,40 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Lightbolt01_trail
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 2100000, guid: a838b253c76431b44b886f4ac1a3ebde, type: 2}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _CUSTOMMAINTEX_ON
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
- _MASKTEXAR_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs: []
m_Ints: []
m_Floats:
- _CustomMainTex: 1
- _MainTexUSpeed: 0
m_Colors: []
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 17a62c7f970de234caff0cc1d1e2003b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
@@ -11,7 +11,11 @@ Material:
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
@@ -118,8 +122,11 @@ Material:
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
@@ -127,8 +134,11 @@ Material:
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
@@ -146,12 +156,18 @@ Material:
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
@@ -11,7 +11,11 @@ Material:
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _COLOROVERLAY_ON
- _DISSOLVETEXAR_ON
@@ -128,7 +132,11 @@ Material:
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
@@ -136,7 +144,11 @@ Material:
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _DistortionBlend: 0.5
- _DistortionEnabled: 0
@@ -162,10 +174,18 @@ Material:
- _LightingEnabled: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _Mode: 4
@@ -11,7 +11,11 @@ Material:
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
@@ -118,7 +122,11 @@ Material:
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
@@ -126,7 +134,11 @@ Material:
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
@@ -144,10 +156,18 @@ Material:
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
@@ -11,7 +11,11 @@ Material:
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
@@ -118,7 +122,11 @@ Material:
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
@@ -126,7 +134,11 @@ Material:
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
@@ -144,10 +156,18 @@ Material:
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
@@ -11,7 +11,11 @@ Material:
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
@@ -118,7 +122,11 @@ Material:
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
@@ -126,7 +134,11 @@ Material:
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
@@ -144,10 +156,18 @@ Material:
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
@@ -11,7 +11,11 @@ Material:
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
@@ -118,7 +122,11 @@ Material:
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
@@ -126,7 +134,11 @@ Material:
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
@@ -144,10 +156,18 @@ Material:
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d681041aa15945d438fe165b7a418c0d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,209 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: fengren
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
- _MASKTEXAR_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DissolveTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 285e6256c5296734ca3f60b6eac074bb, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaCutoff: 0.5
- _AlphaToMask: 0
- _Blend: 0
- _BlendMode: 1
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _CullMode: 0
- _CustomDissolve: 0
- _CustomMainTex: 0
- _Cutoff: 0.5
- _DepthFade: 1
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
- _DistortFactor: 0
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _FDepth: 0
- _FDissolveTex: 0
- _FDistortTex: 0
- _FFnl: 0
- _FMaskTex: 0
- _FnlPower: 1
- _FnlScale: 0
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReFnl: 0
- _ReceiveShadows: 1
- _Scr: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DissolveColor: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _FnlColor: {r: 1, g: 1, b: 1, a: 1}
- _MainColor: {r: 4, g: 4, b: 4, a: 1}
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &8741123340869993700
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b47a8425eb2c3ff4dbda2260a14e9fce
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,209 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: fengren1
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
- _MASKTEXAR_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DissolveTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: b4e193a64f6dda54292e5afc43f8fff8, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaCutoff: 0.5
- _AlphaToMask: 0
- _Blend: 0
- _BlendMode: 1
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _CullMode: 0
- _CustomDissolve: 0
- _CustomMainTex: 0
- _Cutoff: 0.5
- _DepthFade: 1
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
- _DistortFactor: 0
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _FDepth: 0
- _FDissolveTex: 0
- _FDistortTex: 0
- _FFnl: 0
- _FMaskTex: 0
- _FnlPower: 1
- _FnlScale: 0
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReFnl: 0
- _ReceiveShadows: 1
- _Scr: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DissolveColor: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _FnlColor: {r: 1, g: 1, b: 1, a: 1}
- _MainColor: {r: 4, g: 4, b: 4, a: 1}
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &8741123340869993700
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1cd103a7d87b95b459c684b7b58925de
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
@@ -11,7 +11,11 @@ Material:
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
@@ -118,7 +122,11 @@ Material:
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
@@ -126,7 +134,11 @@ Material:
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
@@ -144,10 +156,18 @@ Material:
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
@@ -190,7 +190,7 @@ Material:
- _DissolveColor: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _FnlColor: {r: 1, g: 1, b: 1, a: 1}
- _MainColor: {r: 2, g: 2, b: 2, a: 1}
- _MainColor: {r: 7.129739, g: 7.129739, b: 7.129739, a: 1}
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
Binary file not shown.
+107
View File
@@ -0,0 +1,107 @@
fileFormatVersion: 2
guid: 3d3e8c2b5e5b0e84f91d35e467ff97df
ModelImporter:
serializedVersion: 22200
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
strictVertexDataChecks: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
importBlendShapeDeformPercent: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+107
View File
@@ -0,0 +1,107 @@
fileFormatVersion: 2
guid: 59e9d17f7a4c2ba4780c6ea620e34c1e
ModelImporter:
serializedVersion: 22200
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
strictVertexDataChecks: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
importBlendShapeDeformPercent: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b1fff6f05a16485498467a0aae33a63e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,21 @@
fileFormatVersion: 2
guid: 285e6256c5296734ca3f60b6eac074bb
IHVImageFormatImporter:
externalObjects: {}
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
isReadable: 0
sRGBTexture: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
ignoreMipmapLimit: 0
mipmapLimitGroupName:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,21 @@
fileFormatVersion: 2
guid: b4e193a64f6dda54292e5afc43f8fff8
IHVImageFormatImporter:
externalObjects: {}
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
isReadable: 0
sRGBTexture: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
ignoreMipmapLimit: 0
mipmapLimitGroupName:
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9217afccafc580c408d0cb73c6bcf386
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d4f26c237dbf65641910f7ab9ea45858
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: aed560dfd7f4e0c45b91cf2f0ed7c5f4
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e3af4ce43881e1c44813cc0ef0e8d7e6
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 57877e89e56213043860fc4fbf018852
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -108,7 +108,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -5138,7 +5138,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -10047,7 +10047,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -14947,7 +14947,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -19856,7 +19856,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -24756,7 +24756,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -29665,7 +29665,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -34574,7 +34574,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -39483,7 +39483,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -44303,8 +44303,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.66, y: 0.66, z: 0.66}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 5714356192760232229}
- {fileID: 526232056115809175}
@@ -49231,7 +49231,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -58974,7 +58974,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -63874,7 +63874,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -68783,7 +68783,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -73692,7 +73692,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 1
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 02310ee1dc80c6f46b9da86a7f305a3d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e137f9b8dd223b044b92814bf76a164d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -109,7 +109,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -5001,7 +5001,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -9893,7 +9893,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -14784,7 +14784,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -19675,7 +19675,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -24567,7 +24567,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -29459,7 +29459,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -34350,7 +34350,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -39241,7 +39241,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -44132,7 +44132,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -49023,7 +49023,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -53914,7 +53914,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -58806,7 +58806,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -63697,7 +63697,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -68589,7 +68589,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -73487,7 +73487,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -78378,7 +78378,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -83270,7 +83270,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -88161,7 +88161,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -93052,7 +93052,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -97943,7 +97943,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -102754,8 +102754,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 2, y: 2, z: 2}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 7830348339912292777}
- {fileID: 6196732834502978086}
@@ -107676,7 +107676,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -112567,7 +112567,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -117458,7 +117458,7 @@ ParticleSystem:
m_RotationOrder: 4
moveWithTransform: 0
moveWithCustomTransform: {fileID: 0}
scalingMode: 1
scalingMode: 0
randomSeed: 0
InitialModule:
serializedVersion: 3
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ae225215a126a2a46be66d0b420eba89
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 96405357221afa34990f1c8b0ad64755
guid: e416cd04d1f2e5140a1d4d88ebb85eec
PrefabImporter:
externalObjects: {}
userData:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 00dc285dd958812488be0a9ec771571d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b10a0523784363c408717c098b14b706
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -28,8 +28,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.66, y: 0.66, z: 0.66}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 3763250113416586939}
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
@@ -4870,8 +4870,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.66, y: 0.66, z: 0.66}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 3763250113416586939}
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
@@ -9703,8 +9703,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.66, y: 0.66, z: 0.66}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 3763250113416586939}
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
@@ -14594,8 +14594,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.66, y: 0.66, z: 0.66}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 3763250113416586939}
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
@@ -19485,8 +19485,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.66, y: 0.66, z: 0.66}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 3763250113416586939}
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
@@ -29157,8 +29157,8 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_LocalScale: {x: 0.66, y: 0.66, z: 0.66}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 3763250113416586939}
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e5cd5938c1504d640b9dd6b0d370d56f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7be7d1fceb578c041b621d9bd244c89b
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e7ee4b2d18fed2a43b28ba0f84be7a7c
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6a639fee4b7e68742b642f9c711b323e
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9ad7e58863db1b44286528f7f0fce573
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 681a108c0c73f524ca63a1ddb107069b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,209 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-6650086867172505828
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 10
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ringyellow
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
- _MASKTEXAR_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DissolveTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 5bb2ecbf354f4a9459feec5fce982671, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaCutoff: 0.5
- _AlphaToMask: 0
- _Blend: 0
- _BlendMode: 1
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _CullMode: 0
- _CustomDissolve: 0
- _CustomMainTex: 0
- _Cutoff: 0.5
- _DepthFade: 1
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
- _DistortFactor: 0
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _FDepth: 0
- _FDissolveTex: 0
- _FDistortTex: 0
- _FFnl: 0
- _FMaskTex: 0
- _FnlPower: 1
- _FnlScale: 0
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReFnl: 0
- _ReceiveShadows: 1
- _Scr: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DissolveColor: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _FnlColor: {r: 1, g: 1, b: 1, a: 1}
- _MainColor: {r: 1, g: 1, b: 1, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1058495e0cf3b8345aaf6b3b305be48a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8cc38bb289ea3ad469b2831529ed61b3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,44 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: wu_scrolling
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 2100000, guid: a126d04bdace90a4fba9046e8d8be7d7, type: 2}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
- _MAINTEXAR_ON
- _MASKTEXAR_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _MainTex:
m_Texture: {fileID: 2800000, guid: 5d5315d85b63eb445b17e49d4e706500, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _MainTexClampU: 0
- _MainTexUSpeed: 0.5
m_Colors: []
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 54a414c6aaf2a1347b84c97f13da262d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
@@ -203,7 +203,7 @@ Material:
- _DissolveColor: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _FnlColor: {r: 1, g: 1, b: 1, a: 1}
- _MainColor: {r: 1, g: 1, b: 1, a: 1}
- _MainColor: {r: 4.2370944, g: 4.2370944, b: 4.2370944, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fc00231cbba10784ba7fd37aacbab18c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,209 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-6650086867172505828
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 10
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: deng2
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
- _MASKTEXAR_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DissolveTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 62707a77516ed154b8167462ed77b4c6, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaCutoff: 0.5
- _AlphaToMask: 0
- _Blend: 0
- _BlendMode: 1
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _CullMode: 0
- _CustomDissolve: 0
- _CustomMainTex: 0
- _Cutoff: 0.5
- _DepthFade: 1
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
- _DistortFactor: 0
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _FDepth: 0
- _FDissolveTex: 0
- _FDistortTex: 0
- _FFnl: 0
- _FMaskTex: 0
- _FnlPower: 1
- _FnlScale: 0
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReFnl: 0
- _ReceiveShadows: 1
- _Scr: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DissolveColor: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _FnlColor: {r: 1, g: 1, b: 1, a: 1}
- _MainColor: {r: 1, g: 1, b: 1, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a18dbfcea54e9ab49b79f016e1f3e817
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
Binary file not shown.
@@ -0,0 +1,21 @@
fileFormatVersion: 2
guid: 62707a77516ed154b8167462ed77b4c6
IHVImageFormatImporter:
externalObjects: {}
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
isReadable: 0
sRGBTexture: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
ignoreMipmapLimit: 0
mipmapLimitGroupName:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,213 @@
// UTF-8 with BOM — required for Chinese character paths
using System;
using System.Collections.Generic;
using BrewMonster;
using BrewMonster.Scripts.ECModel;
using ModelViewer.Common;
using UnityEditor;
using UnityEngine;
public enum CombinedActionGfxPhase
{
All,
Cast,
Attack,
Other,
}
public readonly struct CombinedActionGfxEntry
{
public CombinedActionGfxEntry(
A3DCombinedAction action,
FX_BASE_INFO fxEvent,
string path,
string actionName,
string gfxBasename,
CombinedActionGfxPhase phase)
{
Action = action;
FxEvent = fxEvent;
Path = path;
ActionName = actionName;
GfxBasename = gfxBasename;
Phase = phase;
}
public A3DCombinedAction Action { get; }
public FX_BASE_INFO FxEvent { get; }
public string Path { get; }
public string ActionName { get; }
public string GfxBasename { get; }
public CombinedActionGfxPhase Phase { get; }
}
public static class CombinedActionGfxQuery
{
const string CastToken = "_\u541f\u5531_";
const string AttackRiseToken = "_\u65bd\u653e\u8d77_";
const string AttackFallToken = "_\u65bd\u653e\u843d_";
public static CombinedActionGfxPhase GetPhase(string actionName)
{
if (string.IsNullOrEmpty(actionName))
return CombinedActionGfxPhase.Other;
if (actionName.Contains(CastToken, StringComparison.Ordinal))
return CombinedActionGfxPhase.Cast;
if (actionName.Contains(AttackRiseToken, StringComparison.Ordinal) ||
actionName.Contains(AttackFallToken, StringComparison.Ordinal))
return CombinedActionGfxPhase.Attack;
return CombinedActionGfxPhase.Other;
}
public static string GetPhaseLabel(CombinedActionGfxPhase phase)
{
return phase switch
{
CombinedActionGfxPhase.Cast => "Cast",
CombinedActionGfxPhase.Attack => "Attack",
CombinedActionGfxPhase.Other => "Other",
_ => "All",
};
}
public static IEnumerable<CombinedActionGfxEntry> Scan(CombinedActionSO so)
{
if (so?.CombinedActionData == null)
yield break;
foreach (A3DCombinedAction action in so.CombinedActionData)
{
if (action?.m_EventInfoLst == null)
continue;
string actionName = action.m_strName ?? string.Empty;
CombinedActionGfxPhase phase = GetPhase(actionName);
foreach (EVENT_INFO eventInfo in action.m_EventInfoLst)
{
if (eventInfo is not FX_BASE_INFO fx || fx.m_strFilePaths == null)
continue;
foreach (string path in fx.m_strFilePaths)
{
if (string.IsNullOrWhiteSpace(path) || !path.Contains("gfx", StringComparison.OrdinalIgnoreCase))
continue;
string basename = LogPanelAnimeScene.GfxBasename(path);
if (string.IsNullOrEmpty(basename))
continue;
yield return new CombinedActionGfxEntry(action, fx, path, actionName, basename, phase);
}
}
}
}
public static bool MatchesFilters(
CombinedActionGfxEntry entry,
CombinedActionGfxPhase phaseFilter,
string actionFilter,
string basenameFilter)
{
if (phaseFilter != CombinedActionGfxPhase.All && entry.Phase != phaseFilter)
return false;
if (!string.IsNullOrWhiteSpace(actionFilter) &&
entry.ActionName.IndexOf(actionFilter, StringComparison.OrdinalIgnoreCase) < 0)
return false;
if (!string.IsNullOrWhiteSpace(basenameFilter) &&
entry.GfxBasename.IndexOf(basenameFilter, StringComparison.OrdinalIgnoreCase) < 0)
return false;
return true;
}
public static bool RemoveEntry(CombinedActionSO so, CombinedActionGfxEntry entry)
{
return RemovePath(so, entry.Action, entry.FxEvent, entry.Path);
}
public static bool RemovePath(CombinedActionSO so, A3DCombinedAction action, FX_BASE_INFO fxEvent, string path)
{
if (so == null || action == null || fxEvent == null || string.IsNullOrWhiteSpace(path))
return false;
Undo.RecordObject(so, "Remove GFX Event");
if (!ApplyRemoval(action, fxEvent, path))
return false;
EditorUtility.SetDirty(so);
AssetDatabase.SaveAssets();
return true;
}
public static int RemoveMatchingBasenameFromPhase(
CombinedActionSO so,
string basename,
CombinedActionGfxPhase phase)
{
if (so == null || string.IsNullOrWhiteSpace(basename) || phase == CombinedActionGfxPhase.All)
return 0;
Undo.RecordObject(so, "Remove GFX Events");
int removed = 0;
var toRemove = new List<(A3DCombinedAction action, FX_BASE_INFO fx, string path)>();
foreach (CombinedActionGfxEntry entry in Scan(so))
{
if (entry.Phase != phase)
continue;
if (!string.Equals(entry.GfxBasename, basename, StringComparison.OrdinalIgnoreCase))
continue;
toRemove.Add((entry.Action, entry.FxEvent, entry.Path));
}
foreach ((A3DCombinedAction action, FX_BASE_INFO fx, string path) item in toRemove)
{
if (ApplyRemoval(item.action, item.fx, item.path))
removed++;
}
if (removed > 0)
{
EditorUtility.SetDirty(so);
AssetDatabase.SaveAssets();
}
return removed;
}
static bool ApplyRemoval(A3DCombinedAction action, FX_BASE_INFO fxEvent, string path)
{
if (action == null || fxEvent == null || string.IsNullOrWhiteSpace(path))
return false;
if (fxEvent.m_strFilePaths != null && fxEvent.m_strFilePaths.Count > 1)
{
if (!fxEvent.m_strFilePaths.Remove(path))
return false;
if (fxEvent.m_strFilePaths.Count == 0 && action.m_EventInfoLst != null)
action.m_EventInfoLst.Remove(fxEvent);
}
else if (action.m_EventInfoLst != null)
{
if (!action.m_EventInfoLst.Remove(fxEvent))
return false;
}
else
{
return false;
}
return true;
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 5c3e5692ee8ed8043958fe88d788e1ed
@@ -0,0 +1,165 @@
// UTF-8 with BOM — required for Chinese character paths
using System.Collections.Generic;
using System.Linq;
using BrewMonster.Scripts.ECModel;
using UnityEditor;
using UnityEngine;
public class CombinedActionSOGfxRemover : EditorWindow
{
CombinedActionSO _combinedActionSo;
CombinedActionGfxPhase _phaseFilter = CombinedActionGfxPhase.All;
string _actionFilter = string.Empty;
string _basenameFilter = string.Empty;
Vector2 _scrollPos;
readonly List<CombinedActionGfxEntry> _entries = new();
GUIStyle _headerStyle;
GUIStyle HeaderStyle => _headerStyle ??= new GUIStyle(EditorStyles.boldLabel) { fontSize = 14 };
[MenuItem("Tools/Brew Monster/Combined Action GFX Event Remover")]
public static void ShowWindow()
{
var win = GetWindow<CombinedActionSOGfxRemover>(false, "GFX Event Remover", true);
win.minSize = new Vector2(760, 420);
}
void OnEnable()
{
RefreshEntries();
}
void OnGUI()
{
EditorGUILayout.Space(6);
EditorGUILayout.LabelField("Combined Action GFX Event Remover", HeaderStyle);
EditorGUILayout.LabelField(
"Browse and remove FX/GFX events from CombinedActionSO assets.",
EditorStyles.miniLabel);
EditorGUILayout.Space(4);
EditorGUI.BeginChangeCheck();
_combinedActionSo = (CombinedActionSO)EditorGUILayout.ObjectField(
"Combined Action SO",
_combinedActionSo,
typeof(CombinedActionSO),
false);
if (EditorGUI.EndChangeCheck())
RefreshEntries();
using (new EditorGUILayout.HorizontalScope())
{
_phaseFilter = (CombinedActionGfxPhase)EditorGUILayout.EnumPopup("Phase", _phaseFilter);
if (GUILayout.Button("Refresh", GUILayout.Width(80)))
RefreshEntries();
}
_actionFilter = EditorGUILayout.TextField("Filter action name", _actionFilter);
_basenameFilter = EditorGUILayout.TextField("Filter gfx basename", _basenameFilter);
DrawBulkRemoveRow();
DrawSeparator();
DrawEntryTable();
}
void DrawBulkRemoveRow()
{
using (new EditorGUI.DisabledScope(_combinedActionSo == null || string.IsNullOrWhiteSpace(_basenameFilter)))
{
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField("Bulk remove", GUILayout.Width(100));
if (GUILayout.Button("Remove basename from Attack actions", GUILayout.Height(22)))
{
int removed = CombinedActionGfxQuery.RemoveMatchingBasenameFromPhase(
_combinedActionSo,
_basenameFilter.Trim(),
CombinedActionGfxPhase.Attack);
Debug.Log($"[GFX Event Remover] Removed {removed} Attack GFX row(s) matching basename '{_basenameFilter.Trim()}'.");
RefreshEntries();
}
if (GUILayout.Button("Remove basename from Cast actions", GUILayout.Height(22)))
{
int removed = CombinedActionGfxQuery.RemoveMatchingBasenameFromPhase(
_combinedActionSo,
_basenameFilter.Trim(),
CombinedActionGfxPhase.Cast);
Debug.Log($"[GFX Event Remover] Removed {removed} Cast GFX row(s) matching basename '{_basenameFilter.Trim()}'.");
RefreshEntries();
}
EditorGUILayout.EndHorizontal();
}
}
void DrawEntryTable()
{
IEnumerable<CombinedActionGfxEntry> visible = _entries.Where(entry =>
CombinedActionGfxQuery.MatchesFilters(entry, _phaseFilter, _actionFilter, _basenameFilter));
int visibleCount = visible.Count();
EditorGUILayout.LabelField($"GFX rows: {visibleCount} / {_entries.Count}", EditorStyles.boldLabel);
if (_combinedActionSo == null)
{
EditorGUILayout.HelpBox("Assign a CombinedActionSO asset to begin.", MessageType.Info);
return;
}
if (visibleCount == 0)
{
EditorGUILayout.HelpBox("No GFX rows match the current filters.", MessageType.Warning);
return;
}
_scrollPos = EditorGUILayout.BeginScrollView(_scrollPos);
foreach (CombinedActionGfxEntry entry in visible)
DrawEntryRow(entry);
EditorGUILayout.EndScrollView();
}
void DrawEntryRow(CombinedActionGfxEntry entry)
{
using (new EditorGUILayout.VerticalScope(EditorStyles.helpBox))
{
using (new EditorGUILayout.HorizontalScope())
{
EditorGUILayout.LabelField(CombinedActionGfxQuery.GetPhaseLabel(entry.Phase), GUILayout.Width(56));
EditorGUILayout.LabelField(entry.GfxBasename, EditorStyles.boldLabel, GUILayout.Width(180));
EditorGUILayout.SelectableLabel(entry.Path, EditorStyles.miniLabel, GUILayout.Height(16));
if (GUILayout.Button("Remove", GUILayout.Width(72)))
{
if (EditorUtility.DisplayDialog(
"Remove GFX event",
$"Remove '{entry.GfxBasename}' from action '{entry.ActionName}'?",
"Remove",
"Cancel") &&
CombinedActionGfxQuery.RemoveEntry(_combinedActionSo, entry))
{
Debug.Log(
$"[GFX Event Remover] Removed '{entry.GfxBasename}' from action '{entry.ActionName}'.");
RefreshEntries();
}
}
}
EditorGUILayout.LabelField(entry.ActionName, EditorStyles.miniLabel);
}
}
void RefreshEntries()
{
_entries.Clear();
if (_combinedActionSo == null)
return;
_entries.AddRange(CombinedActionGfxQuery.Scan(_combinedActionSo));
Repaint();
}
static void DrawSeparator()
{
var rect = EditorGUILayout.GetControlRect(false, 1);
EditorGUI.DrawRect(rect, new Color(0.5f, 0.5f, 0.5f, 0.35f));
EditorGUILayout.Space(4);
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 550035299b5b67d489ea68adb0609e5a
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ea74bc9aef8c1251035c339a2a463e2d026cc0af379759abf687dcf13c9bda99
size 146707
oid sha256:ae9957c9fce4d6cc838683462ae73b1957d1729753cfb49f653ba366248d845f
size 150615
@@ -26,6 +26,13 @@ namespace PerfectWorld.Scripts
/// </summary>
public class AnimScenePlayerBootstrap : MonoBehaviour
{
#if UNITY_EDITOR
public const string EditorPrefsSwitchProfessionKey =
"PerfectWorld.AnimScenePlayerBootstrapEditor.SwitchProfession";
public const string EditorPrefsSwitchGenderKey =
"PerfectWorld.AnimScenePlayerBootstrapEditor.SwitchGender";
#endif
[Header("Player Reference")]
[Tooltip("Scene host player. Do not put this bootstrap component on the same GameObject as the host if you enable Replace host on role switch.")]
[SerializeField]
@@ -101,8 +108,27 @@ namespace PerfectWorld.Scripts
return;
}
#if UNITY_EDITOR
ApplyPersistedEditorSwitchRole();
#endif
await BootstrapAsync((byte)profession, (byte)gender, fromInitialStart: true);
}
#if UNITY_EDITOR
/// <summary>
/// Editor Play Mode: use profession/gender from the custom inspector dropdown (EditorPrefs), not stale Initial Role.
/// 编辑器运行模式:使用自定义检视器下拉框(EditorPrefs)的职业/性别,而非过期的 Initial Role。
/// </summary>
public void ApplyPersistedEditorSwitchRole()
{
profession = (Profession)UnityEditor.EditorPrefs.GetInt(
EditorPrefsSwitchProfessionKey,
(int)Profession.PROF_MAGE);
gender = (Gender)UnityEditor.EditorPrefs.GetInt(
EditorPrefsSwitchGenderKey,
(int)Gender.GENDER_FEMALE);
}
#endif
public void ChangeCameraPos(int i)
{
if(i<0)
@@ -335,6 +361,8 @@ namespace PerfectWorld.Scripts
await player.SetPlayerModel(prof, gen);
Debug.Log("[AnimSceneBootstrap] SetPlayerModel pipeline finished.");
player.AnimSceneMarkResourcesReady();
ApplyWeaponForActiveSlot();
AnimSceneInitSkillModelAndRefreshPanel(prof, gen);
@@ -6,19 +6,42 @@ public class CopyTextButton : MonoBehaviour
{
[SerializeField] private TMP_Text textToCopy;
[SerializeField] private TMP_Text labelText;
[SerializeField] private TMP_Text actionNameText;
[SerializeField] Button button;
public void Awake()
{
button.onClick.AddListener(CopyText);
if (actionNameText != null)
{
var actionButton = actionNameText.GetComponent<Button>();
if (actionButton == null)
{
actionButton = actionNameText.gameObject.AddComponent<Button>();
actionButton.transition = Selectable.Transition.None;
actionButton.targetGraphic = actionNameText;
}
actionButton.onClick.AddListener(CopyActionName);
}
}
public void CopyText()
{
GUIUtility.systemCopyBuffer = textToCopy.text;
}
public void SetText(string labeltext, string text, bool? inAddressables = null)
public void CopyActionName()
{
var text = actionNameText.text;
if (string.IsNullOrEmpty(text) || text == "—")
return;
GUIUtility.systemCopyBuffer = text;
}
public void SetText(string labeltext, string text, bool? inAddressables = null, string actionName = null)
{
labelText.text = labeltext;
textToCopy.text = text;
if (actionNameText != null)
actionNameText.text = actionName ?? "—";
if (inAddressables == null)
labelText.color = Color.white;
else
@@ -1,8 +1,10 @@
using System;
using System.Collections.Generic;
using System.IO;
using BrewMonster.Scripts;
using BrewMonster.Scripts.Skills;
using BrewMonster.Config;
using ModelViewer.Common;
@@ -36,19 +38,19 @@ namespace BrewMonster
}
}
public void AddCopyTextButton(string labeltext, string text, bool? inAddressables = null)
public void AddCopyTextButton(string labeltext, string text, bool? inAddressables = null, string actionName = null)
{
if (currentIndex >= copyTextButtons.Count)
{
var copyTextButton = Instantiate(copyTextButtonPrefab, copyTextButtonsParent);
copyTextButton.gameObject.SetActive(true);
copyTextButton.SetText(labeltext, text, inAddressables);
copyTextButton.SetText(labeltext, text, inAddressables, actionName);
copyTextButtons.Add(copyTextButton);
}
else
{
copyTextButtons[currentIndex].gameObject.SetActive(true);
copyTextButtons[currentIndex].SetText(labeltext, text, inAddressables);
copyTextButtons[currentIndex].SetText(labeltext, text, inAddressables, actionName);
}
currentIndex++;
@@ -122,7 +124,7 @@ namespace BrewMonster
if (string.IsNullOrEmpty(displayText))
return;
AddCopyTextButton(label, displayText, GfxAddressableExists(rawPath));
AddCopyTextButton(label, displayText, GfxAddressableExists(rawPath), "—");
}
public void LogSkillCastGfx(CECHostPlayer player, int skillId)
@@ -147,6 +149,75 @@ namespace BrewMonster
LogSkillStubFlyHitGfx(ev.m_idSkill, ev.m_nSkillSection);
}
/// <summary>
/// Logs visible-state aura GFX and state-reaction ComAct GFX (skill_state_action + name fallback for local anim-test).
/// </summary>
public void LogSkillStateGfx(CECHostPlayer player, int skillId)
{
List<int> stateIds = SkillVisibleStateResolver.ResolveVisibleStateIds(skillId);
bool hasConfigRows = SkillVisibleStateResolver.TryGetConfigRows(skillId, out IReadOnlyList<SkillStateActionRow> rows);
// #region agent log
AgentDebugLog("LogSkillStateGfx:entry", "resolved visible states", "H3",
$"{{\"skillId\":{skillId},\"stateIds\":\"{string.Join(",", stateIds)}\",\"hasConfigRows\":{hasConfigRows.ToString().ToLower()},\"configRowCount\":{(hasConfigRows ? rows.Count : 0)}}}");
// #endregion
if (stateIds.Count == 0 && !hasConfigRows)
return;
const string stateGfxBasePath = "gfx/策划联入/状态效果/";
var seenStateGfx = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
var seenBeHitActions = new HashSet<string>(StringComparer.Ordinal);
var seenStayActions = new HashSet<string>(StringComparer.Ordinal);
CECModel playerModel = player?.GetPlayerCECModel();
int profession = player != null ? player.GetProfession() : 0;
foreach (int stateId in stateIds)
{
VisibleState visibleState = VisibleState.Query(profession, stateId);
string effect = visibleState?.GetEffect();
// #region agent log
AgentDebugLog("LogSkillStateGfx:query", "VisibleState resolved", "H2",
$"{{\"skillId\":{skillId},\"stateId\":{stateId},\"profession\":{profession},\"effect\":\"{effect ?? ""}\",\"name\":\"{visibleState?.GetName() ?? ""}\"}}");
// #endregion
if (string.IsNullOrWhiteSpace(effect))
continue;
string rawPath = stateGfxBasePath + effect;
string displayText = GfxBasename(rawPath);
if (string.IsNullOrEmpty(displayText) || !seenStateGfx.Add(displayText))
continue;
string stateLabel = visibleState.GetName();
if (string.IsNullOrEmpty(stateLabel))
stateLabel = $"state {stateId}";
else
stateLabel += $" (id {stateId})";
AddCopyTextButton("State", displayText, GfxAddressableExists(rawPath), stateLabel);
}
if (!hasConfigRows)
return;
foreach (SkillStateActionRow row in rows)
{
if (playerModel != null && !string.IsNullOrWhiteSpace(row.beHitAction) &&
seenBeHitActions.Add(row.beHitAction))
{
AddGfxEventsFromComAct(playerModel.GetComActByName(row.beHitAction), "StateBeHit");
}
if (playerModel != null && !string.IsNullOrWhiteSpace(row.stayDownAction) &&
seenStayActions.Add(row.stayDownAction))
{
AddGfxEventsFromComAct(playerModel.GetComActByName(row.stayDownAction), "StateStay");
}
}
}
public void AddGfxEventsFromComAct(A3DCombinedAction comAct, string label)
{
if (string.IsNullOrEmpty(label) || comAct?.m_EventInfoLst == null)
@@ -176,7 +247,7 @@ namespace BrewMonster
if (string.IsNullOrEmpty(displayText) || !seen.Add(displayText))
continue;
AddCopyTextButton(label, displayText, GfxAddressableExists(path));
AddCopyTextButton(label, displayText, GfxAddressableExists(path), comAct.m_strName);
}
}
}
@@ -221,5 +292,21 @@ namespace BrewMonster
AddGfxPathRow("Hit", hit);
AddGfxPathRow("HitGrnd", hitGrnd);
}
// #region agent log
public static void AgentDebugLog(string location, string message, string hypothesisId, string dataJson)
{
try
{
string path = Path.GetFullPath(Path.Combine(Application.dataPath, "..", "..", "debug-1197c4.log"));
long ts = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
string line = "{\"sessionId\":\"1197c4\",\"location\":\"" + location + "\",\"message\":\"" + message + "\",\"hypothesisId\":\"" + hypothesisId + "\",\"timestamp\":" + ts + ",\"data\":" + dataJson + "}";
File.AppendAllText(path, line + Environment.NewLine);
}
catch
{
}
}
// #endregion
}
}
@@ -0,0 +1,128 @@
using System;
using System.Collections.Generic;
using BrewMonster.Config;
using BrewMonster.Scripts;
using BrewMonster.Scripts.Skills;
namespace BrewMonster
{
/// <summary>
/// Resolves visible-state ids for anim-test (skill_state_action + name fallback) and applies ext-state bits locally (no server).
/// </summary>
public static class SkillVisibleStateResolver
{
const int ExtStateCount = 6;
const int BitSize = 32;
public static List<int> ResolveVisibleStateIds(int skillId)
{
var ids = new HashSet<int>();
if (CECAttacksMan.Instance != null &&
CECAttacksMan.Instance.TryGetSkillStateActions(skillId, out IReadOnlyList<SkillStateActionRow> rows))
{
for (int i = 0; i < rows.Count; i++)
ids.Add(rows[i].state);
}
SkillStub stub = SkillStub.GetStub((uint)skillId);
if (stub != null && !string.IsNullOrEmpty(stub.name))
{
foreach (KeyValuePair<int, VisibleStateImp> kv in GNET.VisibleState)
{
string visibleName = kv.Value?.GetName();
if (string.IsNullOrEmpty(visibleName))
continue;
if (string.Equals(visibleName, stub.name, StringComparison.Ordinal) ||
string.Equals(visibleName, stub.nativename, StringComparison.Ordinal))
ids.Add(kv.Key);
}
}
return new List<int>(ids);
}
public static bool TryGetConfigRows(int skillId, out IReadOnlyList<SkillStateActionRow> rows)
{
rows = null;
return CECAttacksMan.Instance != null &&
CECAttacksMan.Instance.TryGetSkillStateActions(skillId, out rows);
}
/// <summary>
/// Simulates server UPDATE_EXT_STATE for AnimationTest: sets bits and calls ShowExtendStates via SetNewExtendStates.
/// </summary>
public static void TryApplyLocalExtStates(int skillId, CECHostPlayer hostPlayer, CECMonsterTest targetMarker)
{
List<int> stateIds = ResolveVisibleStateIds(skillId);
// #region agent log
LogPanelAnimeScene.AgentDebugLog("TryApplyLocalExtStates", "resolved state ids", "H4",
$"{{\"skillId\":{skillId},\"stateIds\":\"{string.Join(",", stateIds)}\",\"targetType\":{GetSkillTargetType((uint)skillId)}}}");
// #endregion
if (stateIds.Count == 0 || hostPlayer == null)
return;
if (!hostPlayer.IsAllResReady() && hostPlayer.IsPlayerModelReady)
hostPlayer.AnimSceneMarkResourcesReady();
uint[] nextStates = BuildExtStates(hostPlayer.m_aExtStates, stateIds);
int targetType = GetSkillTargetType((uint)skillId);
// #region agent log
LogPanelAnimeScene.AgentDebugLog("TryApplyLocalExtStates:apply", "calling SetNewExtendStates", "H5",
$"{{\"skillId\":{skillId},\"targetType\":{targetType},\"isAllResReady\":{hostPlayer.IsAllResReady().ToString().ToLower()},\"isModelReady\":{hostPlayer.IsPlayerModelReady.ToString().ToLower()},\"stateBits\":\"{string.Join(",", nextStates)}\"}}");
// #endregion
if (targetType == 0)
{
hostPlayer.SetNewExtendStates(0, nextStates, ExtStateCount);
return;
}
if (targetMarker != null)
targetMarker.SetNewExtendStates(0, nextStates, ExtStateCount);
}
static uint[] BuildExtStates(uint[] current, IEnumerable<int> stateIds)
{
var states = new uint[ExtStateCount];
if (current != null && current.Length >= ExtStateCount)
Array.Copy(current, states, ExtStateCount);
foreach (int stateId in stateIds)
{
if (stateId < 0)
continue;
int dwordIndex = stateId / BitSize;
int bit = stateId % BitSize;
if (dwordIndex < ExtStateCount)
states[dwordIndex] |= 1u << bit;
}
return states;
}
static int GetSkillTargetType(uint skillId)
{
SkillStub stub = SkillStub.GetStub(skillId);
if (stub == null)
return 1;
if (stub.restrict_corpse == 1)
return 2;
if (stub.restrict_corpse == 2)
return 3;
if (stub.type == (int)skill_type.TYPE_ATTACK || stub.type == (int)skill_type.TYPE_CURSE)
return 1;
if (stub.type == (int)skill_type.TYPE_BLESSPET)
return 4;
if (stub.GetRange().NoTarget())
return 0;
return 1;
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 1ba8d537bc3de3c49845d22a1f9a69ce
@@ -614,6 +614,7 @@ namespace BrewMonster
logPanelAnimeScene.LogSkillCastGfx(player, skillId);
logPanelAnimeScene.LogPlayAttackEffectGfx(player, skillId, 0);
logPanelAnimeScene.LogSkillStateGfx(player, skillId);
// Self-cast skills target the host; all others target the draggable marker.
// 自身施法技能以主角为目标;其余技能以可拖动标记为目标。
@@ -805,6 +806,8 @@ namespace BrewMonster
if(!replayAttackAnim)
ScheduleFadeAllGfxWhenAttackStopped(attackTime);
SkillVisibleStateResolver.TryApplyLocalExtStates(skillId, hostPlayer, targetMarker);
}
}
}
@@ -14,6 +14,54 @@ namespace PerfectWorld.Scripts
private int _playActionIndex;
private bool _playActionRestart = true;
static AnimScenePlayerBootstrapEditor()
{
EditorApplication.playModeStateChanged += OnPlayModeStateChanged;
}
private static void OnPlayModeStateChanged(PlayModeStateChange state)
{
if (state != PlayModeStateChange.ExitingEditMode)
{
return;
}
var boots = Object.FindObjectsByType<AnimScenePlayerBootstrap>(
FindObjectsInactive.Include,
FindObjectsSortMode.None);
foreach (AnimScenePlayerBootstrap boot in boots)
{
boot.ApplyPersistedEditorSwitchRole();
EditorUtility.SetDirty(boot);
}
}
private void OnEnable()
{
_editorSwitchProfession = (Profession)EditorPrefs.GetInt(
AnimScenePlayerBootstrap.EditorPrefsSwitchProfessionKey,
(int)Profession.PROF_MAGE);
_editorSwitchGender = (Gender)EditorPrefs.GetInt(
AnimScenePlayerBootstrap.EditorPrefsSwitchGenderKey,
(int)Gender.GENDER_FEMALE);
}
private void OnDisable()
{
SaveSwitchModelEditorPrefs();
}
private static void SaveSwitchModelEditorPrefs(Profession profession, Gender gender)
{
EditorPrefs.SetInt(AnimScenePlayerBootstrap.EditorPrefsSwitchProfessionKey, (int)profession);
EditorPrefs.SetInt(AnimScenePlayerBootstrap.EditorPrefsSwitchGenderKey, (int)gender);
}
private void SaveSwitchModelEditorPrefs()
{
SaveSwitchModelEditorPrefs(_editorSwitchProfession, _editorSwitchGender);
}
public override void OnInspectorGUI()
{
DrawDefaultInspector();
@@ -21,16 +69,27 @@ namespace PerfectWorld.Scripts
EditorGUILayout.Space(8f);
EditorGUILayout.LabelField("Play Mode — switch model", EditorStyles.boldLabel);
EditorGUILayout.HelpBox(
"Enter Play Mode, pick profession / gender below, then click Switch model. " +
"This calls SwitchRole on this component (same as code).",
"On Play Mode enter, the model loads from the profession / gender below (saved in EditorPrefs). " +
"Use Switch model to change role while playing.",
MessageType.Info);
using (new EditorGUI.DisabledScope(!Application.isPlaying))
{
_editorSwitchProfession =
(Profession)EditorGUILayout.EnumPopup("Switch to profession", _editorSwitchProfession);
_editorSwitchGender =
(Gender)EditorGUILayout.EnumPopup("Switch to gender", _editorSwitchGender);
Profession profession = (Profession)EditorGUILayout.EnumPopup(
"Switch to profession",
_editorSwitchProfession);
if (profession != _editorSwitchProfession)
{
_editorSwitchProfession = profession;
SaveSwitchModelEditorPrefs();
}
Gender gender = (Gender)EditorGUILayout.EnumPopup("Switch to gender", _editorSwitchGender);
if (gender != _editorSwitchGender)
{
_editorSwitchGender = gender;
SaveSwitchModelEditorPrefs();
}
}
using (new EditorGUI.DisabledScope(!Application.isPlaying))
@@ -223,6 +223,31 @@ namespace BrewMonster
return false;
}
/// <summary>
/// Returns all skill_state_action rows for a skill (anim-test / debug lookup).
/// </summary>
public bool TryGetSkillStateActions(int skillId, out IReadOnlyList<SkillStateActionRow> rows)
{
rows = null;
SkillStateActionConfig cfg = skillStateActionConfig;
if (cfg?.Entries == null || cfg.Entries.Count == 0)
return false;
var matches = new List<SkillStateActionRow>();
for (int i = 0; i < cfg.Entries.Count; i++)
{
SkillStateActionRow row = cfg.Entries[i];
if (row.skill == skillId)
matches.Add(row);
}
if (matches.Count == 0)
return false;
rows = matches;
return true;
}
private void Update()
{
uint dwDeltaTime = (uint)(Time.deltaTime * 1000);
@@ -836,7 +861,6 @@ namespace BrewMonster
if (nCastTargetID == tar.idTarget)
bCastInTargets = true;
BMLogger.LogError("HoangDev: nCastTargetID:"+nCastTargetID);
AddOneTarget(nCastTargetID, nHostID, szFly, szHit, tar, i == 0, bIsGoblinSkill);
}
}
@@ -11,14 +11,13 @@ using UnityEngine;
namespace BrewMonster
{
public class CECSkillGfxEvent : A3DSkillGfxEvent
{
protected EC_ManPlayer m_pPlayerMan; // 玩家管理器 / Player manager
protected CECNPCMan m_pNPCMan; // NPC管理器 / NPC manager
protected EC_ManPlayer m_pPlayerMan; // 玩家管理器 / Player manager
protected CECNPCMan m_pNPCMan; // NPC管理器 / NPC manager
private GameObject m_flyGfxInstance; // 飞行特效实例 / Fly GFX instance
private GameObject m_hitGfxInstance; // 命中特效实例 / Hit GFX instance
private GameObject m_flyGfxInstance; // 飞行特效实例 / Fly GFX instance
private GameObject m_hitGfxInstance; // 命中特效实例 / Hit GFX instance
public CECSkillGfxEvent(GfxMoveMode mode) : base(mode)
{
@@ -136,7 +135,8 @@ namespace BrewMonster
}
catch (System.Exception ex)
{
BMLogger.LogError($"[SKILL_GFX_DEBUG] GetTargetCenter: Exception accessing target {m_nTargetID} - {ex.Message}");
BMLogger.LogError(
$"[SKILL_GFX_DEBUG] GetTargetCenter: Exception accessing target {m_nTargetID} - {ex.Message}");
// Return last known position or zero
// 返回最后已知位置或零
return m_vTargetPos != Vector3.zero ? m_vTargetPos : Vector3.zero;
@@ -196,7 +196,8 @@ namespace BrewMonster
pTargetPos.szHanger,
pTargetPos.bChildHook);
m_bTargetDirAndUpExist = _get_dir_and_up_by_id(m_pPlayerMan, m_pNPCMan, (int)m_nTargetID, out m_vTargetDir, out m_vTargetUp);
m_bTargetDirAndUpExist = _get_dir_and_up_by_id(m_pPlayerMan, m_pNPCMan, (int)m_nTargetID,
out m_vTargetDir, out m_vTargetUp);
}
else
{
@@ -235,26 +236,14 @@ namespace BrewMonster
// Spawn fly GFX when entering Flying state / 进入飞行状态时生成飞行特效
if (prevState == GfxSkillEventState.enumWait && m_enumState == GfxSkillEventState.enumFlying)
{
#region agent log
#if UNITY_EDITOR || DEVELOPMENT_BUILD
DebugSessionLog.Write("CECSkillGfxEvent.Tick", "wait_to_flying", "D",
new DebugSessionPayload
{
eventId = m_debugEventId,
prevState = prevState.ToString(),
newState = m_enumState.ToString(),
frame = Time.frameCount
});
#endif
#endregion
#if UNITY_EDITOR
Vector3 currentPos = m_pMoveMethod.GetPos();
//BMLogger.LogError($"[SKILL_GFX_DEBUG] Event.Tick: Registering gizmo - hostPos={m_vHostPos}, targetPos={m_vTargetPos}, currentPos={currentPos}, hostExist={m_bHostExist}, targetExist={m_bTargetExist}");
if (m_vHostPos.sqrMagnitude > 0.01f && m_vTargetPos.sqrMagnitude > 0.01f)
{
SkillGfxGizmoDrawer.RegisterProjectile(m_nHostID, m_nTargetID, m_vHostPos, m_vTargetPos, m_pMoveMethod.GetMode());
SkillGfxGizmoDrawer.RegisterProjectile(m_nHostID, m_nTargetID, m_vHostPos, m_vTargetPos,
m_pMoveMethod.GetMode());
}
#endif
@@ -360,25 +349,9 @@ namespace BrewMonster
}
Vector3 pos = m_pMoveMethod.GetPos();
/* Vector3 dir = m_pMoveMethod.GetMoveDir();
Quaternion rot = dir.sqrMagnitude > 1e-4f ? Quaternion.LookRotation(dir) : Quaternion.identity;*/
BMLogger.LogError($"[SKILL_GFX_DEBUG] SpawnFlyGfx: Fly GFX "+ m_pComposer.flyGfxName);
Quaternion rot = prefab.transform.rotation;
#region agent log
#if UNITY_EDITOR || DEVELOPMENT_BUILD
DebugSessionLog.Write("CECSkillGfxEvent.SpawnFlyGfx", "spawn_fly_gfx", "D",
new DebugSessionPayload
{
eventId = m_debugEventId,
hostId = (int)m_nHostID,
targetId = (int)m_nTargetID,
flyGfx = m_pComposer?.flyGfxName ?? "",
frame = Time.frameCount
});
#endif
#endregion
m_flyGfxInstance = GameObject.Instantiate(prefab, pos, prefab.transform.rotation);
m_flyGfxInstance = GameObject.Instantiate(prefab, pos, rot);
SFXManager.Instance?.PlaySkillSfxAtPointAsync(m_pComposer.GetFlySfxPath(), pos).Forget();
// If m_bTraceTarget is true, add to tracking list when spawned
@@ -397,6 +370,12 @@ namespace BrewMonster
{
if (m_flyGfxInstance == null) return;
m_flyGfxInstance.transform.position = m_pMoveMethod.GetPos();
// enumOnTarget effects stay at target with prefab-authored rotation (e.g. skill 182 hail)
// enumOnTarget特效在目标处保持预制体原始旋转(例如技能182冰雹)
if (m_pMoveMethod.GetMode() == GfxMoveMode.enumOnTarget)
return;
Vector3 dir = m_pMoveMethod.GetMoveDir();
if (dir.sqrMagnitude > 1e-4f)
m_flyGfxInstance.transform.rotation = Quaternion.LookRotation(dir);
@@ -470,7 +449,8 @@ namespace BrewMonster
if (prefab == null)
{
BMLogger.LogWarning($"[SKILL_GFX_DEBUG] SpawnHitGfx: {(bTargetExists ? "Hit" : "Ground Hit")} GFX prefab is NULL - cannot spawn!");
BMLogger.LogWarning(
$"[SKILL_GFX_DEBUG] SpawnHitGfx: {(bTargetExists ? "Hit" : "Ground Hit")} GFX prefab is NULL - cannot spawn!");
return;
}
}
@@ -494,6 +474,7 @@ namespace BrewMonster
if (string.IsNullOrEmpty(hitSfxPath))
hitSfxPath = m_pComposer.GetHitSfxPath();
}
SFXManager.Instance?.PlaySkillSfxAtPointAsync(hitSfxPath, vTarget).Forget();
// If m_bTraceTarget is true, add to tracking list (don't auto-destroy)
@@ -571,7 +552,6 @@ namespace BrewMonster
// pHitGfx->SetActualScale(pHitGfx->GetScale() * 2.0f);
m_pHitGfx = pHitGfx;
}*/
private static bool get_pos_by_id(
EC_ManPlayer pPlayerMan,
CECNPCMan pNPCMan,
@@ -631,10 +611,12 @@ namespace BrewMonster
if (pHook != null)
{
Transform modelTransform = goblinModel.transform;
vPos = HookUtils.GetHookWorldPosition(pHook, pOffset, bRelHook, modelTransform);
vPos = HookUtils.GetHookWorldPosition(pHook, pOffset, bRelHook,
modelTransform);
#if UNITY_EDITOR
BMLogger.Log($"[HOOK_DEBUG] Found goblin hook '{szHook}' for player ID {nID}, position={vPos}");
BMLogger.Log(
$"[HOOK_DEBUG] Found goblin hook '{szHook}' for player ID {nID}, position={vPos}");
#endif
return true;
}
@@ -648,7 +630,8 @@ namespace BrewMonster
vPos.y += 0.5f;
#if UNITY_EDITOR
BMLogger.Log($"[HOOK_DEBUG] Using goblin center position for player ID {nID}, position={vPos}");
BMLogger.Log(
$"[HOOK_DEBUG] Using goblin center position for player ID {nID}, position={vPos}");
#endif
return true;
}
@@ -675,7 +658,8 @@ namespace BrewMonster
if (pModel == null)
{
#if UNITY_EDITOR
BMLogger.LogWarning($"[HOOK_DEBUG] Player model not found for ID {nID}, hook '{szHook}'");
BMLogger.LogWarning(
$"[HOOK_DEBUG] Player model not found for ID {nID}, hook '{szHook}'");
#endif
break;
}
@@ -688,7 +672,8 @@ namespace BrewMonster
if (pModel == null)
{
#if UNITY_EDITOR
BMLogger.LogWarning($"[HOOK_DEBUG] Child model '{szHanger}' not found for player ID {nID}, hook '{szHook}'");
BMLogger.LogWarning(
$"[HOOK_DEBUG] Child model '{szHanger}' not found for player ID {nID}, hook '{szHook}'");
#endif
break;
}
@@ -700,7 +685,8 @@ namespace BrewMonster
if (pHook == null)
{
#if UNITY_EDITOR
BMLogger.LogWarning($"[HOOK_DEBUG] Hook '{szHook}' not found for player ID {nID}, falling back to center position");
BMLogger.LogWarning(
$"[HOOK_DEBUG] Hook '{szHook}' not found for player ID {nID}, falling back to center position");
#endif
break;
}
@@ -714,7 +700,8 @@ namespace BrewMonster
vPos = HookUtils.GetHookWorldPosition(pHook, pOffset, bRelHook, modelTransform);
#if UNITY_EDITOR
BMLogger.Log($"[HOOK_DEBUG] Found hook '{szHook}' for player ID {nID}, position={vPos}, relative={bRelHook}, offset={pOffset}");
BMLogger.Log(
$"[HOOK_DEBUG] Found hook '{szHook}' for player ID {nID}, position={vPos}, relative={bRelHook}, offset={pOffset}");
#endif
return true;
@@ -771,7 +758,8 @@ namespace BrewMonster
if (pModel == null)
{
#if UNITY_EDITOR
BMLogger.LogWarning($"[HOOK_DEBUG] Child model '{szHanger}' not found for NPC ID {nID}, hook '{szHook}'");
BMLogger.LogWarning(
$"[HOOK_DEBUG] Child model '{szHanger}' not found for NPC ID {nID}, hook '{szHook}'");
#endif
break;
}
@@ -783,7 +771,8 @@ namespace BrewMonster
if (pHook == null)
{
#if UNITY_EDITOR
BMLogger.LogWarning($"[HOOK_DEBUG] Hook '{szHook}' not found for NPC ID {nID}, falling back to center position");
BMLogger.LogWarning(
$"[HOOK_DEBUG] Hook '{szHook}' not found for NPC ID {nID}, falling back to center position");
#endif
break;
}
@@ -797,7 +786,8 @@ namespace BrewMonster
vPos = HookUtils.GetHookWorldPosition(pHook, pOffset, bRelHook, modelTransform);
#if UNITY_EDITOR
BMLogger.Log($"[HOOK_DEBUG] Found hook '{szHook}' for NPC ID {nID}, position={vPos}, relative={bRelHook}, offset={pOffset}");
BMLogger.Log(
$"[HOOK_DEBUG] Found hook '{szHook}' for NPC ID {nID}, position={vPos}, relative={bRelHook}, offset={pOffset}");
#endif
return true;
@@ -869,6 +859,7 @@ namespace BrewMonster
return true;
}
}
return false;
}
@@ -960,17 +951,15 @@ namespace BrewMonster
{
_instancesub = new SkillGfxMan(EC_Game.GetGameRun());
}
return _instancesub;
}
set
{
_instancesub = value;
}
set { _instancesub = value; }
}
private const int DEFAULT_EVENT_BUF_SIZE = 10; // 默认事件缓冲区大小 / Default event buffer size
private const int DEFAULT_EVENT_BUF_SIZE = 10; // 默认事件缓冲区大小 / Default event buffer size
public LinkedList<CECSkillGfxEvent> m_EventLst; // 活动事件列表 / Active event list
public LinkedList<CECSkillGfxEvent> m_EventLst; // 活动事件列表 / Active event list
protected LinkedList<CECSkillGfxEvent>[] m_FreeLst;
protected EC_ManPlayer m_pPlayerMan;
protected CECNPCMan m_pNPCMan;
@@ -1012,6 +1001,7 @@ namespace BrewMonster
base.Dispose();
InstanceSub = null;
}
public A3DSkillGfxEvent GetEmptyEvent(GfxMoveMode mode)
{
int modeIndex = (int)mode;
@@ -1136,6 +1126,7 @@ namespace BrewMonster
{
GameObject.Destroy(gfx);
}
m_TraceTargetGfxList.Remove(gfx);
m_TraceTargetGfxSkillMap.Remove(gfx);
}
@@ -1166,6 +1157,7 @@ namespace BrewMonster
nullKeys.Add(kvp.Key);
}
}
foreach (var key in nullKeys)
{
m_TraceTargetGfxSkillMap.Remove(key);
@@ -1226,7 +1218,7 @@ namespace BrewMonster
/// </summary>
public class CECSkillGfxMan : CECManager
{
protected SkillGfxMan m_GfxMan; // 技能特效管理器 / Skill GFX manager
protected SkillGfxMan m_GfxMan; // 技能特效管理器 / Skill GFX manager
public CECSkillGfxMan(CECGameRun pGameRun) : base(pGameRun)
{
@@ -1305,10 +1297,10 @@ namespace BrewMonster
dwInterval,
param ?? default,
dwModifier,
false, // bOnlyOneHit
false, // bFadeOut
false, // bIsGoblinSkill
false // bReverse
false, // bOnlyOneHit
false, // bFadeOut
false, // bIsGoblinSkill
false // bReverse
);
}
}
@@ -1363,12 +1355,12 @@ namespace BrewMonster
/// </summary>
public class SGC_POS_INFO
{
public GfxHitPos HitPos; // 命中位置类型 / Hit position type
public string szHook; // 挂点名称 / Hook name
public bool bRelHook; // 是否相对挂点 / Is relative to hook
public Vector3 vOffset; // 偏移量 / Offset
public string szHanger; // 挂载者名称 / Hanger name
public bool bChildHook; // 是否子挂点 / Is child hook
public GfxHitPos HitPos; // 命中位置类型 / Hit position type
public string szHook; // 挂点名称 / Hook name
public bool bRelHook; // 是否相对挂点 / Is relative to hook
public Vector3 vOffset; // 偏移量 / Offset
public string szHanger; // 挂载者名称 / Hanger name
public bool bChildHook; // 是否子挂点 / Is child hook
public SGC_POS_INFO()
{
@@ -1387,9 +1379,8 @@ namespace BrewMonster
/// </summary>
public partial class A3DSkillGfxComposer
{
public SGC_POS_INFO m_FlyPos = new SGC_POS_INFO(); // 飞行起始位置信息 / Fly start position info
public SGC_POS_INFO m_FlyEndPos = new SGC_POS_INFO(); // 飞行结束位置信息 / Fly end position info
public SGC_POS_INFO m_HitPos = new SGC_POS_INFO(); // 命中位置信息 / Hit position info
public SGC_POS_INFO m_FlyPos = new SGC_POS_INFO(); // 飞行起始位置信息 / Fly start position info
public SGC_POS_INFO m_FlyEndPos = new SGC_POS_INFO(); // 飞行结束位置信息 / Fly end position info
public SGC_POS_INFO m_HitPos = new SGC_POS_INFO(); // 命中位置信息 / Hit position info
}
}
@@ -111,6 +111,14 @@ namespace BrewMonster
m_iFashionWeaponType = -1;
}
/// <summary>
/// Animation test scene skips server LoadResources; mark all resource flags so ShowExtendStates can play state GFX.
/// </summary>
public void AnimSceneMarkResourcesReady()
{
m_dwResFlags = (uint)PlayerResourcesReadyFlag.RESFG_ALL;
}
/// <summary>
/// Inspector/debug: non-null string means <see cref="PlayAction"/> will no-op or return false before Animancer runs.
/// 非空表示 PlayAction 会在播放前失败或直接被拒。
@@ -915,7 +915,13 @@ namespace BrewMonster
return;
}
if (!IsAllResReady() || !GetMajorModel())
{
// #region agent log
LogPanelAnimeScene.AgentDebugLog("ShowExtendStates:blocked", "resource gate", "H5",
$"{{\"isAllResReady\":{IsAllResReady().ToString().ToLower()},\"hasMajorModel\":{(GetMajorModel() != null).ToString().ToLower()},\"isModelReady\":{IsPlayerModelReady.ToString().ToLower()}}}");
// #endregion
return;
}
//TODO: Implement optimization
// if (!bIgnoreOptimize &&
// !CECOptimize::Instance().GetGFX().CanShowState(GetCharacterID(), GetClassID()))
@@ -3086,6 +3092,10 @@ namespace BrewMonster
if (prefab == null)
{
BMLogger.LogWarning($"[StateGFX] Failed to load prefab: {path}");
// #region agent log
LogPanelAnimeScene.AgentDebugLog("PlayStateGfxAsync:fail", "prefab load failed", "H6",
$"{{\"path\":\"{path}\",\"hook\":\"{hook ?? ""}\"}}");
// #endregion
return;
}
// [中文] 查找挂点骨骼,未找到则回退到玩家根 transform
@@ -3098,6 +3108,10 @@ namespace BrewMonster
vfx.transform.localPosition = Vector3.zero;
_stateGfxObjects[key] = vfx;
// #region agent log
LogPanelAnimeScene.AgentDebugLog("PlayStateGfxAsync:spawned", "state gfx instantiated", "H6",
$"{{\"path\":\"{path}\",\"hook\":\"{hook ?? ""}\",\"parent\":\"{parent.name}\"}}");
// #endregion
}
// [中文] 在武器 CECModel 上移除状态效果 GFX(武器挂点逻辑未接入,暂存桩)
@@ -45,26 +45,6 @@ namespace BrewMonster
{
m_vOffset = Vector3.zero;
}
#region agent log
#if UNITY_EDITOR || DEVELOPMENT_BUILD
DebugSessionLog.Write("CGfxOnTargetMove.StartMove", "on_target_start", "F",
new DebugSessionPayload
{
spawnX = m_vPos.x,
spawnY = m_vPos.y,
spawnZ = m_vPos.z,
targetX = vTarget.x,
targetY = vTarget.y,
targetZ = vTarget.z,
radius = m_fRadius,
offsetMag = m_vOffset.magnitude,
isCluster = m_bOneOfCluser,
isArea = m_bArea,
frame = Time.frameCount
});
#endif
#endregion
}
/// <summary>
+2 -2
View File
@@ -5,14 +5,14 @@
"param": 73125,
"hasParam": true,
"describe": "NoCooldown",
"lastUsedUtcTicks": 639155498263144047
"lastUsedUtcTicks": 639156347373042511
},
{
"header": 1992,
"param": 0,
"hasParam": false,
"describe": "Buff rage",
"lastUsedUtcTicks": 639155497985615593
"lastUsedUtcTicks": 639156346405221629
},
{
"header": 2000,