diff --git a/Assets/Animation/弓箭手.overrideController b/Assets/Animation/弓箭手.overrideController new file mode 100644 index 0000000..73400d9 --- /dev/null +++ b/Assets/Animation/弓箭手.overrideController @@ -0,0 +1,23 @@ +%YAML 1.1 +%TAG !u! tag:yousandi.cn,2023: +--- !u!221 &22100000 +AnimatorOverrideController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: "\u5F13\u7BAD\u624B" + m_Controller: {fileID: 9100000, guid: 040acc435cecb4b16b965a1136ce6834, type: 2} + m_Clips: + - m_OriginalClip: {fileID: -203655887218126122, guid: 759b3c43f85694603a30f39ba5c0bb28, + type: 3} + m_OverrideClip: {fileID: -203655887218126122, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + - m_OriginalClip: {fileID: -203655887218126122, guid: c64a07291d13b4e9296ad678cc703a75, + type: 3} + m_OverrideClip: {fileID: -203655887218126122, guid: c4731cff79d83ae468056fee240c8b98, + type: 3} + - m_OriginalClip: {fileID: -203655887218126122, guid: 36109662b3b414715ba2c279c3d881d3, + type: 3} + m_OverrideClip: {fileID: -203655887218126122, guid: 6af15e184eda3774ea9aa154e2b75501, + type: 3} diff --git a/Assets/Animation/弓箭手.overrideController.meta b/Assets/Animation/弓箭手.overrideController.meta new file mode 100644 index 0000000..f14428d --- /dev/null +++ b/Assets/Animation/弓箭手.overrideController.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: Dn9J436tAnOspQxX0Y76xm5i6y3Q7Kbzl0+BIxTSuV7u5w5r2rHdyzM= +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 22100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Model/人类士兵/人类士兵-attack.fbx.meta b/Assets/Model/人类士兵/人类士兵-attack.fbx.meta index c9de919..0272572 100644 --- a/Assets/Model/人类士兵/人类士兵-attack.fbx.meta +++ b/Assets/Model/人类士兵/人类士兵-attack.fbx.meta @@ -61,8 +61,8 @@ ModelImporter: bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 curves: [] events: - - time: 1 - functionName: OnAttackAnimationEnd + - time: 0.36476868 + functionName: OnAttackEffect data: objectReferenceParameter: {instanceID: 0} floatParameter: 0 diff --git a/Assets/Model/弓/base.obj b/Assets/Model/弓/弓.obj similarity index 100% rename from Assets/Model/弓/base.obj rename to Assets/Model/弓/弓.obj diff --git a/Assets/Model/弓/base.obj.meta b/Assets/Model/弓/弓.obj.meta similarity index 100% rename from Assets/Model/弓/base.obj.meta rename to Assets/Model/弓/弓.obj.meta diff --git a/Assets/Model/弓/弓的材质.mat b/Assets/Model/弓/弓的材质.mat index bbad345..9d4840e 100644 --- a/Assets/Model/弓/弓的材质.mat +++ b/Assets/Model/弓/弓的材质.mat @@ -44,7 +44,7 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MainTex: - m_Texture: {fileID: 0} + m_Texture: {fileID: 2800000, guid: 8497dae7fcd787a4e81dd5a69562ad01, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MetallicGlossMap: diff --git a/Assets/Model/弓箭手/ArrowProjectile_White.prefab b/Assets/Model/弓箭手/ArrowProjectile_White.prefab index 2002752..4e7ee4a 100644 --- a/Assets/Model/弓箭手/ArrowProjectile_White.prefab +++ b/Assets/Model/弓箭手/ArrowProjectile_White.prefab @@ -12,6 +12,7 @@ GameObject: - component: {fileID: 7081090337000844663} - component: {fileID: 6003528328568268917} - component: {fileID: 2697858001024446210} + - component: {fileID: 4651139754486402669} m_Layer: 0 m_HasEditorInfo: 1 m_Name: ArrowProjectile_White @@ -29,7 +30,7 @@ Transform: m_GameObject: {fileID: 2585195233482669526} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: -0.61, y: 2.93, z: 0} m_LocalScale: {x: 0.04, y: 0.5, z: 0.04} m_ConstrainProportionsScale: 0 m_Children: [] @@ -113,3 +114,15 @@ MeshRenderer: m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} m_MaskInteraction: 0 +--- !u!114 &4651139754486402669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2585195233482669526} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b59fcde30d274e6b8813e5df7d6e791, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Model/弓箭手/弓箭手攻击.fbx.meta b/Assets/Model/弓箭手/弓箭手攻击.fbx.meta index 77d32f6..24d05f1 100644 --- a/Assets/Model/弓箭手/弓箭手攻击.fbx.meta +++ b/Assets/Model/弓箭手/弓箭手攻击.fbx.meta @@ -39,7 +39,49 @@ ModelImporter: animationWrapMode: 0 extraExposedTransformPaths: [] extraUserProperties: [] - clipAnimations: [] + clipAnimations: + - serializedVersion: 18 + name: "\u5F13\u7BAD\u624B\u653B\u51FB" + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 31 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + lockToRoot: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: + - time: 0.96719885 + functionName: OnAttackEffect + data: + objectReferenceParameter: {instanceID: 0} + floatParameter: 0 + intParameter: 0 + messageOptions: 0 + intervals: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + additiveType: 0 + basePoseType: 0 + additiveSelectedAnimation: {instanceID: 0} + additiveSelectedAnimationFrameIndex: 0 isReadable: 0 tuanjieGIEnable: 0 tuanjieGIGenSDFFactor: 1 @@ -608,330 +650,330 @@ ModelImporter: scale: {x: 1, y: 1, z: 1} - name: mixamorig:Hips parentName: "\u4E3B\u6A21\u578B\u653B\u51FB(Clone)" - position: {x: 1.7462297e-11, y: 0.0043242527, z: -0.00006200645} + position: {x: 0.0000000017462298, y: 0.4324253, z: -0.0062006456} rotation: {x: -1.8189897e-10, y: 0.000000023283064, z: -3.6379788e-10, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:LeftUpLeg parentName: mixamorig:Hips - position: {x: -0.0007676771, y: -0.00033516416, z: 0.000039222254} + position: {x: -0.07676771, y: -0.03351642, z: 0.0039222254} rotation: {x: 0.002044022, y: -0.031401742, z: 0.997394, w: 0.064922586} scale: {x: 1, y: 1, z: 1} - name: mixamorig:LeftLeg parentName: mixamorig:LeftUpLeg - position: {x: -1.4505889e-11, y: 0.0019383305, z: 4.8320276e-12} + position: {x: -0.000000001450589, y: 0.19383307, z: 4.832028e-10} rotation: {x: 0.0017277182, y: -0.00000603823, z: -0.003502047, w: 0.99999243} scale: {x: 0.9999999, y: 1, z: 1} - name: mixamorig:LeftFoot parentName: mixamorig:LeftLeg - position: {x: 1.6536833e-12, y: 0.0011614746, z: -2.1591578e-12} + position: {x: 1.6536834e-10, y: 0.11614747, z: -2.159158e-10} rotation: {x: 0.44634092, y: 0.05958435, z: -0.029802281, w: 0.89237964} scale: {x: 0.9999999, y: 1.0000001, z: 1} - name: mixamorig:LeftToeBase parentName: mixamorig:LeftFoot - position: {x: -7.037419e-12, y: 0.001288421, z: 7.2466484e-11} + position: {x: -7.0374195e-10, y: 0.12884212, z: 0.000000007246649} rotation: {x: 0.33284622, y: 0.034927983, z: -0.0123381475, w: 0.9422533} scale: {x: 1.0000005, y: 1.0000001, z: 1} - name: mixamorig:LeftToe_End parentName: mixamorig:LeftToeBase - position: {x: 3.2564181e-12, y: 0.000526419, z: -2.8072455e-13} + position: {x: 3.2564185e-10, y: 0.052641906, z: -2.8072458e-11} rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:RightUpLeg parentName: mixamorig:Hips - position: {x: 0.0007676771, y: -0.00033516416, z: 0.000050360126} + position: {x: 0.07676771, y: -0.03351642, z: 0.005036013} rotation: {x: -0.0023133866, y: -0.035559785, z: 0.99725676, w: -0.06487752} scale: {x: 1, y: 0.99999994, z: 1.0000001} - name: mixamorig:RightLeg parentName: mixamorig:RightUpLeg - position: {x: -2.1698281e-12, y: 0.0019393988, z: 2.228201e-12} + position: {x: -2.1698283e-10, y: 0.1939399, z: 2.2282011e-10} rotation: {x: 0.01589663, y: 0.000057858415, z: 0.0036376342, w: 0.999867} scale: {x: 1.0000001, y: 1.0000002, z: 0.99999976} - name: mixamorig:RightFoot parentName: mixamorig:RightLeg - position: {x: 4.402548e-12, y: 0.001160345, z: -1.839913e-12} + position: {x: 4.4025486e-10, y: 0.116034515, z: -1.8399131e-10} rotation: {x: 0.43305886, y: -0.062494267, z: 0.030114533, w: 0.8986922} scale: {x: 1, y: 1.0000001, z: 0.9999999} - name: mixamorig:RightToeBase parentName: mixamorig:RightFoot - position: {x: -1.0317386e-11, y: 0.0012737444, z: 1.9319196e-11} + position: {x: -0.0000000010317387, y: 0.12737446, z: 0.0000000019319197} rotation: {x: 0.33751133, y: -0.02999236, z: 0.010759985, w: 0.940782} scale: {x: 1.0000002, y: 1.0000002, z: 1.0000002} - name: mixamorig:RightToe_End parentName: mixamorig:RightToeBase - position: {x: 4.617691e-12, y: 0.0005313024, z: 4.266818e-13} + position: {x: 4.6176915e-10, y: 0.053130247, z: 4.2668185e-11} rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:Spine parentName: mixamorig:Hips - position: {x: -0, y: 0.0005983217, z: -0.000074477204} + position: {x: -0, y: 0.059832178, z: -0.007447721} rotation: {x: -0.061880376, y: -0.000000046859583, z: 0.000000003291181, w: 0.9980836} scale: {x: 0.99999994, y: 0.99999994, z: 1} - name: mixamorig:Spine1 parentName: mixamorig:Spine - position: {x: -0, y: 0.0007034291, z: -3.150067e-12} + position: {x: -0, y: 0.07034291, z: -3.1500672e-10} rotation: {x: -0.000000026077029, y: 0.000000002156998, z: -0.000000017328563, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:Spine2 parentName: mixamorig:Spine1 - position: {x: -0, y: 0.0008039194, z: 9.791877e-13} + position: {x: -0, y: 0.08039194, z: 9.791877e-11} rotation: {x: 0.00000003352761, y: -0.00000001299038, z: 0.000000010114373, w: 1} scale: {x: 1.0000001, y: 1, z: 1.0000002} - name: mixamorig:LeftShoulder parentName: mixamorig:Spine2 - position: {x: -0.00057285954, y: 0.0008204847, z: 0.000048773865} + position: {x: -0.057285957, y: 0.082048476, z: 0.004877387} rotation: {x: 0.564917, y: -0.42053264, z: 0.5103426, w: 0.4935296} scale: {x: 1.0000001, y: 1.0000004, z: 1.0000004} - name: mixamorig:LeftArm parentName: mixamorig:LeftShoulder - position: {x: 2.2733462e-12, y: 0.0007992665, z: 6.2794162e-12} + position: {x: 2.2733464e-10, y: 0.079926655, z: 6.2794164e-10} rotation: {x: -0.04773622, y: -0.0033352221, z: 0.057386912, w: 0.99720454} scale: {x: 1, y: 1.0000001, z: 1} - name: mixamorig:LeftForeArm parentName: mixamorig:LeftArm - position: {x: 8.515122e-14, y: 0.0015900033, z: -2.509566e-12} + position: {x: 8.515123e-12, y: 0.15900034, z: -2.5095662e-10} rotation: {x: -0.03579533, y: 0.0013862996, z: -0.03867446, w: 0.99860954} scale: {x: 1, y: 0.99999964, z: 0.99999964} - name: mixamorig:LeftHand parentName: mixamorig:LeftForeArm - position: {x: -6.4274947e-13, y: 0.0013879456, z: -2.0366507e-13} + position: {x: -6.427495e-11, y: 0.13879457, z: -2.0366509e-11} rotation: {x: 0.05291954, y: 0.078903615, z: -0.12506735, w: -0.98758894} scale: {x: 1, y: 1.0000002, z: 1} - name: mixamorig:LeftHandIndex1 parentName: mixamorig:LeftHand - position: {x: 0.0003533522, y: 0.0005442868, z: 0.000006156325} + position: {x: 0.035335224, y: 0.054428685, z: 0.00061563257} rotation: {x: -0.013144152, y: 0.0026901134, z: 0.15781493, w: -0.9873775} scale: {x: 0.9999999, y: 0.9999999, z: 0.9999999} - name: mixamorig:LeftHandIndex2 parentName: mixamorig:LeftHandIndex1 - position: {x: 0.0000031126474, y: 0.00016510527, z: -5.443179e-13} + position: {x: 0.00031126477, y: 0.01651053, z: -5.4431796e-11} rotation: {x: 0.013674952, y: 0.0000000745058, z: -0.00000007164635, w: 0.9999065} scale: {x: 0.9999999, y: 1.0000002, z: 1.0000006} - name: mixamorig:LeftHandIndex3 parentName: mixamorig:LeftHandIndex2 - position: {x: -0.0000013011809, y: 0.0001743795, z: -7.228084e-14} + position: {x: -0.0001301181, y: 0.017437952, z: -7.2280845e-12} rotation: {x: 0.03132069, y: -0.0031466305, z: -0.006184235, w: 0.9994853} scale: {x: 1, y: 1.0000004, z: 1.0000001} - name: mixamorig:LeftHandIndex4 parentName: mixamorig:LeftHandIndex3 - position: {x: -0.0000018114761, y: 0.000083760766, z: 1.307915e-12} + position: {x: -0.00018114762, y: 0.008376077, z: 1.3079152e-10} rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:LeftHandRing1 parentName: mixamorig:LeftHand - position: {x: -0.000109788554, y: 0.00069566845, z: -0.000023978173} + position: {x: -0.010978856, y: 0.06956685, z: -0.0023978176} rotation: {x: -0.06920517, y: 0.0073212003, z: 0.09696121, w: -0.99285233} scale: {x: 0.9999999, y: 1.0000004, z: 1.0000007} - name: mixamorig:LeftHandRing2 parentName: mixamorig:LeftHandRing1 - position: {x: -0.0000018443488, y: 0.0001949943, z: 2.374623e-12} + position: {x: -0.0001844349, y: 0.01949943, z: 2.3746233e-10} rotation: {x: -0.038244493, y: 0.00041660937, z: 0.0021954442, w: 0.99926597} scale: {x: 0.9999999, y: 1.0000002, z: 1} - name: mixamorig:LeftHandRing3 parentName: mixamorig:LeftHandRing2 - position: {x: -0.00000035793425, y: 0.00013629593, z: 5.653437e-13} + position: {x: -0.00003579343, y: 0.013629594, z: 5.6534378e-11} rotation: {x: -0.037302602, y: -0.0012301179, z: 0.012329873, w: 0.9992273} scale: {x: 1.0000004, y: 1.0000001, z: 1.0000002} - name: mixamorig:LeftHandRing4 parentName: mixamorig:LeftHandRing3 - position: {x: 0.000002202283, y: 0.00006540409, z: -1.0031707e-12} + position: {x: 0.00022022832, y: 0.0065404098, z: -1.0031708e-10} rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:LeftHandThumb1 parentName: mixamorig:LeftHand - position: {x: 0.0002386595, y: 0.000055447657, z: 0.00007516351} + position: {x: 0.023865951, y: 0.0055447663, z: 0.0075163515} rotation: {x: 0.0036687218, y: -0.012325726, z: 0.4238085, w: -0.90566057} scale: {x: 1, y: 1.0000002, z: 1.0000006} - name: mixamorig:LeftHandThumb2 parentName: mixamorig:LeftHandThumb1 - position: {x: 0.00003691473, y: 0.00020167814, z: -2.560144e-12} + position: {x: 0.0036914733, y: 0.020167815, z: -2.560144e-10} rotation: {x: 0.017473433, y: 0.00284072, z: -0.07654712, w: 0.9969089} scale: {x: 1, y: 1.0000002, z: 1.0000004} - name: mixamorig:LeftHandThumb3 parentName: mixamorig:LeftHandThumb2 - position: {x: -0.000009692553, y: 0.00025038398, z: 8.248104e-12} + position: {x: -0.0009692554, y: 0.0250384, z: 8.2481044e-10} rotation: {x: -0.035311777, y: 0.008863388, z: -0.03488773, w: 0.9987279} scale: {x: 1.0000002, y: 1.0000002, z: 1.0000006} - name: mixamorig:LeftHandThumb4 parentName: mixamorig:LeftHandThumb3 - position: {x: -0.000027222217, y: 0.00020563332, z: 3.389847e-12} + position: {x: -0.002722222, y: 0.020563334, z: 3.3898473e-10} rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:LeftHandMiddle1 parentName: mixamorig:LeftHand - position: {x: 0.000120146055, y: 0.0006618743, z: -0.00001581114} + position: {x: 0.012014606, y: 0.066187434, z: -0.0015811141} rotation: {x: -0.06824458, y: 0.0076866453, z: 0.10122138, w: -0.9924907} scale: {x: 1.0000001, y: 1.0000001, z: 1.0000005} - name: mixamorig:LeftHandMiddle2 parentName: mixamorig:LeftHandMiddle1 - position: {x: 0.0000008077926, y: 0.00016621465, z: 9.961298e-13} + position: {x: 0.00008077927, y: 0.016621467, z: 9.961299e-11} rotation: {x: -0.038001463, y: -0.00015874348, z: -0.0017993816, w: 0.99927604} scale: {x: 1.0000001, y: 1.0000008, z: 1.0000006} - name: mixamorig:LeftHandMiddle3 parentName: mixamorig:LeftHandMiddle2 - position: {x: -0.00000009601794, y: 0.00016455608, z: -1.0540635e-13} + position: {x: -0.000009601795, y: 0.01645561, z: -1.0540636e-11} rotation: {x: 0.039235797, y: -0.00017816467, z: -0.0017173622, w: 0.9992285} scale: {x: 0.9999998, y: 1, z: 1.0000001} - name: mixamorig:LeftHandMiddle4 parentName: mixamorig:LeftHandMiddle3 - position: {x: -0.0000007117767, y: 0.00010426318, z: -3.500706e-13} + position: {x: -0.000071177674, y: 0.010426318, z: -3.5007063e-11} rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:LeftHandPinky1 parentName: mixamorig:LeftHand - position: {x: -0.00036370975, y: 0.0006906761, z: 0.000008430876} + position: {x: -0.036370978, y: 0.06906761, z: 0.0008430876} rotation: {x: 0.015572485, y: -0.00094102323, z: -0.060314793, w: 0.99805754} scale: {x: 1, y: 0.9999999, z: 1.0000001} - name: mixamorig:LeftHandPinky2 parentName: mixamorig:LeftHandPinky1 - position: {x: -0.000003231744, y: 0.00012189287, z: 8.8479484e-13} + position: {x: -0.0003231744, y: 0.012189288, z: 8.847949e-11} rotation: {x: 0.030676363, y: -0.000000012980308, z: -0.000000028867362, w: 0.9995294} scale: {x: 1.0000001, y: 1.0000002, z: 1.0000002} - name: mixamorig:LeftHandPinky3 parentName: mixamorig:LeftHandPinky2 - position: {x: 0.0000004327713, y: 0.00013274238, z: -1.0134026e-13} + position: {x: 0.00004327713, y: 0.013274239, z: -1.0134027e-11} rotation: {x: 0.038770024, y: 0.0006769076, z: -0.008102573, w: -0.9992151} scale: {x: 1, y: 1, z: 1} - name: mixamorig:LeftHandPinky4 parentName: mixamorig:LeftHandPinky3 - position: {x: 0.000002798973, y: 0.000071407834, z: -6.1888493e-13} + position: {x: 0.0002798973, y: 0.007140784, z: -6.18885e-11} rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:Neck parentName: mixamorig:Spine2 - position: {x: -0, y: 0.0009044091, z: 6.214454e-11} + position: {x: -0, y: 0.090440914, z: 0.0000000062144543} rotation: {x: 0.061880358, y: 0.000000034857667, z: 0.000000002161148, w: 0.9980836} scale: {x: 1, y: 1.0000001, z: 1} - name: mixamorig:Head parentName: mixamorig:Neck - position: {x: -0, y: 0.0005013549, z: -0.000085544256} + position: {x: -0, y: 0.050135497, z: -0.008554426} rotation: {x: 0.000000011641534, y: 0.0000000029103826, z: -0.000000006548361, w: 1} scale: {x: 1.0000001, y: 1, z: 0.99999976} - name: mixamorig:HeadTop_End parentName: mixamorig:Head - position: {x: -0, y: 0.004789429, z: -0.00081720215} + position: {x: -0, y: 0.4789429, z: -0.08172022} rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:RightShoulder parentName: mixamorig:Spine2 - position: {x: 0.00057285954, y: 0.0008350031, z: -0.00006785986} + position: {x: 0.057285957, y: 0.08350032, z: -0.0067859865} rotation: {x: -0.49287948, y: -0.5118507, z: 0.56434584, w: -0.42022923} scale: {x: 0.99999994, y: 1, z: 1} - name: mixamorig:RightArm parentName: mixamorig:RightShoulder - position: {x: -7.470724e-12, y: 0.0007992664, z: -3.977617e-12} + position: {x: -7.470724e-10, y: 0.07992665, z: -3.977617e-10} rotation: {x: 0.049002133, y: 0.010347082, z: -0.084978335, w: -0.9951234} scale: {x: 0.9999999, y: 1, z: 1} - name: mixamorig:RightForeArm parentName: mixamorig:RightArm - position: {x: 3.3342898e-11, y: 0.0016336371, z: -9.659478e-12} + position: {x: 0.00000000333429, y: 0.16336372, z: -9.659479e-10} rotation: {x: -0.039766204, y: 0.0036433102, z: -0.064450525, w: 0.9971216} scale: {x: 1.0000005, y: 1.0000006, z: 0.9999999} - name: mixamorig:RightHand parentName: mixamorig:RightForeArm - position: {x: 4.7256344e-12, y: 0.0013870174, z: -4.855582e-13} + position: {x: 4.725635e-10, y: 0.13870175, z: -4.8555826e-11} rotation: {x: -0.0432561, y: 0.066292025, z: -0.11140941, w: 0.99061716} scale: {x: 0.9999998, y: 0.9999996, z: 1.0000001} - name: mixamorig:RightHandMiddle1 parentName: mixamorig:RightHand - position: {x: -0.00012411462, y: 0.00065729924, z: 0.000011134581} + position: {x: -0.012411463, y: 0.06572993, z: 0.0011134582} rotation: {x: -0.0145376455, y: -0.0011186003, z: 0.07671409, w: 0.9969465} scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001} - name: mixamorig:RightHandMiddle2 parentName: mixamorig:RightHandMiddle1 - position: {x: 0.0000010419184, y: 0.00014815464, z: 3.0602853e-13} + position: {x: 0.000104191844, y: 0.014815465, z: 3.0602857e-11} rotation: {x: 0.038307507, y: -0.00046986103, z: -0.009119734, w: 0.9992243} scale: {x: 0.99999994, y: 0.9999998, z: 1} - name: mixamorig:RightHandMiddle3 parentName: mixamorig:RightHandMiddle2 - position: {x: -0.0000042096344, y: 0.0001797862, z: -2.1205741e-12} + position: {x: -0.00042096348, y: 0.017978622, z: -2.1205743e-10} rotation: {x: -0.027913736, y: -0.0019214331, z: -0.02743587, w: -0.999232} scale: {x: 1.0000002, y: 1.0000006, z: 1.0000001} - name: mixamorig:RightHandMiddle4 parentName: mixamorig:RightHandMiddle3 - position: {x: 0.0000031677162, y: 0.00008592098, z: 4.212905e-12} + position: {x: 0.00031677165, y: 0.008592099, z: 4.2129056e-10} rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:RightHandIndex1 parentName: mixamorig:RightHand - position: {x: -0.00038613816, y: 0.0006208993, z: -0.0000016581196} + position: {x: -0.03861382, y: 0.062089935, z: -0.00016581197} rotation: {x: 0.004731345, y: 0.0003336369, z: 0.07032635, w: 0.9975128} scale: {x: 1.0000004, y: 1.0000004, z: 1.0000001} - name: mixamorig:RightHandIndex2 parentName: mixamorig:RightHandIndex1 - position: {x: -0.000007508582, y: 0.00014386632, z: -2.6499733e-13} + position: {x: -0.0007508582, y: 0.0143866325, z: -2.6499735e-11} rotation: {x: -0.03738276, y: 0.001680347, z: -0.015701953, w: -0.9991763} scale: {x: 0.9999998, y: 0.99999994, z: 0.9999999} - name: mixamorig:RightHandIndex3 parentName: mixamorig:RightHandIndex2 - position: {x: -0.0000002716082, y: 0.00014557064, z: 1.8662526e-12} + position: {x: -0.000027160822, y: 0.0145570645, z: 1.8662527e-10} rotation: {x: 0.034060255, y: 0.0057210615, z: 0.040558938, w: 0.99858004} scale: {x: 1.0000001, y: 1.0000002, z: 1.0000002} - name: mixamorig:RightHandIndex4 parentName: mixamorig:RightHandIndex3 - position: {x: 0.000007780191, y: 0.00007475033, z: 3.5124437e-13} + position: {x: 0.00077801914, y: 0.0074750334, z: 3.5124438e-11} rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:RightHandRing1 parentName: mixamorig:RightHand - position: {x: 0.00013043956, y: 0.00074199867, z: -0.000016377817} + position: {x: 0.013043957, y: 0.07419987, z: -0.0016377819} rotation: {x: 0.052167367, y: 0.005741998, z: 0.10925652, w: 0.9926272} scale: {x: 1, y: 1.0000001, z: 1} - name: mixamorig:RightHandRing2 parentName: mixamorig:RightHandRing1 - position: {x: 0.0000038617277, y: 0.0001567462, z: -6.7576473e-13} + position: {x: 0.0003861728, y: 0.01567462, z: -6.757648e-11} rotation: {x: 0.0036604288, y: 0.000000026077029, z: 0.00000007209018, w: 0.9999934} scale: {x: 0.99999994, y: 0.99999994, z: 1.0000002} - name: mixamorig:RightHandRing3 parentName: mixamorig:RightHandRing2 - position: {x: 0.0000005154784, y: 0.00013640011, z: 5.188596e-13} + position: {x: 0.000051547846, y: 0.013640012, z: 5.1885964e-11} rotation: {x: 0.031565033, y: -0.00025506358, z: -0.007155307, w: 0.9994761} scale: {x: 1.0000006, y: 1.0000006, z: 1} - name: mixamorig:RightHandRing4 parentName: mixamorig:RightHandRing3 - position: {x: -0.000004377207, y: 0.0000693676, z: 1.4645616e-13} + position: {x: -0.00043772074, y: 0.00693676, z: 1.4645616e-11} rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:RightHandPinky1 parentName: mixamorig:RightHand - position: {x: 0.00037981314, y: 0.00071474805, z: -0.0000032233684} + position: {x: 0.037981316, y: 0.07147481, z: -0.00032233685} rotation: {x: -0.051586244, y: -0.000247307, z: -0.033859823, w: -0.9980943} scale: {x: 1.0000002, y: 1.0000002, z: 1.0000001} - name: mixamorig:RightHandPinky2 parentName: mixamorig:RightHandPinky1 - position: {x: 0.0000031808404, y: 0.00014800811, z: -4.4522784e-13} + position: {x: 0.00031808406, y: 0.014800812, z: -4.4522788e-11} rotation: {x: 0.040013697, y: 0.0000580146, z: 0.0014672898, w: -0.9991981} scale: {x: 1, y: 1, z: 1} - name: mixamorig:RightHandPinky3 parentName: mixamorig:RightHandPinky2 - position: {x: -0.00000018282907, y: 0.000113924165, z: -5.373501e-13} + position: {x: -0.000018282908, y: 0.011392417, z: -5.3735016e-11} rotation: {x: -0.03806825, y: 0.0010505621, z: 0.011853109, w: -0.99920434} scale: {x: 1.0000004, y: 1.0000001, z: 1.0000001} - name: mixamorig:RightHandPinky4 parentName: mixamorig:RightHandPinky3 - position: {x: -0.0000029980124, y: 0.000065697335, z: 2.6215027e-13} + position: {x: -0.00029980126, y: 0.006569734, z: 2.621503e-11} rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} - name: mixamorig:RightHandThumb1 parentName: mixamorig:RightHand - position: {x: -0.00025930512, y: 0.000101209494, z: 0.00009211393} + position: {x: -0.025930515, y: 0.010120951, z: 0.009211394} rotation: {x: 0.030243076, y: -0.010735307, z: 0.3858066, w: 0.9220214} scale: {x: 1, y: 0.99999994, z: 1.0000001} - name: mixamorig:RightHandThumb2 parentName: mixamorig:RightHandThumb1 - position: {x: -0.00005654195, y: 0.00022764492, z: -1.9377964e-13} + position: {x: -0.0056541953, y: 0.022764495, z: -1.9377966e-11} rotation: {x: 0.018060831, y: -0.0036463912, z: 0.045770988, w: 0.998782} scale: {x: 1.0000001, y: 0.99999994, z: 0.99999994} - name: mixamorig:RightHandThumb3 parentName: mixamorig:RightHandThumb2 - position: {x: -0.000018743662, y: 0.00022917594, z: 2.959566e-13} + position: {x: -0.0018743663, y: 0.022917597, z: 2.9595663e-11} rotation: {x: -0.007329939, y: -0.0110201705, z: 0.27535626, w: 0.9612512} scale: {x: 1.0000005, y: 1.0000002, z: 0.99999976} - name: mixamorig:RightHandThumb4 parentName: mixamorig:RightHandThumb3 - position: {x: 0.00007528559, y: 0.00012816425, z: -1.6428803e-12} + position: {x: 0.00752856, y: 0.012816425, z: -1.6428804e-10} rotation: {x: 0, y: -0, z: -0, w: 1} scale: {x: 1, y: 1, z: 1} namedPoseList: @@ -944,7 +986,7 @@ ModelImporter: armStretch: 0.05 legStretch: 0.05 feetSpacing: 0 - globalScale: 1.1999999 + globalScale: 120 rootMotionBoneName: defaultPoseIndex: -1 hasTranslationDoF: 0 diff --git a/Assets/Model/弓箭手/待机.fbx.meta b/Assets/Model/弓箭手/待机.fbx.meta index cbeb348..02b38a8 100644 --- a/Assets/Model/弓箭手/待机.fbx.meta +++ b/Assets/Model/弓箭手/待机.fbx.meta @@ -34,7 +34,42 @@ ModelImporter: animationWrapMode: 0 extraExposedTransformPaths: [] extraUserProperties: [] - clipAnimations: [] + clipAnimations: + - serializedVersion: 18 + name: "\u5F13\u7BAD\u624B\u5F85\u673A" + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 153 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + lockToRoot: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + intervals: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + additiveType: 0 + basePoseType: 0 + additiveSelectedAnimation: {instanceID: 0} + additiveSelectedAnimationFrameIndex: 0 isReadable: 0 tuanjieGIEnable: 0 tuanjieGIGenSDFFactor: 1 diff --git a/Assets/Model/弓箭手/移动.fbx.meta b/Assets/Model/弓箭手/移动.fbx.meta index 802d7ef..08ea7c4 100644 --- a/Assets/Model/弓箭手/移动.fbx.meta +++ b/Assets/Model/弓箭手/移动.fbx.meta @@ -34,7 +34,42 @@ ModelImporter: animationWrapMode: 0 extraExposedTransformPaths: [] extraUserProperties: [] - clipAnimations: [] + clipAnimations: + - serializedVersion: 18 + name: "\u5F13\u7BAD\u624B\u79FB\u52A8" + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 36 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + lockToRoot: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + intervals: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + additiveType: 0 + basePoseType: 0 + additiveSelectedAnimation: {instanceID: 0} + additiveSelectedAnimationFrameIndex: 0 isReadable: 0 tuanjieGIEnable: 0 tuanjieGIGenSDFFactor: 1 diff --git a/Assets/Model/精锐守卫士兵/Great Sword Slash.fbx.meta b/Assets/Model/精锐守卫士兵/Great Sword Slash.fbx.meta index 27db235..4434b23 100644 --- a/Assets/Model/精锐守卫士兵/Great Sword Slash.fbx.meta +++ b/Assets/Model/精锐守卫士兵/Great Sword Slash.fbx.meta @@ -62,8 +62,8 @@ ModelImporter: bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 curves: [] events: - - time: 1 - functionName: OnAttackAnimationEnd + - time: 0.46441284 + functionName: OnAttackEffect data: objectReferenceParameter: {instanceID: 0} floatParameter: 0 diff --git a/Assets/Model/蓝色怪物/蓝色怪物动作-挥剑.fbx.meta b/Assets/Model/蓝色怪物/蓝色怪物动作-挥剑.fbx.meta index d7ac762..535ae69 100644 --- a/Assets/Model/蓝色怪物/蓝色怪物动作-挥剑.fbx.meta +++ b/Assets/Model/蓝色怪物/蓝色怪物动作-挥剑.fbx.meta @@ -61,8 +61,8 @@ ModelImporter: bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 curves: [] events: - - time: 1 - functionName: OnAttackAnimationEnd + - time: 0.36654803 + functionName: OnAttackEffect data: objectReferenceParameter: {instanceID: 0} floatParameter: 0 diff --git a/Assets/Scenes/CoreScene.scene b/Assets/Scenes/CoreScene.scene index e6c93af..10755d3 100644 --- a/Assets/Scenes/CoreScene.scene +++ b/Assets/Scenes/CoreScene.scene @@ -466,6 +466,8 @@ MonoBehaviour: m_EditorClassIdentifier: maxHealth: 200 currentHealth: 200 + maxEnergy: 100 + currentEnergy: 0 heightOffset: 0.25 barWidth: 1.2 borderColor: {r: 0.03, g: 0.03, b: 0.03, a: 0.95} @@ -490,6 +492,12 @@ MonoBehaviour: attackRange: 1 attackPower: 20 attackDuration: 2 + attackType: 0 + projectilePrefab: {fileID: 0} + projectileSpawnPoint: {fileID: 0} + projectileSpeed: 20 + projectileLifetime: 5 + energyPerAttack: 20 target: {fileID: 357323599} --- !u!143 &357323602 CharacterController: @@ -1026,6 +1034,12 @@ MonoBehaviour: attackRange: 1 attackPower: 10 attackDuration: 1.5 + attackType: 0 + projectilePrefab: {fileID: 0} + projectileSpawnPoint: {fileID: 0} + projectileSpeed: 20 + projectileLifetime: 5 + energyPerAttack: 20 target: {fileID: 903389984} --- !u!143 &903389988 CharacterController: @@ -1067,6 +1081,8 @@ MonoBehaviour: m_EditorClassIdentifier: maxHealth: 100 currentHealth: 100 + maxEnergy: 100 + currentEnergy: 0 heightOffset: 0.25 barWidth: 1.2 borderColor: {r: 0.03, g: 0.03, b: 0.03, a: 0.95} @@ -1107,6 +1123,107 @@ Transform: - {fileID: 130655076} m_Father: {fileID: 505716641} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &959019865 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + propertyPath: m_LocalPosition.x + value: 2.1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + propertyPath: m_LocalPosition.z + value: -26.3 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + propertyPath: m_Name + value: "\u5F13\u7BAD\u624B\u653B\u51FB" + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + propertyPath: m_TagString + value: Enemy + objectReference: {fileID: 0} + - target: {fileID: 5866666021909216657, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + propertyPath: m_Controller + value: + objectReference: {fileID: 22100000, guid: 15ffd0a87bcad479398e3e32a97e8ea3, + type: 2} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 6502182839619065283, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + insertIndex: -1 + addedObject: {fileID: 2139088647} + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + insertIndex: -1 + addedObject: {fileID: 1202167648} + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + insertIndex: -1 + addedObject: {fileID: 1202167647} + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + insertIndex: -1 + addedObject: {fileID: 1202167646} + m_SourcePrefab: {fileID: 100100000, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, type: 3} +--- !u!4 &959019866 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6502182839619065283, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + m_PrefabInstance: {fileID: 959019865} + m_PrefabAsset: {fileID: 0} --- !u!1 &963194225 GameObject: m_ObjectHideFlags: 0 @@ -1420,6 +1537,12 @@ MonoBehaviour: attackRange: 1 attackPower: 20 attackDuration: 1.8 + attackType: 0 + projectilePrefab: {fileID: 0} + projectileSpawnPoint: {fileID: 0} + projectileSpeed: 20 + projectileLifetime: 5 + energyPerAttack: 20 target: {fileID: 989436104} --- !u!114 &989436109 MonoBehaviour: @@ -1435,6 +1558,8 @@ MonoBehaviour: m_EditorClassIdentifier: maxHealth: 200 currentHealth: 200 + maxEnergy: 100 + currentEnergy: 0 heightOffset: 0.25 barWidth: 1.2 borderColor: {r: 0.03, g: 0.03, b: 0.03, a: 0.95} @@ -1512,6 +1637,106 @@ Transform: - {fileID: 999094166} m_Father: {fileID: 452343421} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1038486208 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2585195233482669526, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_Name + value: ArrowProjectile_White + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_LocalScale.x + value: 0.01 + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_LocalScale.y + value: 0.3125 + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_LocalScale.z + value: 0.024999999 + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_LocalPosition.x + value: -2.272 + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_LocalPosition.y + value: 0.373 + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_LocalPosition.z + value: 0.166 + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.5674013 + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.81330854 + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.10561989 + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.07368516 + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 114.854004 + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 34.772995 + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 37.423004 + objectReference: {fileID: 0} + - target: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + propertyPath: m_ConstrainProportionsScale + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: aae7b6830fce0ff43b065876eff5ef47, type: 3} +--- !u!1 &1038486209 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2585195233482669526, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + m_PrefabInstance: {fileID: 1038486208} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1038486210 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3274732106972909994, guid: aae7b6830fce0ff43b065876eff5ef47, + type: 3} + m_PrefabInstance: {fileID: 1038486208} + m_PrefabAsset: {fileID: 0} --- !u!1 &1063768498 GameObject: m_ObjectHideFlags: 0 @@ -1547,6 +1772,18 @@ Transform: - {fileID: 1451120646} m_Father: {fileID: 2019663515} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!134 &1111001695 +PhysicMaterial: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + dynamicFriction: 0.6 + staticFriction: 0.6 + bounciness: 0 + frictionCombine: 0 + bounceCombine: 0 --- !u!1 &1156019067 GameObject: m_ObjectHideFlags: 0 @@ -1693,6 +1930,85 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1202167643 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: ab1bbfb3679ec0c4b8e5feeb207ed436, + type: 3} + m_PrefabInstance: {fileID: 959019865} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1202167646 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1202167643} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9355c53f591d4459ea620fc8191efa17, type: 3} + m_Name: + m_EditorClassIdentifier: + maxHealth: 100 + currentHealth: 100 + maxEnergy: 100 + currentEnergy: 0 + heightOffset: 0.25 + barWidth: 1.2 + borderColor: {r: 0.03, g: 0.03, b: 0.03, a: 0.95} + deathEffectDuration: 1.1 + deathEffectColor: {r: 0.55, g: 0.9, b: 1, a: 1} +--- !u!114 &1202167647 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1202167643} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b91aa6ae607324ce19fc46225a44e70a, type: 3} + m_Name: + m_EditorClassIdentifier: + speed: 5 + gravity: -20 + range: 500 + detectRange: 200 + attackRange: 5 + attackPower: 10 + attackDuration: 0 + attackType: 0 + projectilePrefab: {fileID: 1038486209} + projectileSpawnPoint: {fileID: 1038486210} + projectileSpeed: 20 + projectileLifetime: 5 + energyPerAttack: 20 + target: {fileID: 0} +--- !u!143 &1202167648 +CharacterController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1202167643} + m_Material: {fileID: 1111001695} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Height: 2 + m_Radius: 0.5 + m_SlopeLimit: 45 + m_StepOffset: 0.3 + m_SkinWidth: 0.08 + m_MinMoveDistance: 0.001 + m_Center: {x: 0, y: 0, z: 0} --- !u!1 &1244039457 GameObject: m_ObjectHideFlags: 0 @@ -2793,6 +3109,150 @@ Transform: - {fileID: 485246435} m_Father: {fileID: 163606465} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &2139088646 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 959019866} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalScale.x + value: 0.24 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalScale.y + value: 0.24 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalScale.z + value: 0.24 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalPosition.x + value: -0.154 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalPosition.y + value: -0.079 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalPosition.z + value: 0.15 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.7735215 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.31170785 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.11494293 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.53971374 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -159.013 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -506.576 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 103.824 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_ConstrainProportionsScale + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_Name + value: "\u5F13" + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalPosition.x + value: -0.443 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalPosition.y + value: 0.758 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalPosition.z + value: -0.851 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.74113566 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.5935161 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.038218096 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.31144196 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 58.864 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -55.542 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -78.681 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c3401c41ece280d47af5c39c99b1e31a, type: 3} +--- !u!4 &2139088647 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: c3401c41ece280d47af5c39c99b1e31a, + type: 3} + m_PrefabInstance: {fileID: 2139088646} + m_PrefabAsset: {fileID: 0} --- !u!1001 &3745968352218814396 PrefabInstance: m_ObjectHideFlags: 0 @@ -2889,3 +3349,5 @@ SceneRoots: - {fileID: 989436103} - {fileID: 1576577255} - {fileID: 3745968352218814396} + - {fileID: 959019865} + - {fileID: 1038486208} diff --git a/Assets/Script/Projectile.cs b/Assets/Script/Projectile.cs new file mode 100644 index 0000000..4957dfd --- /dev/null +++ b/Assets/Script/Projectile.cs @@ -0,0 +1,122 @@ +using UnityEngine; + +public class Projectile : MonoBehaviour +{ + private GameObject target; + private GameObject owner; + private float damage; + private float speed; + private float lifetime; + private bool initialized; + + public void Initialize( + GameObject targetObject, + float damageAmount, + GameObject ownerObject, + float moveSpeed, + float lifeTime) + { + target = targetObject; + damage = damageAmount; + owner = ownerObject; + speed = moveSpeed; + lifetime = lifeTime; + initialized = true; + + if (lifetime > 0f) + { + Destroy(gameObject, lifetime); + } + } + + private void Update() + { + if (!initialized) + { + return; + } + + if (target == null) + { + Destroy(gameObject); + return; + } + + Vector3 offset = target.transform.position - transform.position; + if (offset.sqrMagnitude <= 0.01f) + { + HitTarget(target); + return; + } + + Vector3 direction = offset.normalized; + float distance = speed * Time.deltaTime; + if (distance >= offset.magnitude) + { + HitTarget(target); + return; + } + + if (Physics.Raycast(transform.position, direction, out RaycastHit hit, distance)) + { + TryHit(hit.collider.gameObject); + if (hit.collider.transform.root == target.transform.root) + { + return; + } + } + + transform.forward = direction; + transform.position += direction * distance; + } + + private void OnTriggerEnter(Collider other) + { + TryHit(other.gameObject); + } + + private void OnCollisionEnter(Collision collision) + { + TryHit(collision.gameObject); + } + + private void TryHit(GameObject hitObject) + { + if (!initialized || hitObject == null || IsOwner(hitObject)) + { + return; + } + + if (hitObject.transform.root == target.transform.root) + { + HitTarget(hitObject); + } + } + + private void HitTarget(GameObject hitObject) + { + WorldHealthBar healthBar = hitObject.GetComponentInParent(); + if (healthBar == null) + { + return; + } + + healthBar.TakeDamage(damage); + if (owner != null) + { + UnitBase unit = owner.GetComponent(); + if (unit != null) + { + unit.RegisterAttackHit(); + } + } + + Destroy(gameObject); + } + + private bool IsOwner(GameObject hitObject) + { + return owner != null && + (hitObject == owner || hitObject.transform.root == owner.transform.root); + } +} diff --git a/Assets/Script/Projectile.cs.meta b/Assets/Script/Projectile.cs.meta new file mode 100644 index 0000000..d9e29db --- /dev/null +++ b/Assets/Script/Projectile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: BygavHz+By46EKJGDuv5Bnn4/4HcaL5YCS0EUQ96cZEDuWogq0Yq0gM= +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Script/UnitBase.cs b/Assets/Script/UnitBase.cs index ff12f15..dc7a333 100644 --- a/Assets/Script/UnitBase.cs +++ b/Assets/Script/UnitBase.cs @@ -1,4 +1,3 @@ -using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -28,6 +27,32 @@ public class UnitBase : MonoBehaviour [Min(0f)] public float attackDuration = 0f; + public enum AttackType + { + //近战锁定目标,攻击事件触发时直接扣血。 + MeleeDirect, + + //近战范围伤害,暂未实现。 + MeleeArea, + + //远程锁定目标,攻击事件触发时生成飞行物。 + RangedProjectile, + + //远程抛物线,不锁定目标,暂未实现。 + RangedArc + } + + [Header("攻击类型")] + public AttackType attackType = AttackType.MeleeDirect; + + [Header("远程飞行物")] + public GameObject projectilePrefab; + public Transform projectileSpawnPoint; + [Min(0f)] + public float projectileSpeed = 20f; + [Min(0f)] + public float projectileLifetime = 5f; + //每次普通攻击命中后增加的技能能量。 [Header("技能能量")] [Min(0f)] @@ -57,8 +82,9 @@ public class UnitBase : MonoBehaviour //垂直速度 private float verticalVelocity; - //当前攻击的伤害结算协程。 - private Coroutine attackDamageCoroutine; + //当前攻击开始时间,用于在没有结束 Event 时释放攻击状态。 + private float attackStartTime; + //状态枚举 public enum State @@ -95,11 +121,12 @@ public class UnitBase : MonoBehaviour // Update is called once per frame void Update() { - //攻击状态直接返回 + //攻击状态下等待Animator报告攻击动画播放完成。 if (state == State.Attack) { animator.SetInteger("speed", 0); applyGravity(); + CheckAttackAnimationFinished(); return; } @@ -275,36 +302,64 @@ public class UnitBase : MonoBehaviour animator.SetInteger("speed", 0); animator.SetTrigger("attack"); state = State.Attack; - - //在攻击动画中段结算伤害,而不是在动画开始瞬间扣血。 - if (attackDamageCoroutine != null) - { - StopCoroutine(attackDamageCoroutine); - } - - attackDamageCoroutine = StartCoroutine(ApplyAttackDamageInMiddle(friend)); + attackStartTime = Time.time; } - //等待半个完整攻击时长后,对目标扣除攻击力。 - private IEnumerator ApplyAttackDamageInMiddle(GameObject friend) + //由攻击动画中最合适的帧通过 Animation Event 调用。 + public void OnAttackEffect() { - float fullAttackDuration = attackDuration > 0f - ? attackDuration - : Mathf.Max(GetAttackAnimationDuration(), 0.01f); - - yield return new WaitForSeconds(fullAttackDuration * 0.5f); - - if (friend != null) + if (state != State.Attack || target == null) { - WorldHealthBar healthBar = friend.GetComponentInParent(); - if (healthBar != null) - { - healthBar.TakeDamage(attackPower); - AddAttackEnergy(); - } + return; } - attackDamageCoroutine = null; + switch (attackType) + { + case AttackType.MeleeDirect: + ApplyDirectDamage(target); + break; + case AttackType.RangedProjectile: + FireProjectile(target); + break; + case AttackType.MeleeArea: + case AttackType.RangedArc: + break; + } + } + + private void ApplyDirectDamage(GameObject opponent) + { + WorldHealthBar healthBar = opponent.GetComponentInParent(); + if (healthBar == null) + { + return; + } + + healthBar.TakeDamage(attackPower); + RegisterAttackHit(); + } + + public void RegisterAttackHit() + { + AddAttackEnergy(); + } + + private void FireProjectile(GameObject opponent) + { + if (projectilePrefab == null || projectileSpawnPoint == null) + { + return; + } + + GameObject projectileObject = Instantiate( + projectilePrefab, + projectileSpawnPoint.position, + projectileSpawnPoint.rotation); + Projectile projectile = projectileObject.GetComponent(); + if (projectile != null) + { + projectile.Initialize(opponent, attackPower, gameObject, projectileSpeed, projectileLifetime); + } } // 普通攻击命中后积攒能量,满能量时清空能量并调用技能占位方法。 @@ -330,19 +385,51 @@ public class UnitBase : MonoBehaviour } - // 在 Animator 的 Attack 动画结束时调用此方法 - public void OnAttackAnimationEnd() + // 根据当前攻击动画的播放进度自动结束攻击,不依赖 Animation Event。 + private void CheckAttackAnimationFinished() { - if (attackDamageCoroutine != null) + float animationDuration = attackDuration > 0f + ? attackDuration + : GetAttackAnimationDuration(); + + if (animationDuration > 0f && Time.time - attackStartTime >= animationDuration) { - StopCoroutine(attackDamageCoroutine); - attackDamageCoroutine = null; + FinishAttack(); + return; } - //攻击动画结束后恢复Animator速度 + if (!IsPlayingAttackAnimation()) + { + return; + } + + AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0); + if (stateInfo.normalizedTime >= 1f) + { + FinishAttack(); + } + } + + private bool IsPlayingAttackAnimation() + { + AnimatorClipInfo[] clipInfos = animator.GetCurrentAnimatorClipInfo(0); + foreach (AnimatorClipInfo clipInfo in clipInfos) + { + if (IsAttackAnimation(clipInfo.clip)) + { + return true; + } + } + + return false; + } + + private void FinishAttack() + { + //攻击动画结束后恢复Animator速度。 animator.speed = 1f; - //攻击动画结束后,目标仍在攻击范围内则立即进行下一次攻击 + //攻击动画结束后,目标仍在攻击范围内则立即进行下一次攻击。 target = FindNearestOpponent(); if (target != null && IsWithinAttackReach(target)) { @@ -350,7 +437,7 @@ public class UnitBase : MonoBehaviour return; } - //目标离开攻击范围,回到待机逻辑 + //目标离开攻击范围,回到待机逻辑。 state = State.Alert; animator.SetInteger("speed", 0); applyGravity();