Sword Action

Polish
Sascha 2023-06-16 18:10:39 +07:00
parent 9a0a53b64c
commit 18739559fc
16 changed files with 1583 additions and 75 deletions

@ -0,0 +1,882 @@
fileFormatVersion: 2
guid: 93e75fa4b056e8e8e9dba8142dd1b5d9
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: 3
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations:
- serializedVersion: 16
name: SwordSlash
takeName: mixamo.com
internalID: -203655887218126122
firstFrame: 0
lastFrame: 38
wrapMode: 0
orientationOffsetY: -35
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 0
loopBlend: 0
loopBlendOrientation: 1
loopBlendPositionY: 0
loopBlendPositionXZ: 1
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 1
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
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:
- boneName: mixamorig:Hips
humanName: Hips
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftUpLeg
humanName: LeftUpperLeg
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightUpLeg
humanName: RightUpperLeg
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftLeg
humanName: LeftLowerLeg
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightLeg
humanName: RightLowerLeg
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftFoot
humanName: LeftFoot
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightFoot
humanName: RightFoot
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:Spine
humanName: Spine
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:Spine1
humanName: Chest
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:Neck
humanName: Neck
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:Head
humanName: Head
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftShoulder
humanName: LeftShoulder
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightShoulder
humanName: RightShoulder
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftArm
humanName: LeftUpperArm
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightArm
humanName: RightUpperArm
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftForeArm
humanName: LeftLowerArm
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightForeArm
humanName: RightLowerArm
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHand
humanName: LeftHand
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHand
humanName: RightHand
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftToeBase
humanName: LeftToes
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightToeBase
humanName: RightToes
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandThumb1
humanName: Left Thumb Proximal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandThumb2
humanName: Left Thumb Intermediate
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandThumb3
humanName: Left Thumb Distal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandIndex1
humanName: Left Index Proximal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandIndex2
humanName: Left Index Intermediate
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandIndex3
humanName: Left Index Distal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandMiddle1
humanName: Left Middle Proximal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandMiddle2
humanName: Left Middle Intermediate
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandMiddle3
humanName: Left Middle Distal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandRing1
humanName: Left Ring Proximal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandRing2
humanName: Left Ring Intermediate
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandRing3
humanName: Left Ring Distal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandPinky1
humanName: Left Little Proximal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandPinky2
humanName: Left Little Intermediate
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:LeftHandPinky3
humanName: Left Little Distal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandThumb1
humanName: Right Thumb Proximal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandThumb2
humanName: Right Thumb Intermediate
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandThumb3
humanName: Right Thumb Distal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandIndex1
humanName: Right Index Proximal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandIndex2
humanName: Right Index Intermediate
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandIndex3
humanName: Right Index Distal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandMiddle1
humanName: Right Middle Proximal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandMiddle2
humanName: Right Middle Intermediate
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandMiddle3
humanName: Right Middle Distal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandRing1
humanName: Right Ring Proximal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandRing2
humanName: Right Ring Intermediate
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandRing3
humanName: Right Ring Distal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandPinky1
humanName: Right Little Proximal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandPinky2
humanName: Right Little Intermediate
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:RightHandPinky3
humanName: Right Little Distal
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
- boneName: mixamorig:Spine2
humanName: UpperChest
limit:
min: {x: 0, y: 0, z: 0}
max: {x: 0, y: 0, z: 0}
value: {x: 0, y: 0, z: 0}
length: 0
modified: 0
skeleton:
- name: X Bot@Great Sword Slash(Clone)
parentName:
position: {x: 0, y: 0, z: 0}
rotation: {x: 0, y: 0, z: 0, w: 1}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:Hips
parentName: X Bot@Great Sword Slash(Clone)
position: {x: 0.00020980446, y: 0.9857378, z: 0.000768013}
rotation: {x: -0.14040339, y: 0.049076416, z: -0.003576874, w: 0.9888709}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:Spine
parentName: mixamorig:Hips
position: {x: -0, y: 0.10182399, z: 0}
rotation: {x: 0.12075527, y: -0.0374827, z: -0.00855395, w: 0.9919375}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:Spine1
parentName: mixamorig:Spine
position: {x: -0, y: 0.100026995, z: 0}
rotation: {x: 0.032192707, y: -0.011961056, z: 0.0052834894, w: 0.99939615}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:Spine2
parentName: mixamorig:Spine1
position: {x: -0, y: 0.093220994, z: 0}
rotation: {x: 0.045002107, y: -0.01253167, z: 0.005374661, w: 0.99889386}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:Neck
parentName: mixamorig:Spine2
position: {x: -0, y: 0.16865298, z: 0}
rotation: {x: -0.11036565, y: -0.009575429, z: -0.020042136, w: 0.99364287}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:Head
parentName: mixamorig:Neck
position: {x: -0, y: 0.09341899, z: 0.02841}
rotation: {x: -0.124247186, y: -0.0682191, z: 0.028800126, w: 0.9894844}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:HeadTop_End
parentName: mixamorig:Head
position: {x: -0, y: 0.20962799, z: 0.101229}
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.045700002, y: 0.111958, z: -0.0080659995}
rotation: {x: 0.55422723, y: 0.54577434, z: -0.32490095, w: 0.53796095}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightArm
parentName: mixamorig:RightShoulder
position: {x: -0, y: 0.108381994, z: 0}
rotation: {x: 0.12036054, y: 0.00065243227, z: -0.109718084, w: 0.98664826}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightForeArm
parentName: mixamorig:RightArm
position: {x: -0, y: 0.278415, z: 0}
rotation: {x: -0.005126208, y: -0.12869528, z: 0.015449666, w: 0.99155056}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHand
parentName: mixamorig:RightForeArm
position: {x: -0, y: 0.283288, z: 0}
rotation: {x: 0.049292944, y: -0.16032192, z: 0.15039629, w: 0.97429365}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandThumb1
parentName: mixamorig:RightHand
position: {x: -0.026819, y: 0.024647998, z: 0.01574}
rotation: {x: 0.13055423, y: 0.017230421, z: 0.31130847, w: 0.94114065}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandThumb2
parentName: mixamorig:RightHandThumb1
position: {x: -0, y: 0.04189, z: 0}
rotation: {x: 0.00088156003, y: -0.15172048, z: -0.02474435, w: 0.9881133}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandThumb3
parentName: mixamorig:RightHandThumb2
position: {x: -0, y: 0.034163, z: 0}
rotation: {x: -0.002082348, y: 0.052029252, z: -0.020261306, w: 0.9984379}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandThumb4
parentName: mixamorig:RightHandThumb3
position: {x: -0, y: 0.02575, z: 0}
rotation: {x: 0.005774398, y: 0.11750944, z: 0.048743945, w: 0.991858}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandIndex1
parentName: mixamorig:RightHand
position: {x: -0.022597998, y: 0.091083, z: 0.0051789996}
rotation: {x: 0.071994774, y: 0.1471007, z: -0.011701105, w: 0.9864286}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandIndex2
parentName: mixamorig:RightHandIndex1
position: {x: -0, y: 0.037, z: 0}
rotation: {x: -0.0000038072462, y: -0.005517363, z: -0.0000010803341, w: 0.99998486}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandIndex3
parentName: mixamorig:RightHandIndex2
position: {x: -0, y: 0.028499998, z: 0}
rotation: {x: 0.028744344, y: 0.010483595, z: -0.0013730548, w: 0.99953085}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandIndex4
parentName: mixamorig:RightHandIndex3
position: {x: -0, y: 0.027722001, z: 0}
rotation: {x: -0.00000008750134, y: -0.0010026915, z: -0.00008726642, w: 0.9999995}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandMiddle1
parentName: mixamorig:RightHand
position: {x: -0, y: 0.095325, z: 0}
rotation: {x: 0.042163037, y: 0.025337439, z: -0.0048903814, w: 0.99877745}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandMiddle2
parentName: mixamorig:RightHandMiddle1
position: {x: -0, y: 0.037, z: 0}
rotation: {x: 0.017012501, y: 0.00003168917, z: -0.0000074092504, w: 0.9998553}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandMiddle3
parentName: mixamorig:RightHandMiddle2
position: {x: -0, y: 0.0295, z: 0}
rotation: {x: 0.02964361, y: 0.017172942, z: -0.00016554132, w: 0.99941295}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandMiddle4
parentName: mixamorig:RightHandMiddle3
position: {x: -0, y: 0.029466, z: 0}
rotation: {x: -0.00000015476391, y: -0.00092851504, z: -0.00016667887, w: 0.9999996}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandRing1
parentName: mixamorig:RightHand
position: {x: 0.018651, y: 0.09103599, z: 0.000431}
rotation: {x: 0.04029139, y: -0.057151377, z: -0.004286616, w: 0.997543}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandRing2
parentName: mixamorig:RightHandRing1
position: {x: -0, y: 0.033793, z: 0}
rotation: {x: 0.025624089, y: 0.0047612, z: -0.00012805777, w: 0.9996604}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandRing3
parentName: mixamorig:RightHandRing2
position: {x: -0, y: 0.028896999, z: 0}
rotation: {x: 0.0213257, y: 0.009945167, z: 0.00018910822, w: 0.9997232}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandRing4
parentName: mixamorig:RightHandRing3
position: {x: -0, y: 0.026387999, z: 0}
rotation: {x: 0.00000011649483, y: -0.00014573496, z: 0.00079936074, w: 0.9999997}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandPinky1
parentName: mixamorig:RightHand
position: {x: 0.038062997, y: 0.080767, z: 0.004867}
rotation: {x: 0.043779623, y: -0.11522095, z: -0.008265898, w: 0.99234027}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandPinky2
parentName: mixamorig:RightHandPinky1
position: {x: -0, y: 0.036, z: 0}
rotation: {x: 0.024504391, y: 0.000008925792, z: -0.000013043634, w: 0.9996998}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandPinky3
parentName: mixamorig:RightHandPinky2
position: {x: -0, y: 0.020999998, z: 0}
rotation: {x: 0.018428607, y: -0.000021464992, z: -0.0000068668246, w: 0.9998302}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightHandPinky4
parentName: mixamorig:RightHandPinky3
position: {x: -0, y: 0.021157999, z: 0}
rotation: {x: 0.00000006435498, y: -0.0015690505, z: 0.00004101519, w: 0.9999988}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftShoulder
parentName: mixamorig:Spine2
position: {x: -0.045704, y: 0.11195599, z: -0.0080659995}
rotation: {x: 0.56930995, y: -0.53084815, z: 0.37246466, w: 0.50532806}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftArm
parentName: mixamorig:LeftShoulder
position: {x: -0, y: 0.108376995, z: 0}
rotation: {x: 0.057304814, y: 0.016389038, z: 0.06286055, w: 0.996241}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftForeArm
parentName: mixamorig:LeftArm
position: {x: -0, y: 0.278415, z: 0}
rotation: {x: -0.0032511014, y: 0.058919594, z: -0.022247337, w: 0.99800956}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHand
parentName: mixamorig:LeftForeArm
position: {x: -0, y: 0.283288, z: 0}
rotation: {x: 0.07570832, y: 0.13885356, z: -0.108822525, w: 0.9813999}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandThumb1
parentName: mixamorig:LeftHand
position: {x: 0.026817, y: 0.024660999, z: 0.015762}
rotation: {x: 0.18039866, y: 0.19659796, z: -0.31915766, w: 0.9093646}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandThumb2
parentName: mixamorig:LeftHandThumb1
position: {x: -0, y: 0.041871, z: 0}
rotation: {x: 0.0016386352, y: -0.106407, z: 0.026681356, w: 0.9939633}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandThumb3
parentName: mixamorig:LeftHandThumb2
position: {x: -0, y: 0.034184, z: 0}
rotation: {x: 0.007414733, y: -0.50693387, z: 0.015751284, w: 0.86180913}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandThumb4
parentName: mixamorig:LeftHandThumb3
position: {x: -0, y: 0.025806, z: 0}
rotation: {x: 0.005153017, y: -0.12268283, z: -0.04165188, w: 0.99155813}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandIndex1
parentName: mixamorig:LeftHand
position: {x: 0.022599, y: 0.091093, z: 0.00518}
rotation: {x: 0.054083508, y: 0.117147915, z: 0.004739226, w: 0.9916295}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandIndex2
parentName: mixamorig:LeftHandIndex1
position: {x: -0, y: 0.037, z: 0}
rotation: {x: 0.023111429, y: 0.018750258, z: 0.0012653823, w: 0.99955624}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandIndex3
parentName: mixamorig:LeftHandIndex2
position: {x: -0, y: 0.028499998, z: 0}
rotation: {x: 0.009287895, y: 0.044067834, z: -0.0003473566, w: 0.9989854}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandIndex4
parentName: mixamorig:LeftHandIndex3
position: {x: -0, y: 0.027748998, z: 0}
rotation: {x: -0.000000004946225, y: 0.00037786376, z: 0.000013089969, w: 0.99999994}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandMiddle1
parentName: mixamorig:LeftHand
position: {x: -0, y: 0.09533399, z: 0}
rotation: {x: 0.049447767, y: 0.11744375, z: 0.008625882, w: 0.9918102}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandMiddle2
parentName: mixamorig:LeftHandMiddle1
position: {x: -0, y: 0.037, z: 0}
rotation: {x: 0.011831652, y: -0.000013396136, z: 0.000005339735, w: 0.99993}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandMiddle3
parentName: mixamorig:LeftHandMiddle2
position: {x: -0, y: 0.0295, z: 0}
rotation: {x: 0.03483619, y: 0.011167951, z: -0.0005535081, w: 0.99933046}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandMiddle4
parentName: mixamorig:LeftHandMiddle3
position: {x: -0, y: 0.029528998, z: 0}
rotation: {x: 0.000000028609662, y: 0.001024508, z: -0.000027925253, w: 0.99999946}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandRing1
parentName: mixamorig:LeftHand
position: {x: -0.018651, y: 0.091045, z: 0.00043000001}
rotation: {x: 0.05243958, y: 0.2134051, z: 0.01057684, w: 0.9754981}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandRing2
parentName: mixamorig:LeftHandRing1
position: {x: -0, y: 0.0315, z: 0}
rotation: {x: 0.02137081, y: 0.0039499537, z: 0.00038455785, w: 0.9997638}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandRing3
parentName: mixamorig:LeftHandRing2
position: {x: -0, y: 0.0295, z: 0}
rotation: {x: 0.024947785, y: -0.03220921, z: 0.0065775346, w: 0.99914813}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandRing4
parentName: mixamorig:LeftHandRing3
position: {x: -0, y: 0.026442999, z: 0}
rotation: {x: -0.000000007744897, y: -0.0004930555, z: -0.000015707961, w: 0.9999999}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandPinky1
parentName: mixamorig:LeftHand
position: {x: -0.038062997, y: 0.080777995, z: 0.004869}
rotation: {x: 0.06333404, y: 0.22391135, z: 0.020310361, w: 0.9723374}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandPinky2
parentName: mixamorig:LeftHandPinky1
position: {x: -0, y: 0.036, z: 0}
rotation: {x: 0.009302987, y: 0.000023782239, z: 0.0000021969886, w: 0.9999568}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandPinky3
parentName: mixamorig:LeftHandPinky2
position: {x: -0, y: 0.020999998, z: 0}
rotation: {x: 0.031980217, y: -0.000027115266, z: 0.000011695778, w: 0.9994886}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftHandPinky4
parentName: mixamorig:LeftHandPinky3
position: {x: -0, y: 0.021255, z: 0}
rotation: {x: 0.0000006415177, y: 0.000783653, z: 0.00029495993, w: 0.99999964}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightUpLeg
parentName: mixamorig:Hips
position: {x: 0.082077995, y: -0.067718, z: -0.015121999}
rotation: {x: 0.119393066, y: -0.016615488, z: 0.9904153, w: -0.067430854}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightLeg
parentName: mixamorig:RightUpLeg
position: {x: -0, y: 0.44371498, z: 0}
rotation: {x: -0.30385104, y: -0.059892103, z: 0.0013121055, w: 0.9508343}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightFoot
parentName: mixamorig:RightLeg
position: {x: -0, y: 0.44527802, z: 0}
rotation: {x: 0.70362586, y: -0.032422975, z: -0.105150424, w: 0.7019992}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightToeBase
parentName: mixamorig:RightFoot
position: {x: -0, y: 0.138169, z: 0}
rotation: {x: 0.34530196, y: 0.005440176, z: -0.009307878, w: 0.9384297}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:RightToe_End
parentName: mixamorig:RightToeBase
position: {x: -0, y: 0.092781, z: 0}
rotation: {x: 0, y: -0.0116079245, z: -0, w: 0.99993265}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftUpLeg
parentName: mixamorig:Hips
position: {x: -0.082077995, y: -0.067718, z: -0.015121999}
rotation: {x: -0.066006355, y: -0.033171438, z: 0.99661237, w: 0.036147065}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftLeg
parentName: mixamorig:LeftUpLeg
position: {x: -0, y: 0.443714, z: 0}
rotation: {x: -0.29045832, y: 0.038221028, z: -0.022151005, w: 0.9558674}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftFoot
parentName: mixamorig:LeftLeg
position: {x: -0, y: 0.44527802, z: 0}
rotation: {x: 0.7247175, y: 0.026943693, z: 0.05773391, w: 0.68609434}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftToeBase
parentName: mixamorig:LeftFoot
position: {x: -0, y: 0.138169, z: 0}
rotation: {x: 0.33814558, y: -0.0021138852, z: 0.012035497, w: 0.9410145}
scale: {x: 1, y: 1, z: 1}
- name: mixamorig:LeftToe_End
parentName: mixamorig:LeftToeBase
position: {x: -0, y: 0.092781, z: 0}
rotation: {x: 0, y: 0.011868834, z: -0, w: 0.9999296}
scale: {x: 1, y: 1, z: 1}
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: 1
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 3
humanoidOversampling: 1
avatarSetup: 1
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
importBlendShapeDeformPercent: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

@ -41,6 +41,7 @@ AnimatorState:
m_Transitions:
- {fileID: -401782204561343896}
- {fileID: 3190558205857764453}
- {fileID: 1326893992646746368}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@ -75,6 +76,9 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: -7818877315444622998}
m_Position: {x: 300, y: 20, z: 0}
- serializedVersion: 1
m_State: {fileID: 5653169121862862346}
m_Position: {x: 600, y: 110, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
@ -131,6 +135,12 @@ AnimatorController:
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
- m_Name: SwordSlash
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
@ -145,6 +155,53 @@ AnimatorController:
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1101 &164081386174718480
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -3319961429774070512}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.1
m_TransitionOffset: 0
m_ExitTime: 0.9
m_HasExitTime: 1
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &1326893992646746368
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: SwordSlash
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 5653169121862862346}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.91935486
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &2011472799983193982
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
@ -216,6 +273,34 @@ AnimatorStateTransition:
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &5653169121862862346
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SwordSlash
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 2011472799983193982}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: -203655887218126122, guid: 93e75fa4b056e8e8e9dba8142dd1b5d9,
type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &6666529363392207808
AnimatorState:
serializedVersion: 6

@ -124,6 +124,7 @@ Material:
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &7764060587927922204
MonoBehaviour:
m_ObjectHideFlags: 11

@ -124,6 +124,7 @@ Material:
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &8018410709853096214
MonoBehaviour:
m_ObjectHideFlags: 11

@ -124,6 +124,7 @@ Material:
- _EmissionColor: {r: 1, g: 0.42869055, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &7764060587927922204
MonoBehaviour:
m_ObjectHideFlags: 11

@ -0,0 +1,137 @@
%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: SwordTrail
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _EMISSION
m_InvalidKeywords: []
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 2000
stringTagMap:
RenderType: Opaque
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}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
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
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 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: 0}
- _Color: {r: 1, g: 1, b: 1, a: 0}
- _EmissionColor: {r: 0, g: 0.95681435, b: 13.31713, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &4134177375110653354
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: f0810a5c4b33e1f17ba12401d0a2afff
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

@ -36,7 +36,6 @@ RectTransform:
- {fileID: 220629097105182586}
- {fileID: 7784280617483512128}
m_Father: {fileID: 2266715941421909531}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -166,7 +165,6 @@ RectTransform:
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 7784280617483512128}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -243,7 +241,6 @@ RectTransform:
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 7784280617483512128}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -326,13 +323,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6811418269204574989}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.0035, y: 0.0839, z: 0.703}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 4322432214950709108}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &7018597050678859317
GameObject:
@ -365,13 +362,159 @@ RectTransform:
- {fileID: 6454921614034271923}
- {fileID: 204966530800471585}
m_Father: {fileID: 4225202326264141909}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 1.2, y: 0.1}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &7039426972206979502
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2288321484353442653}
- component: {fileID: 9195362377596151081}
m_Layer: 0
m_Name: SwordTrail
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2288321484353442653
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7039426972206979502}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0.617, z: -0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 643083043555883542}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!96 &9195362377596151081
TrailRenderer:
serializedVersion: 3
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7039426972206979502}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 0
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: f0810a5c4b33e1f17ba12401d0a2afff, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Time: 0.2
m_PreviewTimeScale: 1
m_Parameters:
serializedVersion: 3
widthMultiplier: 0.7
widthCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
value: 0
inSlope: -1.7935476
outSlope: -1.7935476
tangentMode: 0
weightedMode: 0
inWeight: 0.125
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
colorGradient:
serializedVersion: 2
key0: {r: 1, g: 1, b: 1, a: 1}
key1: {r: 1, g: 1, b: 1, a: 1}
key2: {r: 1, g: 1, b: 1, a: 0}
key3: {r: 0, g: 0, b: 0, a: 0}
key4: {r: 0, g: 0, b: 0, a: 0}
key5: {r: 0, g: 0, b: 0, a: 0}
key6: {r: 0, g: 0, b: 0, a: 0}
key7: {r: 0, g: 0, b: 0, a: 0}
ctime0: 0
ctime1: 65535
ctime2: 65535
ctime3: 0
ctime4: 0
ctime5: 0
ctime6: 0
ctime7: 0
atime0: 0
atime1: 65535
atime2: 0
atime3: 0
atime4: 0
atime5: 0
atime6: 0
atime7: 0
m_Mode: 1
m_ColorSpace: 0
m_NumColorKeys: 2
m_NumAlphaKeys: 2
numCornerVertices: 0
numCapVertices: 0
alignment: 0
textureMode: 0
textureScale: {x: 1, y: 1}
shadowBias: 0.5
generateLightingData: 0
m_MinVertexDistance: 0.02
m_MaskInteraction: 0
m_Autodestruct: 0
m_Emitting: 1
m_ApplyActiveColorSpace: 1
--- !u!1 &7515914176832744456
GameObject:
m_ObjectHideFlags: 0
@ -390,6 +533,7 @@ GameObject:
- component: {fileID: -3436836861493843007}
- component: {fileID: 6109206103003842800}
- component: {fileID: -8304330001806500918}
- component: {fileID: -6548637358342564735}
m_Layer: 7
m_Name: Unit
m_TagString: Untagged
@ -404,6 +548,7 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7515914176832744456}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
@ -413,7 +558,6 @@ Transform:
- {fileID: 8315282383588646662}
- {fileID: 4225202326264141909}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &8550979771107320468
BoxCollider:
@ -486,7 +630,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 72d95b0f1e3eba1ceb3412efc417e12b, type: 3}
m_Name:
m_EditorClassIdentifier:
maxShootDistance: 7
obstaclesLayerMask:
serializedVersion: 2
m_Bits: 256
@ -505,6 +648,8 @@ MonoBehaviour:
animator: {fileID: 5009135633349946370}
bulletProjectilePrefab: {fileID: 1931371940272904135, guid: 4cd4ceee9290c084a80dd1c50314d268,
type: 3}
rifleTransform: {fileID: 4322432214950709108}
swordTransform: {fileID: 643083043555883542}
shootPointTransform: {fileID: 8996953600833096014}
--- !u!114 &-3436836861493843007
MonoBehaviour:
@ -548,6 +693,18 @@ MonoBehaviour:
m_EditorClassIdentifier:
grenadeProjectilePrefab: {fileID: 5461842780706456345, guid: 73c90efd88a346c82951744338b90000,
type: 3}
--- !u!114 &-6548637358342564735
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7515914176832744456}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: be272e38e55e26733a49104ec815e94c, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &7904759459253143674
GameObject:
m_ObjectHideFlags: 0
@ -579,7 +736,6 @@ RectTransform:
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 4225202326264141909}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -712,13 +868,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8254351766632820177}
serializedVersion: 2
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0.01, z: 0}
m_LocalScale: {x: 1.4, y: 1.4, z: 1.4}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 2266715941421909531}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
--- !u!33 &1189447171197181634
MeshFilter:
@ -807,6 +963,85 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
unit: {fileID: 2554385331328250168}
--- !u!1001 &640448909682488486
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 4962574079084210768}
m_Modifications:
- target: {fileID: 1891074724505988, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_Name
value: SM_Prop_Sword_01
objectReference: {fileID: 0}
- target: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_LocalScale.x
value: 100
objectReference: {fileID: 0}
- target: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_LocalScale.y
value: 100
objectReference: {fileID: 0}
- target: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_LocalScale.z
value: 100
objectReference: {fileID: 0}
- target: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_LocalPosition.x
value: 15.2
objectReference: {fileID: 0}
- target: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_LocalPosition.y
value: 7.2
objectReference: {fileID: 0}
- target: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_LocalPosition.z
value: 1.7
objectReference: {fileID: 0}
- target: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_LocalRotation.w
value: -0.56517893
objectReference: {fileID: 0}
- target: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_LocalRotation.x
value: 0.43126795
objectReference: {fileID: 0}
- target: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_LocalRotation.y
value: 0.3459321
objectReference: {fileID: 0}
- target: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_LocalRotation.z
value: 0.6123004
objectReference: {fileID: 0}
- target: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: -65.66
objectReference: {fileID: 0}
- target: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: -340.57
objectReference: {fileID: 0}
- target: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: -107.19
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9,
type: 3}
insertIndex: -1
addedObject: {fileID: 2288321484353442653}
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f124a282fc554ba40aabfad1c3f4d7a9, type: 3}
--- !u!4 &643083043555883542 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4473350882627248, guid: f124a282fc554ba40aabfad1c3f4d7a9,
type: 3}
m_PrefabInstance: {fileID: 640448909682488486}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &4317887677737669656
PrefabInstance:
m_ObjectHideFlags: 0
@ -827,6 +1062,10 @@ PrefabInstance:
propertyPath: m_Layer
value: 7
objectReference: {fileID: 0}
- target: {fileID: 1341255972871256, guid: c25ac4fdc903e7d49a7520930673ecd6, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1549202553469370, guid: c25ac4fdc903e7d49a7520930673ecd6, type: 3}
propertyPath: m_Layer
value: 7
@ -1228,6 +1467,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 4322432214950709108}
- targetCorrespondingSourceObject: {fileID: 4170833147357194, guid: 2f3e27eecb190e44a9af50723c394274,
type: 3}
insertIndex: -1
addedObject: {fileID: 643083043555883542}
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2f3e27eecb190e44a9af50723c394274, type: 3}
--- !u!4 &4953974580317310234 stripped

@ -5,9 +5,9 @@ using UnityEngine;
namespace Actions {
public class GrenadeAction : BaseAction {
private const int maxThrowDistance = 7;
[SerializeField] private Transform grenadeProjectilePrefab;
private const int maxThrowDistance = 7;
protected override void Awake() {
base.Awake();
@ -35,14 +35,16 @@ namespace Actions {
if (!LevelGrid.Instance.IsValidGridPosition(testGridPosition)) continue; //Only return valid grid positions
if (Mathf.Abs(x) + Mathf.Abs(z) > maxThrowDistance) continue; //Out of Range
validGridPositionList.Add(testGridPosition);
}
}
return validGridPositionList; }
protected override EnemyAIAction GetEnemyAIAction(GridPosition gridPosition) => new(gridPosition,0);
return validGridPositionList;
}
protected override EnemyAIAction GetEnemyAIAction(GridPosition gridPosition) => new(gridPosition, 0);
private void OnGrenadeBehaviourComplete() => ActionComplete();
}
}
}

@ -2,43 +2,27 @@ using System;
using System.Collections.Generic;
using Grid;
using UnityEngine;
using UnityEngine.Serialization;
namespace Actions {
public class ShootAction : BaseAction
{
private enum State {
Aiming,
Shooting,
Cooloff
}
public Unit TargetUnit { get; set; }
public int maxShootDistance = 7;
[SerializeField] private LayerMask obstaclesLayerMask;
private State state;
private float stateTimer;
private bool canShootBullet;
public class ShootAction : BaseAction {
private const float rotationSpeed = 10f;
private const float shootingStateTime = .2f;
private const float coolOffStateTime = 1f;
private const float aimingStateTime = 1.5f;
private const float unitShoulderHeight = 1.7f;
public event EventHandler<ShootEventArgs> OnShoot;
public static event EventHandler<ShootEventArgs> OnAnyShoot;
[SerializeField] private LayerMask obstaclesLayerMask;
private bool canShootBullet;
public class ShootEventArgs : EventArgs {
public Unit TargetUnit;
public Unit ShootingUnit;
}
private State state;
private float stateTimer;
public Unit TargetUnit { get; private set; }
public Unit ShootingUnit { get; private set; }
public int MaxShootDistance { get; private set; }
protected override void Awake() {
base.Awake();
MaxShootDistance = 7;
ActionName = "Shoot";
}
@ -56,6 +40,7 @@ namespace Actions {
Shoot();
canShootBullet = false;
}
break;
case State.Cooloff:
break;
@ -64,9 +49,13 @@ namespace Actions {
if (stateTimer <= 0f) NextState();
}
public event EventHandler<ShootEventArgs> OnShoot;
public static event EventHandler<ShootEventArgs> OnAnyShoot;
private void Shoot() {
OnAnyShoot?.Invoke(this,new(){TargetUnit = TargetUnit, ShootingUnit = Unit});
OnShoot?.Invoke(this,new(){TargetUnit = TargetUnit, ShootingUnit = Unit});
OnAnyShoot?.Invoke(this, new() { TargetUnit = TargetUnit, ShootingUnit = Unit });
OnShoot?.Invoke(this, new() { TargetUnit = TargetUnit, ShootingUnit = Unit });
TargetUnit.Damage(40);
}
@ -91,7 +80,7 @@ namespace Actions {
TargetUnit = LevelGrid.Instance.GetUnitAtGridPosition(gridPosition);
canShootBullet = true;
state = State.Aiming;
stateTimer = aimingStateTime;
@ -102,14 +91,14 @@ namespace Actions {
private List<GridPosition> GetValidActionGridPositionList(GridPosition unitGridPosition) {
List<GridPosition> validGridPositionList = new();
for (int x = -maxShootDistance; x <= maxShootDistance; x++) {
for (int z = -maxShootDistance; z <= maxShootDistance; z++) {
for (int x = -MaxShootDistance; x <= MaxShootDistance; x++) {
for (int z = -MaxShootDistance; z <= MaxShootDistance; z++) {
GridPosition offsetGridPosition = new(x, z);
GridPosition testGridPosition = unitGridPosition + offsetGridPosition;
if (!LevelGrid.Instance.IsValidGridPosition(testGridPosition)) continue; //Only return valid grid positions
if (Mathf.Abs(x) + Mathf.Abs(z) > maxShootDistance) continue; //Out of Range
if (Mathf.Abs(x) + Mathf.Abs(z) > MaxShootDistance) continue; //Out of Range
if (!LevelGrid.Instance.HasAnyUnitOnGridPosition(testGridPosition)) continue; //Grid position is empty, no unit
Unit unitAtGridPosition = LevelGrid.Instance.GetUnitAtGridPosition(testGridPosition);
@ -118,16 +107,12 @@ namespace Actions {
Vector3 unitWorldPosition = LevelGrid.Instance.GetWorldPosition(unitGridPosition);
Vector3 shootDir = (TargetUnit.GetWorldPosition() - unitWorldPosition).normalized;
if (Physics.Raycast(
unitWorldPosition + Vector3.up * unitShoulderHeight,
shootDir,
Vector3.Distance(unitWorldPosition, TargetUnit.GetWorldPosition()),
obstaclesLayerMask
)) continue; // Blocked by an obstacle
if (Physics.Raycast(unitWorldPosition + Vector3.up * unitShoulderHeight, shootDir, Vector3.Distance(unitWorldPosition, TargetUnit.GetWorldPosition()), obstaclesLayerMask)) continue; // Blocked by an obstacle
validGridPositionList.Add(testGridPosition);
}
}
return validGridPositionList;
}
@ -137,5 +122,16 @@ namespace Actions {
}
public int GetTargetCountAtPosition(GridPosition gridPosition) => GetValidActionGridPositionList(gridPosition).Count;
private enum State {
Aiming,
Shooting,
Cooloff
}
public class ShootEventArgs : EventArgs {
public Unit ShootingUnit;
public Unit TargetUnit;
}
}
}
}

@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using Grid;
using UnityEngine;
namespace Actions {
public class SwordAction : BaseAction {
private State state;
private float stateTimer;
public int MaxSwordDistance { get; private set; }
private Unit TargetUnit { get; set; }
protected override void Awake() {
base.Awake();
ActionPointsCost = 1;
MaxSwordDistance = 1;
ActionName = "Sword";
}
private void Update() {
if (!IsActive) return;
stateTimer -= Time.deltaTime;
switch (state) {
case State.SwingingSwordBeforeHit:
Vector3 aimDirection = (TargetUnit.GetWorldPosition() - Unit.GetWorldPosition()).normalized;
const float rotationSpeed = 10f;
transform.forward = Vector3.Lerp(transform.forward, aimDirection, rotationSpeed * Time.deltaTime);
break;
case State.SwingingSwordAfterHit:
break;
}
if (stateTimer <= 0f) NextState();
}
public static event EventHandler OnAnySwordHit;
public event EventHandler OnSwordActionStarted;
public event EventHandler OnSwordActionCompleted;
public override void TakeAction(GridPosition gridPosition, Action onActionComplete) {
TargetUnit = LevelGrid.Instance.GetUnitAtGridPosition(gridPosition);
state = State.SwingingSwordBeforeHit;
const float beforeHitStateTime = 0.7f;
stateTimer = beforeHitStateTime;
OnSwordActionStarted?.Invoke(this, EventArgs.Empty);
ActionStart(onActionComplete);
}
public override List<GridPosition> GetValidActionGridPositionList() {
List<GridPosition> validGridPositionList = new();
GridPosition unitGridPosition = Unit.GridPosition;
for (int x = -MaxSwordDistance; x <= MaxSwordDistance; x++) {
for (int z = -MaxSwordDistance; z <= MaxSwordDistance; z++) {
GridPosition offsetGridPosition = new(x, z);
GridPosition testGridPosition = unitGridPosition + offsetGridPosition;
if (!LevelGrid.Instance.IsValidGridPosition(testGridPosition)) continue; //Only return valid grid positions
if (!LevelGrid.Instance.HasAnyUnitOnGridPosition(testGridPosition)) continue; //Grid position is empty, no unit
Unit unitAtGridPosition = LevelGrid.Instance.GetUnitAtGridPosition(testGridPosition);
if (unitAtGridPosition.IsEnemy == Unit.IsEnemy) continue; //Both units are on the same 'team'
// TargetUnit = unitAtGridPosition;
validGridPositionList.Add(testGridPosition);
}
}
return validGridPositionList;
}
protected override EnemyAIAction GetEnemyAIAction(GridPosition gridPosition) => new(gridPosition, 200);
private void NextState() {
switch (state) {
case State.SwingingSwordBeforeHit:
state = State.SwingingSwordAfterHit;
const float afterHitStateTime = 0.5f;
stateTimer = afterHitStateTime;
TargetUnit.Damage(100);
OnAnySwordHit?.Invoke(this, EventArgs.Empty);
break;
case State.SwingingSwordAfterHit:
OnSwordActionCompleted?.Invoke(this, EventArgs.Empty);
ActionComplete();
break;
}
}
private enum State {
SwingingSwordBeforeHit,
SwingingSwordAfterHit,
}
}
}

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: be272e38e55e26733a49104ec815e94c

@ -7,17 +7,6 @@ using UnityEngine.Serialization;
namespace Grid {
public class GridSystemVisual : MonoBehaviour {
[FormerlySerializedAs("GridSystemVisualSinglePrefab")] [SerializeField] private Transform gridSystemVisualSinglePrefab;
[FormerlySerializedAs("gridVisualTypeMaterials")] [SerializeField] private List<GridVisualTypeMaterial> gridVisualTypeMaterialList;
private GridSystemVisualSingle[,] gridSystemVisualSingleArray;
private static GridSystemVisual Instance { get; set; }
[Serializable]
public struct GridVisualTypeMaterial {
public GridVisualType gridVisualType;
public Material material;
}
public enum GridVisualType {
White,
Red,
@ -26,6 +15,15 @@ namespace Grid {
RedSoft
}
[FormerlySerializedAs("GridSystemVisualSinglePrefab")] [SerializeField]
private Transform gridSystemVisualSinglePrefab;
[FormerlySerializedAs("gridVisualTypeMaterials")] [SerializeField]
private List<GridVisualTypeMaterial> gridVisualTypeMaterialList;
private GridSystemVisualSingle[,] gridSystemVisualSingleArray;
private static GridSystemVisual Instance { get; set; }
private void Awake() {
if (Instance is not null) {
Debug.LogError($"There is more than one GridSystemVisual! {transform} - {Instance}");
@ -47,7 +45,7 @@ namespace Grid {
gridSystemVisualSingleArray[x, z] = gridSystemVisualSingleTransform.GetComponent<GridSystemVisualSingle>();
}
}
UnitActionSystem.Instance.OnSelectedActionChanged += UnitActionSystem_OnSelectedActionChanged;
LevelGrid.Instance.OnAnyUnitMovedGridPosition += LevelGrid_OnAnyUnitMovedGridPosition;
UpdateGridVisual();
@ -77,9 +75,23 @@ namespace Grid {
gridPositionList.Add(testGridPosition);
}
}
ShowGridPositionList(gridPositionList, gridVisualType);
}
private void ShowGridPositionRangeSquare(GridPosition gridPosition, int range, GridVisualType gridVisualType) {
List<GridPosition> gridPositionList = new();
for (int x = -range; x <= range; x++) {
for (int z = -range; z <= range; z++) {
GridPosition testGridPosition = gridPosition + new GridPosition(x, z);
if (!LevelGrid.Instance.IsValidGridPosition(testGridPosition)) continue; //Only return valid grid positions
gridPositionList.Add(testGridPosition);
}
}
ShowGridPositionList(gridPositionList, gridVisualType);
}
private void UpdateGridVisual() {
HideAllGridPosition();
BaseAction selectedAction = UnitActionSystem.Instance.SelectedAction;
@ -89,9 +101,16 @@ namespace Grid {
case SpinAction:
gridVisualType = GridVisualType.Blue;
break;
case GrenadeAction:
gridVisualType = GridVisualType.Yellow;
break;
case ShootAction:
gridVisualType = GridVisualType.Red;
ShowGridPositionRange(selectedUnit.GridPosition, selectedUnit.GetAction<ShootAction>().maxShootDistance, GridVisualType.RedSoft);
ShowGridPositionRange(selectedUnit.GridPosition, selectedUnit.GetAction<ShootAction>().MaxShootDistance, GridVisualType.RedSoft);
break;
case SwordAction:
gridVisualType = GridVisualType.Red;
ShowGridPositionRangeSquare(selectedUnit.GridPosition, selectedUnit.GetAction<SwordAction>().MaxSwordDistance, GridVisualType.RedSoft);
break;
default:
gridVisualType = GridVisualType.White;
@ -102,9 +121,13 @@ namespace Grid {
}
private Material GetGridVisualTypeMaterial(GridVisualType gridVisualType) {
return (from gridVisualTypeMaterial in gridVisualTypeMaterialList
where gridVisualTypeMaterial.gridVisualType == gridVisualType
select gridVisualTypeMaterial.material).FirstOrDefault();
return (from gridVisualTypeMaterial in gridVisualTypeMaterialList where gridVisualTypeMaterial.gridVisualType == gridVisualType select gridVisualTypeMaterial.material).FirstOrDefault();
}
[Serializable]
public struct GridVisualTypeMaterial {
public GridVisualType gridVisualType;
public Material material;
}
}
}

@ -6,8 +6,11 @@ public class ScreenShakeActions : MonoBehaviour {
private void Start() {
ShootAction.OnAnyShoot += ShootAction_OnAnyShoot;
GrenadeProjectile.OnAnyGrenadeExploded += GrenadeProjectile_OnAnyGrenadeExploded;
SwordAction.OnAnySwordHit += SwordAction_OnAnySwordHit;
}
private void SwordAction_OnAnySwordHit(object sender, EventArgs e) => ScreenShake.Instance.Shake(2f);
private void GrenadeProjectile_OnAnyGrenadeExploded(object sender, EventArgs e) => ScreenShake.Instance.Shake(5f);
private void ShootAction_OnAnyShoot(object sender, ShootAction.ShootEventArgs e) => ScreenShake.Instance.Shake();

@ -4,11 +4,17 @@ using UnityEngine;
using UnityEngine.Serialization;
public class UnitAnimator : MonoBehaviour {
[SerializeField] private Animator animator;
[SerializeField] private Transform bulletProjectilePrefab;
[FormerlySerializedAs("shootPoint")] [SerializeField] private Transform shootPointTransform;
private static readonly int isWalking = Animator.StringToHash("IsWalking");
private static readonly int shoot = Animator.StringToHash("Shoot");
private static readonly int swordSlash = Animator.StringToHash("SwordSlash");
[SerializeField] private Animator animator;
[SerializeField] private Transform bulletProjectilePrefab;
[SerializeField] private Transform rifleTransform;
[SerializeField] private Transform swordTransform;
[FormerlySerializedAs("shootPoint")] [SerializeField]
private Transform shootPointTransform;
private void Awake() {
if (TryGetComponent(out MoveAction moveAction)) {
@ -19,10 +25,25 @@ public class UnitAnimator : MonoBehaviour {
if (TryGetComponent(out ShootAction shootAction)) {
shootAction.OnShoot += ShootAction_OnShoot;
}
if (TryGetComponent(out SwordAction swordAction)) {
swordAction.OnSwordActionStarted += SwordAction_OnSwordActionStarted;
swordAction.OnSwordActionCompleted += SwordAction_OnSwordActionCompleted;
}
}
private void Start() => EquipRifle();
private void SwordAction_OnSwordActionStarted(object sender, EventArgs e) {
EquipSword();
animator.SetTrigger(swordSlash);
}
private void SwordAction_OnSwordActionCompleted(object sender, EventArgs e) => EquipRifle();
private void MoveAction_OnStartMoving(object sender, EventArgs e) => animator.SetBool(isWalking, true);
private void MoveAction_OnStopMoving(object sender, EventArgs e) => animator.SetBool(isWalking, false);
private void ShootAction_OnShoot(object sender, ShootAction.ShootEventArgs e) {
animator.SetTrigger(shoot);
Transform bulletProjectPrefab = Instantiate(bulletProjectilePrefab, shootPointTransform.position, Quaternion.identity);
@ -30,4 +51,14 @@ public class UnitAnimator : MonoBehaviour {
targetUnitShootAtPosition.y = shootPointTransform.position.y;
bulletProjectPrefab.GetComponent<BulletProjectile>().Setup(targetUnitShootAtPosition);
}
}
private void EquipSword() {
swordTransform.gameObject.SetActive(true);
rifleTransform.gameObject.SetActive(false);
}
private void EquipRifle() {
rifleTransform.gameObject.SetActive(true);
swordTransform.gameObject.SetActive(false);
}
}