Merge remote-tracking branch 'origin/develop' into feature/EP_add_in_pooling_system
This commit is contained in:
@@ -285,6 +285,11 @@ MonoBehaviour:
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 47e6c4feb83f4494ebe7d862483ca89e
|
||||
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u6B66\u4FA0/\u9738\u738B\u65AD\u5CB3\u9884\u5907.gfx"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 48582ea91cdc6ab4a95e1b58797d046b
|
||||
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u4EBA\u7269\u6280\u80FD/\u51FB\u4E2D/\u72EE\u5B50\u543C\u51FB\u4E2D.gfx"
|
||||
m_ReadOnly: 0
|
||||
@@ -515,6 +520,11 @@ MonoBehaviour:
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 77a6e958f81eaa944b9bbed7fbbb1603
|
||||
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u6B66\u4FA0/\u9738\u738B\u66B4\u6012\u9884\u5907.gfx"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 7887d4c9101722741b42a2a2392a6ada
|
||||
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u88C5\u5907\u5B9D\u77F3\u9576\u5D4C/\u767D\u8272\u80F8\u75321\u7EA7.gfx"
|
||||
m_ReadOnly: 0
|
||||
@@ -900,6 +910,11 @@ MonoBehaviour:
|
||||
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
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: e2aad3a6b5254724bace8867b7bf5cce
|
||||
m_Address: "gfx/\u7B56\u5212\u8054\u5165/\u72B6\u6001\u6548\u679C/\u5B9A\u8EAB.gfx"
|
||||
m_ReadOnly: 0
|
||||
@@ -940,6 +955,11 @@ MonoBehaviour:
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f6712134b0daeab49ab9ada508269f1c
|
||||
m_Address: "gfx/\u4EBA\u7269/\u6280\u80FD/\u6B66\u4FA0/\u9738\u738B\u66B4\u6012\u9884\u59071.gfx"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f7afdff4d28a54f4487905be81edc8a9
|
||||
m_Address: "gfx/\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u9738\u738B\u732E\u9F0E.gfx"
|
||||
m_ReadOnly: 0
|
||||
|
||||
@@ -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: "\u8840\u96FE2"
|
||||
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: 6df8da3ee3e96df44915bdc952b46254, 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: 0.5
|
||||
- _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: 2, g: 2, b: 2, 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: a793ccccbe99e2e4ba4b265f9d0d7d0c
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,107 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fccf64069712ca94fbfd28e787e835ce
|
||||
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.
@@ -0,0 +1,21 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6df8da3ee3e96df44915bdc952b46254
|
||||
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: e177087afce72de419bc651787c342d4
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 47e6c4feb83f4494ebe7d862483ca89e
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 77a6e958f81eaa944b9bbed7fbbb1603
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f6712134b0daeab49ab9ada508269f1c
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: da26e4066a8a74045b324d5939f84fae
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,210 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-9125591884435407841
|
||||
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: trail012_clamp
|
||||
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:
|
||||
- _CUSTOMMAINTEX_ON
|
||||
- _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: f296ce99babd3364ea800e15e7efa080, 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: 1
|
||||
- _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: a26bcf269d08a484e9258128a24da667
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 11717a108c8cc3a44a4210df59ff1d49
|
||||
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: "\u4E94\u4F53\u7B26\u91CA\u653E"
|
||||
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: af21047088feebe46972adf29984e3cc, 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: 270
|
||||
- _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: 45a63d0bb9112ed45802dca4835b63c0
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f296ce99babd3364ea800e15e7efa080
|
||||
IHVImageFormatImporter:
|
||||
externalObjects: {}
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
isReadable: 0
|
||||
sRGBTexture: 1
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
ignoreMipmapLimit: 0
|
||||
mipmapLimitGroupName:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
fileFormatVersion: 2
|
||||
guid: af21047088feebe46972adf29984e3cc
|
||||
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:
|
||||
@@ -127,6 +127,8 @@ namespace ModelViewer.Common
|
||||
public int m_nMinLoops;
|
||||
public int m_nMaxLoops;
|
||||
|
||||
public bool IsInfinite() { return m_nMinLoops == -1 || m_nMaxLoops == -1; }
|
||||
public int CalcLoopNum() { return IsInfinite() ? -1 : Random.Range(m_nMinLoops, m_nMaxLoops); }
|
||||
public bool Load(FileStream fileStream, StreamReader file, uint dwVersion)
|
||||
{
|
||||
bool isBinary = fileStream != null;
|
||||
@@ -174,6 +176,21 @@ namespace ModelViewer.Common
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class ACTIONDYN_DATA
|
||||
{
|
||||
private int m_nLoopNum;
|
||||
ACTION_INFO m_pInfo;
|
||||
public ACTIONDYN_DATA(int nLoopNum = 0, ACTION_INFO pInfo = null)
|
||||
{
|
||||
m_nLoopNum = nLoopNum;
|
||||
m_pInfo = pInfo;
|
||||
}
|
||||
public int GetLoopNum() { return m_nLoopNum; }
|
||||
public ACTION_INFO GetActInfo() { return m_pInfo; }
|
||||
public int GetTimeSpan() { return 1/*m_pInfo.GetTimeSpan()*/; }
|
||||
public int GetTotalTime() { return GetLoopNum() * GetTimeSpan(); }
|
||||
}
|
||||
[System.Serializable]
|
||||
public class EVENT_INFO
|
||||
{
|
||||
@@ -487,7 +504,7 @@ namespace ModelViewer.Common
|
||||
|
||||
public string m_strName;
|
||||
public int m_nLoops;
|
||||
|
||||
|
||||
public bool IsLooping()
|
||||
{
|
||||
if (m_ActLst.Count == 0)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using BrewMonster.Scripts;
|
||||
using CSNetwork.GPDataType;
|
||||
@@ -15,6 +16,7 @@ using BrewMonster;
|
||||
using BrewMonster.Scripts.ECModel;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Unity.VisualScripting.FullSerializer;
|
||||
using Unity.VisualScripting;
|
||||
public enum ECMScript
|
||||
{
|
||||
enumECMScriptStartAction = 0,
|
||||
@@ -93,6 +95,7 @@ public class A3DCombActDynData
|
||||
|
||||
public List<string> m_ActionNames = new List<string>();
|
||||
public List<string> m_SFXNames = new List<string>();
|
||||
public List<GameObject> m_GFXObjects = new List<GameObject>();
|
||||
public bool IsActionStopped() { return m_ActionNames.Count == 0; }
|
||||
/// <summary>True when there is no attack or damage has been applied. / 无攻击事件或已造成伤害则为 true</summary>
|
||||
public bool IsAllEventFinished() { return (ActiveAttackEvent == null || ActiveAttackEvent.m_bDoDamaged); }
|
||||
@@ -138,18 +141,11 @@ public class A3DCombActDynData
|
||||
m_bSetSpeedWhenActStart = false;
|
||||
m_fModelScale = 1.0f;
|
||||
var actInfoList = pAct.m_ActLst;
|
||||
// {
|
||||
// ActInfoList& actInfoList = pAct->m_ActLst;
|
||||
// ALISTPOSITION pos = actInfoList.GetHeadPosition();
|
||||
// while (pos)
|
||||
// {
|
||||
// PACTION_INFO pAct = actInfoList.GetNext(pos);
|
||||
// int nDynLoopNum = pAct->CalcLoopNum();
|
||||
// m_arrActLoopNum.Add(ACTIONDYN_DATA(nDynLoopNum, pAct));
|
||||
// if (!m_bIsInfiniteComAct && nDynLoopNum < 0) m_bIsInfiniteComAct = true;
|
||||
// }
|
||||
// CalcDynComActSpan();
|
||||
// }
|
||||
foreach(var actInfo in actInfoList)
|
||||
{
|
||||
int nDynLoopNum = actInfo.CalcLoopNum();
|
||||
if (!m_bIsInfiniteComAct && nDynLoopNum < 0) m_bIsInfiniteComAct = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <param name="triggerVisualAndFx">
|
||||
@@ -197,12 +193,13 @@ public class A3DCombActDynData
|
||||
ChannelAct channelAct = m_pECModel.GetChannelAct(m_nChannel);
|
||||
if (channelAct != null)
|
||||
{
|
||||
bool isLoop = m_pAct.m_nLoops == 1;
|
||||
bool isLoop = m_bIsInfiniteComAct;
|
||||
int ownerId = m_pECModel.GetId();
|
||||
EventBus.PublishChannel(ownerId, new PlayActionEvent(ref channelAct, actionInfos[0].m_strName, m_nTransTime, bForceStopPrevious, ActiveAttackEvent, isLoop, channelRank));
|
||||
m_ActionNames.Add(actionInfos[0].m_strName);
|
||||
for(int i = 1; i < actionInfos.Count; i++)
|
||||
{
|
||||
isLoop = m_bIsInfiniteComAct;
|
||||
EventBus.PublishChannelClass(ownerId, new QueueActionEvent(ref channelAct, actionInfos[i].m_strName, null, false, null, m_nTransTime, false, isLoop, channelRank));
|
||||
m_ActionNames.Add(actionInfos[i].m_strName);
|
||||
}
|
||||
@@ -213,7 +210,7 @@ public class A3DCombActDynData
|
||||
/// <summary>
|
||||
/// Sound events embedded in combined action; skip gfx paths. / 组合动作内嵌音效事件;跳过 gfx 路径。
|
||||
/// </summary>
|
||||
void TriggerSFxFromEventList()
|
||||
async void TriggerSFxFromEventList()
|
||||
{
|
||||
if (m_bNoFx || m_pAct == null)
|
||||
return;
|
||||
@@ -228,27 +225,83 @@ public class A3DCombActDynData
|
||||
{
|
||||
if (sfx.m_strFilePaths != null && sfx.m_strFilePaths.Count > 0)
|
||||
{
|
||||
string soundpath = AFile.NormalizePath(sfx.m_strFilePaths[0], true);
|
||||
if (soundpath.Contains("gfx"))
|
||||
continue;
|
||||
soundpath = soundpath.ToLower();
|
||||
m_SFXNames.Add(soundpath);
|
||||
string path = AFile.NormalizePath(sfx.m_strFilePaths[0], true);
|
||||
if (path.Contains("gfx"))
|
||||
goto GFX;
|
||||
|
||||
path = path.ToLower();
|
||||
m_SFXNames.Add(path);
|
||||
try
|
||||
{
|
||||
SFXManager.Instance
|
||||
.PlaySkillSfxAtPointAsync(soundpath, Vector3.zero).Forget();
|
||||
.PlaySkillSfxAtPointAsync(path, Vector3.zero).Forget();
|
||||
}
|
||||
finally
|
||||
{
|
||||
// remove AFTER sound finished
|
||||
m_SFXNames.Remove(soundpath);
|
||||
m_SFXNames.Remove(path);
|
||||
}
|
||||
goto END;
|
||||
GFX:
|
||||
{
|
||||
path = "gfx/" + path;
|
||||
GameObject prefab = await AddressableManager.Instance.LoadPrefabAsync(path);
|
||||
GameObject fx = null;
|
||||
if(prefab != null && m_pECModel != null)
|
||||
{
|
||||
// LoadPrefabAsync returns the prefab asset; must Instantiate before modifying transform.
|
||||
// LoadPrefabAsync 返回的是预制体资源,必须先 Instantiate 再改 Transform。
|
||||
fx = GameObject.Instantiate(prefab, m_pECModel.transform);
|
||||
fx.SetActive(true);
|
||||
fx.transform.localPosition = Vector3.zero;
|
||||
fx.transform.localRotation = Quaternion.identity;
|
||||
fx.transform.localScale = Vector3.one;
|
||||
ParticleSystem ps = fx.GetComponent<ParticleSystem>();
|
||||
if (ps != null)
|
||||
ps.Play();
|
||||
}
|
||||
else if (prefab == null)
|
||||
{
|
||||
GameObject prefab2 = Resources.Load<GameObject>("GFX/" + "PlaceHolder");
|
||||
if(prefab2 != null && m_pECModel != null)
|
||||
{
|
||||
fx = GameObject.Instantiate(prefab2, m_pECModel.transform);
|
||||
fx.SetActive(true);
|
||||
fx.transform.localPosition = Vector3.zero;
|
||||
fx.transform.localRotation = Quaternion.identity;
|
||||
fx.transform.localScale = Vector3.one;
|
||||
ParticleSystem ps2 = fx.GetComponent<ParticleSystem>();
|
||||
if (ps2 != null)
|
||||
ps2.Play();
|
||||
}
|
||||
}
|
||||
if(fx != null)
|
||||
{
|
||||
m_GFXObjects.Add(fx);
|
||||
}
|
||||
// var gfxLogPath = Path.Combine(Application.dataPath, "PerfectWorld", "Scripts", "NPC", "GFXLOG.txt");
|
||||
// var lines = new List<string>();
|
||||
// if (File.Exists(gfxLogPath))
|
||||
// {
|
||||
// foreach (var line in File.ReadAllLines(gfxLogPath))
|
||||
// {
|
||||
// if (string.Equals(line.Trim(), path, StringComparison.OrdinalIgnoreCase))
|
||||
// continue;
|
||||
// lines.Add(line);
|
||||
// }
|
||||
// }
|
||||
// lines.Add(path);
|
||||
// File.WriteAllLines(gfxLogPath, lines);
|
||||
}
|
||||
END:
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public void Stop(bool bStopAct, bool bForceStopFx = false )
|
||||
{
|
||||
RemoveAllActiveFx();
|
||||
// FlushDamageInfo();
|
||||
|
||||
// ClearParentInfo();
|
||||
@@ -280,7 +333,24 @@ public class A3DCombActDynData
|
||||
// if (pChannel)
|
||||
// pChannel->StopAction(m_pAct->GetRank(m_nChannel));
|
||||
}
|
||||
|
||||
public void UpdateAct(uint dwUpdateTime)
|
||||
{
|
||||
if(IsActionStopped())
|
||||
{
|
||||
RemoveAllActiveFx();
|
||||
}
|
||||
}
|
||||
public void RemoveAllActiveFx()
|
||||
{
|
||||
foreach(var fx in m_GFXObjects)
|
||||
{
|
||||
if(fx != null)
|
||||
{
|
||||
GameObject.Destroy(fx);
|
||||
}
|
||||
}
|
||||
m_GFXObjects.Clear();
|
||||
}
|
||||
public void SetUserData(int dwUserData) { m_dwUserData = dwUserData; }
|
||||
public void SetTransTime(int nTransTime) { m_nTransTime = nTransTime; }
|
||||
public void SetStopPrevAct(bool bStopPrevAct) { m_bStopPrevAct = bStopPrevAct; }
|
||||
@@ -314,12 +384,13 @@ public class ChannelActNode
|
||||
}
|
||||
public void RemoveQueuedActs()
|
||||
{
|
||||
m_pActive.RemoveAllActiveFx();
|
||||
m_QueuedActs.Clear();
|
||||
}
|
||||
}
|
||||
public class ChannelAct
|
||||
{
|
||||
public List<ChannelActNode> m_RankNodes;
|
||||
public List<ChannelActNode> m_RankNodes = new List<ChannelActNode>();
|
||||
|
||||
public ChannelAct()
|
||||
{
|
||||
@@ -332,6 +403,16 @@ public class ChannelAct
|
||||
{
|
||||
m_RankNodes = new List<ChannelActNode>();
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach(var node in m_RankNodes)
|
||||
{
|
||||
if(node != null)
|
||||
{
|
||||
node.RemoveQueuedActs();
|
||||
}
|
||||
}
|
||||
}
|
||||
m_RankNodes.Clear();
|
||||
}
|
||||
|
||||
@@ -493,7 +574,6 @@ public class CECModelStaticData
|
||||
private string m_strPixelShader = string.Empty;
|
||||
private string m_strShaderTex = string.Empty;
|
||||
private readonly List<object> m_vecPSConsts = new List<object>();
|
||||
|
||||
public CECModelStaticData()
|
||||
{
|
||||
ResetOuterData();
|
||||
@@ -718,6 +798,7 @@ public class CECModel
|
||||
private Dictionary<string, CECModel> m_childModels = new Dictionary<string, CECModel>();
|
||||
private Transform m_transform;
|
||||
private bool m_bAbsTrack = false;
|
||||
private bool m_bFirstActPlayed = false;
|
||||
public bool InheritParentId() => m_bInheritParentId;
|
||||
public void SetId(int nId) => m_nId = nId;
|
||||
public int GetId() => m_nId;
|
||||
@@ -1027,11 +1108,41 @@ public class CECModel
|
||||
{
|
||||
return false;
|
||||
}
|
||||
var pNode = m_ChannelActs[nChannel].GetNodeByRank(0);
|
||||
byte rank = 0;
|
||||
ChannelAct ca = m_ChannelActs[nChannel];
|
||||
ChannelActNode pNode = ca.GetNodeByRank(rank);
|
||||
A3DCombActDynData pActive;
|
||||
|
||||
if (pNode != null)
|
||||
{
|
||||
pActive = pNode.m_pActive;
|
||||
pNode.RemoveQueuedActs();
|
||||
}
|
||||
else
|
||||
{
|
||||
pActive = null;
|
||||
}
|
||||
|
||||
if (!bRestart && pActive != null && pActive.GetComAct().m_strName == szActName)
|
||||
return true;
|
||||
|
||||
// if (m_pBlurInfo != null && m_pBlurInfo.m_bRoot && m_pBlurInfo.m_bStopWhenActChange)
|
||||
// RemoveMotionBlurInfo();
|
||||
if (pActive != null)
|
||||
{
|
||||
pActive.Stop(bForceStop);
|
||||
pActive = null;
|
||||
}
|
||||
else if (!m_bFirstActPlayed)
|
||||
{
|
||||
m_bFirstActPlayed = true;
|
||||
nTransTime = 0;
|
||||
}
|
||||
if (pNode == null)
|
||||
{
|
||||
pNode = new ChannelActNode { m_Rank = 0 };
|
||||
m_ChannelActs[nChannel].m_RankNodes.Add(pNode);
|
||||
pNode = new ChannelActNode();
|
||||
pNode.m_Rank = rank;
|
||||
ca.m_RankNodes.Add(pNode);
|
||||
}
|
||||
pNode.m_pActive = new A3DCombActDynData(combinedAction, this, attackEvent);
|
||||
pNode.m_pActive.SetUserData((int)dwUserData);
|
||||
@@ -1158,7 +1269,6 @@ public class CECModel
|
||||
if (node.m_QueuedActs.Count > 0)
|
||||
{
|
||||
A3DCombActDynData pNext = node.m_QueuedActs[0];
|
||||
node.m_QueuedActs.RemoveAt(0);
|
||||
|
||||
if (pNext.GetStopPrevAct())
|
||||
{
|
||||
@@ -1180,6 +1290,7 @@ public class CECModel
|
||||
node.m_pActive = pNext;
|
||||
node.m_pActive.Play(i, 1f, node.m_pActive.GetTransTime(), 0/**m_EventMasks[i]*/, true, m_bAbsTrack, pNext.GetNoFxFlag());
|
||||
//pNext.UpdateAct(dwUpdateTime);
|
||||
node.m_QueuedActs.RemoveAt(0);
|
||||
m_bAbsTrack = false;
|
||||
}
|
||||
else
|
||||
@@ -1188,8 +1299,10 @@ public class CECModel
|
||||
rankNodes.RemoveAt(n);
|
||||
}
|
||||
}
|
||||
// else
|
||||
// node.m_pActive.UpdateAct(dwUpdateTime);
|
||||
else
|
||||
{
|
||||
node.m_pActive.UpdateAct(dwUpdateTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,8 @@ namespace BrewMonster.Network
|
||||
private string _username = "";
|
||||
private string _password = "";
|
||||
private bool _isIntentionalDisconnect = false;
|
||||
|
||||
private bool _wasUnexpectedlyDisconnected = false;
|
||||
// When true, prevent all outgoing protocols (background ticks, tasks, etc.) from sending.
|
||||
private bool _suppressOutgoing = false;
|
||||
|
||||
@@ -267,7 +269,10 @@ namespace BrewMonster.Network
|
||||
if (entryTarget == LogoutFlowState.LoginEntryTarget.LoginUI)
|
||||
{
|
||||
// Account logout only; half logout keeps SDK credentials so LoginScene can reopen role select.
|
||||
Tech3CSDKWrapper.Instance.Logout();
|
||||
if (Tech3CSDKWrapper.Instance.EnsureInitialized())
|
||||
{
|
||||
Tech3CSDKWrapper.Instance.Logout();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -357,6 +362,14 @@ namespace BrewMonster.Network
|
||||
SceneManager.UnloadSceneAsync(currentScene);
|
||||
}
|
||||
|
||||
public bool ConsumeUnexpectedDisconnect()
|
||||
{
|
||||
bool value = _wasUnexpectedlyDisconnected;
|
||||
_wasUnexpectedlyDisconnected = false;
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
private Task WaitForDisconnectAsync(int timeoutMs)
|
||||
{
|
||||
if (_gameSession == null || !_gameSession.IsConnected)
|
||||
@@ -803,6 +816,8 @@ namespace BrewMonster.Network
|
||||
return;
|
||||
}
|
||||
|
||||
_wasUnexpectedlyDisconnected = true;
|
||||
|
||||
// Show disconnect message box
|
||||
CECUIManager.Instance?.ShowMessageBoxYes("Disconnected", "Connection to the server has been lost.", null,
|
||||
() =>
|
||||
@@ -813,6 +828,15 @@ namespace BrewMonster.Network
|
||||
|
||||
}
|
||||
|
||||
public bool TryConsumeUnexpectedDisconnect()
|
||||
{
|
||||
if(!_wasUnexpectedlyDisconnected)
|
||||
return false;
|
||||
|
||||
_wasUnexpectedlyDisconnected = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void c2s_CmdGoto(float x, float y, float z)
|
||||
{
|
||||
Instance._gameSession.c2s_CmdGoto(x, y, z);
|
||||
|
||||
@@ -37,28 +37,40 @@ namespace BrewMonster.Scripts
|
||||
SetupCallbacks();
|
||||
|
||||
// Auto-initialize SDK
|
||||
if (!string.IsNullOrEmpty(clientId) && !string.IsNullOrEmpty(clientSecret))
|
||||
EnsureInitialized();
|
||||
|
||||
BMLogger.Log("[SDK] Tech3C SDK Started");
|
||||
}
|
||||
|
||||
public bool EnsureInitialized()
|
||||
{
|
||||
if (Tech3CSDK.Instance.IsInitialized)
|
||||
{
|
||||
BMLogger.Log($"Initializing Tech3C SDK...\n Client ID: {clientId}");
|
||||
Tech3CSDK.Instance.Initialize(clientId, clientSecret);
|
||||
|
||||
if (Tech3CSDK.Instance.IsInitialized)
|
||||
{
|
||||
BMLogger.Log("[SDK] SDK Initialized Successfully!");
|
||||
}
|
||||
else
|
||||
{
|
||||
BMLogger.Log("[SDK] Failed to initialize SDK");
|
||||
}
|
||||
isInitialized = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
if(string.IsNullOrEmpty(clientId) || string.IsNullOrEmpty(clientSecret))
|
||||
{
|
||||
BMLogger.LogError("[SDK] Client ID and/or Client Secret not set. Please configure in Inspector.");
|
||||
isInitialized = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
BMLogger.Log($"Initializing Tech3C SDK...\n Client ID: {clientId}");
|
||||
Tech3CSDK.Instance.Initialize(clientId, clientSecret);
|
||||
|
||||
if (Tech3CSDK.Instance.IsInitialized)
|
||||
{
|
||||
BMLogger.Log("[SDK] SDK Initialized Successfully!");
|
||||
}
|
||||
else
|
||||
{
|
||||
BMLogger.Log("[SDK] Client ID and/or Client Secret not set. Please configure in Inspector.");
|
||||
BMLogger.Log("[SDK] Failed to initialize SDK");
|
||||
}
|
||||
|
||||
BMLogger.Log("[SDK] Tech3C SDK Started");
|
||||
|
||||
isInitialized = true;
|
||||
isInitialized = Tech3CSDK.Instance.IsInitialized;
|
||||
return isInitialized;
|
||||
}
|
||||
|
||||
private void SetupCallbacks()
|
||||
@@ -205,4 +217,4 @@ namespace BrewMonster.Scripts
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,10 +47,20 @@ namespace BrewMonster.UI
|
||||
void OnClickYes()
|
||||
{
|
||||
CECGameRun.Instance.GetPendingLogOut().AppendForSaveConfig(new CECPendingLogoutHalf());
|
||||
if (!UnityGameSession.Instance.GameSession.IsConnectedInternet)
|
||||
|
||||
if (UnityGameSession.Instance != null && UnityGameSession.Instance.TryConsumeUnexpectedDisconnect())
|
||||
{
|
||||
EC_Game.GetGameRun().SetLogoutFlag(1);
|
||||
UnityGameSession.LogoutAccount();
|
||||
return;
|
||||
}
|
||||
|
||||
if (UnityGameSession.Instance == null || !UnityGameSession.Instance.GameSession.IsConnected)
|
||||
{
|
||||
//force log out half
|
||||
EC_Game.GetGameRun().SetLogoutFlag(1);
|
||||
UnityGameSession.LogoutAccount();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -138,16 +138,37 @@ namespace BrewMonster.UI
|
||||
_loginInProgress = true;
|
||||
if (_loginButton != null) _loginButton.interactable = false;
|
||||
|
||||
bool sdkReady = Tech3CSDKWrapper.Instance.EnsureInitialized();
|
||||
|
||||
// If username or password is empty, use Tech3C SDK login UI.
|
||||
if (string.IsNullOrEmpty(_usernameInputField.text) || string.IsNullOrEmpty(_passwordInputField.text))
|
||||
{
|
||||
// Use Tech3C SDK login UI.
|
||||
bool started = Tech3CSDKWrapper.Instance.Login();
|
||||
if (!started)
|
||||
if (sdkReady)
|
||||
{
|
||||
// Fallback: manual username/password login (useful in dev if SDK not configured).
|
||||
BMLogger.LogWarning("[LoginScreenUI] Tech3CSDKWrapper.Login() failed, fallback to manual login.");
|
||||
await BeginGameLoginAsync(_usernameInputField.text, _passwordInputField.text);
|
||||
// Use Tech3C SDK login UI.
|
||||
bool started = Tech3CSDKWrapper.Instance.Login();
|
||||
if (!started)
|
||||
{
|
||||
// Fallback: manual username/password login (useful in dev if SDK not configured).
|
||||
BMLogger.LogWarning("[LoginScreenUI] Tech3CSDKWrapper.Login() failed, fallback to manual login.");
|
||||
await BeginGameLoginAsync(_usernameInputField.text, _passwordInputField.text);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string savedUsername = PlayerPrefs.GetString("username", "");
|
||||
string savedPassword = PlayerPrefs.GetString("password", "");
|
||||
if (!string.IsNullOrEmpty(savedUsername) && !string.IsNullOrEmpty(savedPassword))
|
||||
{
|
||||
BMLogger.LogWarning("[LoginScreenUI] Tech3C SDK not ready, using saved username/password for login.");
|
||||
await BeginGameLoginAsync(savedUsername, savedPassword);
|
||||
}
|
||||
else
|
||||
{
|
||||
BMLogger.LogError("[LoginScreenUI] Tech3C SDK not ready and no saved username/password.");
|
||||
_loginInProgress = false;
|
||||
if (_loginButton != null) _loginButton.interactable = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -156,7 +177,6 @@ namespace BrewMonster.UI
|
||||
BMLogger.LogError("[LoginScreenUI] Username/password empty.");
|
||||
await BeginGameLoginAsync(_usernameInputField.text, _passwordInputField.text);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private async Task BeginGameLoginAsync(string username, string password)
|
||||
|
||||
@@ -46,20 +46,27 @@ namespace BrewMonster
|
||||
}
|
||||
if (_animationQueue.Count > 0)
|
||||
{
|
||||
_animationQueue.Enqueue(new AnimationQueue
|
||||
if(@event.IsForceStopPrevious)
|
||||
{
|
||||
AnimationName = @event.AnimationName,
|
||||
IsForceStopPrevious = @event.IsForceStopPrevious,
|
||||
AttackEvent = @event.AttackEvent,
|
||||
ChannelAct = @event.ChannelAct,
|
||||
Rank = @event.Rank
|
||||
});
|
||||
_animationList = _animationQueue.Select(q => q.AnimationName).ToList();
|
||||
return;
|
||||
_animationQueue.Clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
_animationQueue.Enqueue(new AnimationQueue
|
||||
{
|
||||
AnimationName = @event.AnimationName,
|
||||
IsForceStopPrevious = @event.IsForceStopPrevious,
|
||||
AttackEvent = @event.AttackEvent,
|
||||
ChannelAct = @event.ChannelAct,
|
||||
Rank = @event.Rank
|
||||
});
|
||||
_animationList = _animationQueue.Select(q => q.AnimationName).ToList();
|
||||
return;
|
||||
}
|
||||
}
|
||||
previousAnimationName = @event.AnimationName;
|
||||
InternalPlayAnimation(@event.AnimationName, @event.ITransTime, FadeMode, @event.IsLoop);
|
||||
ApplyAnimationEndCallbacks(@event.AttackEvent, @event.ChannelAct, @event.Rank, @event.AnimationName);
|
||||
InternalPlayAnimation(@event.AnimationName, @event.ITransTime, FadeMode);
|
||||
ApplyAnimationEndCallbacks(@event.AttackEvent, @event.ChannelAct, @event.Rank, @event.AnimationName, @event.IsLoop);
|
||||
}
|
||||
public void InitPlayerEventDoneHandler()
|
||||
{
|
||||
@@ -195,6 +202,7 @@ namespace BrewMonster
|
||||
AttackEvent = null,
|
||||
IsLoop = true
|
||||
});
|
||||
Debug.Log($"EnqueueAnimationForLooping: {animationName}, _animationQueue: {string.Join(", ", _animationList)}");
|
||||
_animationList = _animationQueue.Select(q => q.AnimationName).ToList();
|
||||
return true;
|
||||
}
|
||||
@@ -205,14 +213,6 @@ namespace BrewMonster
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
string animationQueueString = "";
|
||||
foreach(var animation in _animationQueue)
|
||||
{
|
||||
animationQueueString += animation.AnimationName + ", ";
|
||||
}
|
||||
}
|
||||
|
||||
if (_animationQueue.Peek().IsForceStopPrevious)
|
||||
{
|
||||
@@ -227,21 +227,26 @@ namespace BrewMonster
|
||||
var animationQueue = _animationQueue.Dequeue();
|
||||
_animationList = _animationQueue.Select(q => q.AnimationName).ToList();
|
||||
previousAnimationName = animationQueue.AnimationName;
|
||||
InternalPlayAnimation(animationQueue.AnimationName, animationQueue.ITransTime, FadeMode, animationQueue.IsLoop);
|
||||
ApplyAnimationEndCallbacks(animationQueue.AttackEvent, animationQueue.ChannelAct, animationQueue.Rank, animationQueue.AnimationName);
|
||||
InternalPlayAnimation(animationQueue.AnimationName, animationQueue.ITransTime, FadeMode);
|
||||
ApplyAnimationEndCallbacks(animationQueue.AttackEvent, animationQueue.ChannelAct, animationQueue.Rank, animationQueue.AnimationName,animationQueue.IsLoop);
|
||||
}
|
||||
|
||||
private void ApplyAnimationEndCallbacks(CECAttackEvent attackEvent, ChannelAct channelAct, int rank, string animationName)
|
||||
private void ApplyAnimationEndCallbacks(CECAttackEvent attackEvent, ChannelAct channelAct, int rank, string animationName, bool isLoop)
|
||||
{
|
||||
if (_currentState == null) return;
|
||||
_currentState.Events.OnEnd = () =>
|
||||
{
|
||||
if (attackEvent != null)
|
||||
attackEvent.m_bSignaled = true;
|
||||
if(isLoop)
|
||||
{
|
||||
EnqueueAnimationForLooping(animationName);
|
||||
}
|
||||
if (channelAct == null || string.IsNullOrEmpty(animationName))
|
||||
return;
|
||||
var node = channelAct.GetNodeByRank((byte)rank);
|
||||
node?.m_pActive?.m_ActionNames?.Remove(animationName);
|
||||
|
||||
};
|
||||
}
|
||||
void ApplyDamage()
|
||||
@@ -277,7 +282,7 @@ namespace BrewMonster
|
||||
/// <param name="animationName"></param>
|
||||
/// <param name="duration"></param>
|
||||
/// <param name="fadeMode"></param>
|
||||
private void InternalPlayAnimation(string animationName, float duration = FadeTime, FadeMode fadeMode = FadeMode, bool isLoop = false)
|
||||
private void InternalPlayAnimation(string animationName, float duration = FadeTime, FadeMode fadeMode = FadeMode)
|
||||
{
|
||||
if (namedAnimancer == null)
|
||||
{
|
||||
@@ -287,13 +292,8 @@ namespace BrewMonster
|
||||
if (isState)
|
||||
{
|
||||
_currentState = namedAnimancer.TryPlay(animationName, duration / 1000, fadeMode);
|
||||
_currentState.Time = 0;
|
||||
_currentAnimationName = animationName;
|
||||
//if the animation is looping and the current state is not looping, play the animation again
|
||||
if(isLoop == true && _currentState.IsLooping == false)
|
||||
{
|
||||
_currentState.Time = 0;
|
||||
_currentState.Events.OnEnd = () => EnqueueAnimationForLooping(animationName);
|
||||
}
|
||||
return;
|
||||
}
|
||||
//BMLogger.LogError($"Null name animation: {animationName}");
|
||||
|
||||
Reference in New Issue
Block a user