02월4일 작업물
This commit is contained in:
parent
2e93f447dc
commit
6aee6544c7
|
|
@ -10,47 +10,47 @@ PrefabInstance:
|
|||
m_Modifications:
|
||||
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 1.7955
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: 1.7955
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 1.7955
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 37.404156
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 7.75
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 24.345
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 0.7058545
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0.7058545
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0.04206518
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0.04206518
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: -90
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
|
|
@ -58,7 +58,7 @@ PrefabInstance:
|
|||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: -6.821
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -7511558181221131132, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_Materials.Array.data[0]
|
||||
|
|
@ -66,7 +66,7 @@ PrefabInstance:
|
|||
objectReference: {fileID: 2100000, guid: 52b1a761d9ed33549a8cbf408621f61a, type: 2}
|
||||
- target: {fileID: 919132149155446097, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: "Meshy_AI_\uB0A1\uC740_\uCE7C_0202123706_texture"
|
||||
value: Long Sword1
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
|
|
@ -75,6 +75,12 @@ PrefabInstance:
|
|||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: -1612093166368112069}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 8969793428134418161}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 5023708991233411184}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
|
||||
--- !u!1 &2140436862665439697 stripped
|
||||
GameObject:
|
||||
|
|
@ -93,4 +99,53 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: 4eebd921e8ac4c74182441ec944491ef, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
damage: 10
|
||||
weaponBaseDamage: 10
|
||||
_weaponCollider: {fileID: 0}
|
||||
--- !u!65 &8969793428134418161
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2140436862665439697}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 0
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 0.38805538, y: 0.10370442, z: 1.9960225}
|
||||
m_Center: {x: -0.00056359917, y: 0.00017759763, z: 0.0017145276}
|
||||
--- !u!54 &5023708991233411184
|
||||
Rigidbody:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2140436862665439697}
|
||||
serializedVersion: 4
|
||||
m_Mass: 1
|
||||
m_Drag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_CenterOfMass: {x: 0, y: 0, z: 0}
|
||||
m_InertiaTensor: {x: 1, y: 1, z: 1}
|
||||
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ImplicitCom: 1
|
||||
m_ImplicitTensor: 1
|
||||
m_UseGravity: 0
|
||||
m_IsKinematic: 1
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 0
|
||||
m_CollisionDetection: 0
|
||||
|
|
|
|||
|
|
@ -10,35 +10,35 @@ PrefabInstance:
|
|||
m_Modifications:
|
||||
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 0.62877
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: 0.62877
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 0.62877
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 36.294
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 6.98
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 26.08
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 0.7071068
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0.7071068
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
|
|
@ -46,7 +46,7 @@ PrefabInstance:
|
|||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
|
|
@ -66,7 +66,7 @@ PrefabInstance:
|
|||
objectReference: {fileID: 2100000, guid: 1fcf7668092515844ba6a46e65da4e0e, type: 2}
|
||||
- target: {fileID: 919132149155446097, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: "Meshy_AI_\uB0A1\uC740_\uB2E8\uAC80_0202123716_texture"
|
||||
value: Short Sword
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
|
|
@ -75,6 +75,12 @@ PrefabInstance:
|
|||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: -1799796546392776957}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 3083288925293399464}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: -3973499554777544766}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
|
||||
--- !u!1 &1989840764554354322 stripped
|
||||
GameObject:
|
||||
|
|
@ -93,4 +99,53 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: 4eebd921e8ac4c74182441ec944491ef, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
damage: 10
|
||||
weaponBaseDamage: 10
|
||||
_weaponCollider: {fileID: 0}
|
||||
--- !u!65 &3083288925293399464
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1989840764554354322}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 0
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 0.42812747, y: 0.2068659, z: 1.9971138}
|
||||
m_Center: {x: 0.002586253, y: -0.00008453429, z: -0.0020856261}
|
||||
--- !u!54 &-3973499554777544766
|
||||
Rigidbody:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1989840764554354322}
|
||||
serializedVersion: 4
|
||||
m_Mass: 1
|
||||
m_Drag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_CenterOfMass: {x: 0, y: 0, z: 0}
|
||||
m_InertiaTensor: {x: 1, y: 1, z: 1}
|
||||
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ImplicitCom: 1
|
||||
m_ImplicitTensor: 1
|
||||
m_UseGravity: 0
|
||||
m_IsKinematic: 1
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 0
|
||||
m_CollisionDetection: 0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,58 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4116817349365388860
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5189329377133592040}
|
||||
- component: {fileID: 4291496314861976794}
|
||||
m_Layer: 6
|
||||
m_Name: Heat Box
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!4 &5189329377133592040
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4116817349365388860}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.09, y: 0.16, z: 2.04}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4120830999722734443}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!65 &4291496314861976794
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4116817349365388860}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &4520092900722824320
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -10,35 +63,35 @@ PrefabInstance:
|
|||
m_Modifications:
|
||||
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 2.450081
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: 2.292385
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 2.9647658
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 34.28
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 8.899
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 25.562
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 0.7071068
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0.7071068
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
|
|
@ -46,7 +99,7 @@ PrefabInstance:
|
|||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
|
|
@ -74,24 +127,27 @@ PrefabInstance:
|
|||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedGameObjects:
|
||||
- targetCorrespondingSourceObject: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 5189329377133592040}
|
||||
m_AddedComponents:
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: -4244908935780581778}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: -4464162073945719506}
|
||||
insertIndex: 2
|
||||
addedObject: {fileID: 5898612647368458389}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: -5261385165049439556}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 6438600877785711725}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
--- !u!1 &3637766495420049873 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
m_PrefabInstance: {fileID: 4520092900722824320}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!114 &-4244908935780581778
|
||||
--- !u!114 &5898612647368458389
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
|
|
@ -104,27 +160,7 @@ MonoBehaviour:
|
|||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
weaponBaseDamage: 10
|
||||
--- !u!65 &-4464162073945719506
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3637766495420049873}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 0.19, y: 0.25, z: 1.9}
|
||||
m_Center: {x: -0.03, y: 0.02, z: -0.0006678106}
|
||||
_weaponCollider: {fileID: 6438600877785711725}
|
||||
--- !u!54 &-5261385165049439556
|
||||
Rigidbody:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -152,3 +188,29 @@ Rigidbody:
|
|||
m_Interpolate: 0
|
||||
m_Constraints: 0
|
||||
m_CollisionDetection: 0
|
||||
--- !u!65 &6438600877785711725
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3637766495420049873}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 0
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 0.09035547, y: 0.05661974, z: 1.9976}
|
||||
m_Center: {x: -0.0013071373, y: -0.00018994324, z: -0.00066781044}
|
||||
--- !u!4 &4120830999722734443 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
|
||||
m_PrefabInstance: {fileID: 4520092900722824320}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,107 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1163733789413127741
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1853753193380319200}
|
||||
- component: {fileID: 6580353540313253097}
|
||||
- component: {fileID: 6725208262828196419}
|
||||
- component: {fileID: 661439740501535806}
|
||||
m_Layer: 6
|
||||
m_Name: Throw Monster Weapon
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1853753193380319200
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1163733789413127741}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.067, y: -0.559, z: 0.274}
|
||||
m_LocalScale: {x: 0.97348, y: 0.97348, z: 0.97348}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &6580353540313253097
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1163733789413127741}
|
||||
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &6725208262828196419
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1163733789413127741}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
|
||||
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_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!135 &661439740501535806
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1163733789413127741}
|
||||
m_Material: {fileID: 0}
|
||||
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_Radius: 0.50000024
|
||||
m_Center: {x: -0.000011444099, y: 0, z: -0.000007629398}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 3fe90e2c4622f754381371a281472296
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -31,6 +31,38 @@ Transform:
|
|||
m_Children: []
|
||||
m_Father: {fileID: 820014222618867213}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &149740767637875415
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8489816395439659708}
|
||||
m_Layer: 6
|
||||
m_Name: GameObject
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8489816395439659708
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 149740767637875415}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1108089601745891472}
|
||||
m_Father: {fileID: 3515307460793968011}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &216741287701997913
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -1419,8 +1451,8 @@ GameObject:
|
|||
m_Component:
|
||||
- component: {fileID: 5494800343343911850}
|
||||
- component: {fileID: 2734043935891789976}
|
||||
- component: {fileID: 2191869281094090394}
|
||||
- component: {fileID: 165297179063843592}
|
||||
- component: {fileID: -5927759587507764226}
|
||||
- component: {fileID: 1514289710616282544}
|
||||
- component: {fileID: 8202243285445189301}
|
||||
- component: {fileID: 5769769960016074036}
|
||||
|
|
@ -1470,41 +1502,6 @@ Animator:
|
|||
m_AllowConstantClipSamplingOptimization: 1
|
||||
m_KeepAnimatorStateOnDisable: 0
|
||||
m_WriteDefaultValuesOnDisable: 0
|
||||
--- !u!114 &2191869281094090394
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3587750552762439828}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 8c775790f7852314c8d6527ffe977e03, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
optimizationDistance: 40
|
||||
maxHP: 100
|
||||
attackDamage: 10
|
||||
expReward: 10
|
||||
moveSpeed: 3.5
|
||||
Monster_Idle: Monster_Idle
|
||||
Monster_GetDamage: Monster_GetDamage
|
||||
Monster_Die: 'Monster_Die '
|
||||
attackRestDuration: 2
|
||||
hitSound: {fileID: 0}
|
||||
deathSound: {fileID: 0}
|
||||
deathEffectPrefab: {fileID: 0}
|
||||
hitEffect: {fileID: 0}
|
||||
impactSpawnPoint: {fileID: 0}
|
||||
myWeapon: {fileID: -4244908935780581778, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
attackRange: 4
|
||||
attackDelay: 1.5
|
||||
attackAnimations:
|
||||
- Monster_Attack_1
|
||||
Monster_Walk: Monster_Walk
|
||||
stopBuffer: 0.3
|
||||
patrolRadius: 5
|
||||
patrolInterval: 2
|
||||
--- !u!195 &165297179063843592
|
||||
NavMeshAgent:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -1527,6 +1524,47 @@ NavMeshAgent:
|
|||
m_BaseOffset: 0
|
||||
m_WalkableMask: 4294967295
|
||||
m_ObstacleAvoidanceType: 4
|
||||
--- !u!114 &-5927759587507764226
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3587750552762439828}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0e6d46f9fafc5dc4881b4fedd7bd689f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
optimizationDistance: 40
|
||||
maxHP: 100
|
||||
attackDamage: 10
|
||||
expReward: 10
|
||||
moveSpeed: 3.5
|
||||
myWeapon: {fileID: 0}
|
||||
Monster_Idle: Monster_Idle
|
||||
Monster_GetDamage: Monster_GetDamage
|
||||
Monster_Die: Monster_Die
|
||||
attackRestDuration: 1.5
|
||||
hitSound: {fileID: 0}
|
||||
deathSound: {fileID: 0}
|
||||
deathEffectPrefab: {fileID: 0}
|
||||
hitEffect: {fileID: 0}
|
||||
impactSpawnPoint: {fileID: 0}
|
||||
attackType: 1
|
||||
projectilePrefab: {fileID: 1163733789413127741, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
firePoint: {fileID: 0}
|
||||
handModel: {fileID: 1163733789413127741, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
reloadTime: 2
|
||||
throwForce: 15
|
||||
throwUpward: 5
|
||||
attackRange: 10
|
||||
attackDelay: 2
|
||||
detectRange: 15
|
||||
throwAnim: Monster_Attack_1
|
||||
walkAnim: Monster_Walk
|
||||
patrolRadius: 5
|
||||
patrolInterval: 3
|
||||
--- !u!54 &1514289710616282544
|
||||
Rigidbody:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -2457,7 +2495,7 @@ Transform:
|
|||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7080305393597894472}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: -0.16723491, z: -0, w: 0.9859171}
|
||||
m_LocalRotation: {x: 0.23055366, y: -0.16270708, z: -0.016085869, w: 0.959225}
|
||||
m_LocalPosition: {x: 0.59595025, y: -0.06814218, z: 0.18439426}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
|
|
@ -2467,9 +2505,9 @@ Transform:
|
|||
- {fileID: 6820430208105080267}
|
||||
- {fileID: 6999144065060741639}
|
||||
- {fileID: 6793412506891494909}
|
||||
- {fileID: 1214684053570394478}
|
||||
- {fileID: 8489816395439659708}
|
||||
m_Father: {fileID: 5453506110754154993}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: 25.917, y: -20.812, z: -6.761}
|
||||
--- !u!1 &7153040190580437744
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -2588,7 +2626,7 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: 9eb5b341f7503494e9b0f88cc4b1c17d, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
healthSource: {fileID: 2191869281094090394}
|
||||
healthSource: {fileID: 0}
|
||||
hpFillImage: {fileID: 7307672912510681016}
|
||||
hpText: {fileID: 2164660505891504432}
|
||||
--- !u!1 &7576300459429704252
|
||||
|
|
@ -3425,67 +3463,63 @@ Transform:
|
|||
m_Children: []
|
||||
m_Father: {fileID: 4924140283750863661}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &3020592912531532293
|
||||
--- !u!1001 &1646456170886479728
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 3515307460793968011}
|
||||
m_TransformParent: {fileID: 8489816395439659708}
|
||||
m_Modifications:
|
||||
- target: {fileID: 3637766495420049873, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
- target: {fileID: 1163733789413127741, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Spear
|
||||
value: Throw Monster Weapon
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 4.5709
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
- target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: 4.5709
|
||||
value: 0.97348017
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
- target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 4.5709
|
||||
value: 0.97347987
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
- target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0.26
|
||||
value: 0.067000516
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
- target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -0.185
|
||||
value: -0.558999
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
- target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 2.33
|
||||
value: 0.27400145
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
- target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
- target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
value: -0.000000014901161
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
- target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
value: -0.000000059604645
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
- target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
value: 0.000000022351742
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
- target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
- target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
- target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
|
|
@ -3493,9 +3527,9 @@ PrefabInstance:
|
|||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
--- !u!4 &1214684053570394478 stripped
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
--- !u!4 &1108089601745891472 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
|
||||
m_PrefabInstance: {fileID: 3020592912531532293}
|
||||
m_CorrespondingSourceObject: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
|
||||
m_PrefabInstance: {fileID: 1646456170886479728}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
|
|
|
|||
|
|
@ -382,6 +382,7 @@ Transform:
|
|||
- {fileID: 8601973675841176934}
|
||||
- {fileID: 4258228940095842877}
|
||||
- {fileID: 2239401418602158757}
|
||||
- {fileID: 1000517034669344941}
|
||||
m_Father: {fileID: 6886228752417663885}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1520132395512168833
|
||||
|
|
@ -1520,6 +1521,7 @@ MonoBehaviour:
|
|||
deathEffectPrefab: {fileID: 0}
|
||||
hitEffect: {fileID: 0}
|
||||
impactSpawnPoint: {fileID: 0}
|
||||
myWeapon: {fileID: 8267965081717418493}
|
||||
attackRange: 2
|
||||
attackDelay: 1.5
|
||||
attackAnimations:
|
||||
|
|
@ -2881,3 +2883,76 @@ Transform:
|
|||
- {fileID: 24538573601920909}
|
||||
m_Father: {fileID: 2582067335924110456}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &1953726205158157254
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 5795050858570269262}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1657196367734596459, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0.616
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1657196367734596459, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -0.587
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1657196367734596459, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -0.45
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1657196367734596459, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 0.85455346
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1657196367734596459, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0.44047815
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1657196367734596459, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0.27476853
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1657196367734596459, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0.014818206
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1657196367734596459, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: -49.55
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1657196367734596459, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: -44.725
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1657196367734596459, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 19.515
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2140436862665439697, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Long Sword1
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
--- !u!4 &1000517034669344941 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 1657196367734596459, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
m_PrefabInstance: {fileID: 1953726205158157254}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!114 &8267965081717418493 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: -1612093166368112069, guid: 5d62f1e549a97b14484c4eef4f6b3885, type: 3}
|
||||
m_PrefabInstance: {fileID: 1953726205158157254}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4eebd921e8ac4c74182441ec944491ef, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
|
|
|
|||
66583
Assets/4.PlayerAnimation/Player Anime/Monster_Throw.anim
Normal file
66583
Assets/4.PlayerAnimation/Player Anime/Monster_Throw.anim
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
8
Assets/5.Enemy Animation.meta
Normal file
8
Assets/5.Enemy Animation.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: cb2eb4c30e1269846945d1cddad0a27e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/5.Enemy Animation/char@Throw Object.fbx
Normal file
BIN
Assets/5.Enemy Animation/char@Throw Object.fbx
Normal file
Binary file not shown.
109
Assets/5.Enemy Animation/char@Throw Object.fbx.meta
Normal file
109
Assets/5.Enemy Animation/char@Throw Object.fbx.meta
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 52bb5430ce0687e4fb3c96a0b7ef1d56
|
||||
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:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 1
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importPhysicalCameras: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
nodeNameCollisionStrategy: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 0
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
importBlendShapeDeformPercent: 1
|
||||
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -83211,14 +83211,14 @@ AnimationClip:
|
|||
m_HasGenericRootTransform: 0
|
||||
m_HasMotionFloatCurves: 0
|
||||
m_Events:
|
||||
- time: 0.53333336
|
||||
- time: 0.43333334
|
||||
functionName: OnAttackStart
|
||||
data:
|
||||
objectReferenceParameter: {fileID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 1.3
|
||||
- time: 0.7
|
||||
functionName: OnAttackEnd
|
||||
data:
|
||||
objectReferenceParameter: {fileID: 0}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,31 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1102 &-5884916198237161424
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Monster_Attack_1
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
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: 7400000, guid: eba67b40820a5461abe64d831925ba35, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &-1543731576706283773
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
@ -178,7 +204,7 @@ AnimatorStateMachine:
|
|||
m_State: {fileID: -1543731576706283773}
|
||||
m_Position: {x: 130, y: 210, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 6260182891193709862}
|
||||
m_State: {fileID: -5884916198237161424}
|
||||
m_Position: {x: 410, y: -190, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions: []
|
||||
|
|
@ -216,32 +242,6 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &6260182891193709862
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Monster_Attack_1
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
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: 7400000, guid: eba67b40820a5461abe64d831925ba35, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &6576084975643352587
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a3bf14fca134cc64eb64d2875f47c1c4
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
|
@ -0,0 +1,560 @@
|
|||
fileFormatVersion: 2
|
||||
guid: cc0cd4104413a0749b029fc8eeec3bd0
|
||||
ModelImporter:
|
||||
serializedVersion: 22200
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 0
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 0
|
||||
motionNodeName:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
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: HumanM@Attack1H01_L
|
||||
takeName: Untitled
|
||||
internalID: 3094330708855449807
|
||||
firstFrame: 0
|
||||
lastFrame: 33
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 1
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0.30108693
|
||||
functionName: OnAttackStart
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.6371376
|
||||
functionName: OnAttackEnd
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask:
|
||||
- path:
|
||||
weight: 1
|
||||
- path: HumanF_BodyMesh
|
||||
weight: 0
|
||||
- path: Rig
|
||||
weight: 1
|
||||
- path: Rig/B-root
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-neck
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-neck/B-head
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-neck/B-head/B-jaw
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-handProp.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-indexFinger01.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-indexFinger01.L/B-indexFinger02.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-indexFinger01.L/B-indexFinger02.L/B-indexFinger03.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-middleFinger01.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-middleFinger01.L/B-middleFinger02.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-middleFinger01.L/B-middleFinger02.L/B-middleFinger03.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-pinky01.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-pinky01.L/B-pinky02.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-pinky01.L/B-pinky02.L/B-pinky03.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-ringFinger01.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-ringFinger01.L/B-ringFinger02.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-ringFinger01.L/B-ringFinger02.L/B-ringFinger03.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-thumb01.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-thumb01.L/B-thumb02.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.L/B-upperArm.L/B-forearm.L/B-hand.L/B-thumb01.L/B-thumb02.L/B-thumb03.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-handProp.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-indexFinger01.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-indexFinger01.R/B-indexFinger02.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-indexFinger01.R/B-indexFinger02.R/B-indexFinger03.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-middleFinger01.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-middleFinger01.R/B-middleFinger02.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-middleFinger01.R/B-middleFinger02.R/B-middleFinger03.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-pinky01.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-pinky01.R/B-pinky02.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-pinky01.R/B-pinky02.R/B-pinky03.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-ringFinger01.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-ringFinger01.R/B-ringFinger02.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-ringFinger01.R/B-ringFinger02.R/B-ringFinger03.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-thumb01.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-thumb01.R/B-thumb02.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-spine/B-chest/B-shoulder.R/B-upperArm.R/B-forearm.R/B-hand.R/B-thumb01.R/B-thumb02.R/B-thumb03.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-thigh.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-thigh.L/B-shin.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-thigh.L/B-shin.L/B-foot.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-thigh.L/B-shin.L/B-foot.L/B-toe.L
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-thigh.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-thigh.R/B-shin.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-thigh.R/B-shin.R/B-foot.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-hips/B-thigh.R/B-shin.R/B-foot.R/B-toe.R
|
||||
weight: 1
|
||||
- path: Rig/B-root/B-spineProxy
|
||||
weight: 1
|
||||
maskType: 1
|
||||
maskSource: {fileID: 31900000, guid: 89527f5525238ee44b3182458d85143a, type: 2}
|
||||
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: 1
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human: []
|
||||
skeleton:
|
||||
- name: HumanM@Attack1H01_L(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: Rig
|
||||
parentName: HumanM@Attack1H01_L(Clone)
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: B-root
|
||||
parentName: Rig
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: B-hips
|
||||
parentName: B-root
|
||||
position: {x: -0.00083699997, y: 0.8965806, z: 0.023218}
|
||||
rotation: {x: -0.044953372, y: -0.02007761, z: -0.04432125, w: 0.99780345}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: B-spine
|
||||
parentName: B-hips
|
||||
position: {x: -0.00000038418608, y: 0.08378134, z: -0.0000001254813}
|
||||
rotation: {x: 0.07952783, y: -0.061675698, z: 0.0708069, w: 0.99240005}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: B-chest
|
||||
parentName: B-spine
|
||||
position: {x: 0.00000085362007, y: 0.2003291, z: -0.0000003672516}
|
||||
rotation: {x: 0.068947345, y: -0.003977178, z: -0.05095408, w: 0.9963103}
|
||||
scale: {x: 1, y: 0.9999997, z: 0.9999997}
|
||||
- name: B-shoulder.R
|
||||
parentName: B-chest
|
||||
position: {x: -0.00000010573589, y: 0.1911564, z: -0.005314272}
|
||||
rotation: {x: -0.5051556, y: -0.2426669, z: -0.5689022, w: 0.6018977}
|
||||
scale: {x: 1.0000002, y: 1, z: 1.0000002}
|
||||
- name: B-upperArm.R
|
||||
parentName: B-shoulder.R
|
||||
position: {x: 0.00000003577203, y: 0.2015759, z: -0.0000004680681}
|
||||
rotation: {x: 0.103834815, y: 0.53432846, z: 0.0193506, w: 0.8386519}
|
||||
scale: {x: 1.0000005, y: 0.9999997, z: 1}
|
||||
- name: B-forearm.R
|
||||
parentName: B-upperArm.R
|
||||
position: {x: 0.00000029779372, y: 0.2341377, z: -0.00000010364547}
|
||||
rotation: {x: 0.017562887, y: -0.007080703, z: 0.0138788875, w: 0.9997244}
|
||||
scale: {x: 0.9999992, y: 1.0000004, z: 0.9999994}
|
||||
- name: B-hand.R
|
||||
parentName: B-forearm.R
|
||||
position: {x: -0.00000026537117, y: 0.19596447, z: 0.0000000011376525}
|
||||
rotation: {x: -0.0015101233, y: 0.6089517, z: 0.01459254, w: 0.7930716}
|
||||
scale: {x: 1.0000001, y: 0.99999934, z: 1.0000007}
|
||||
- name: B-indexFinger01.R
|
||||
parentName: B-hand.R
|
||||
position: {x: -0.039847255, y: 0.14592145, z: -0.0024733872}
|
||||
rotation: {x: 0.021290986, y: -0.018421646, z: 0.03624673, w: 0.9989462}
|
||||
scale: {x: 1.0000004, y: 1, z: 0.9999994}
|
||||
- name: B-indexFinger02.R
|
||||
parentName: B-indexFinger01.R
|
||||
position: {x: -0.00000016483804, y: 0.051680062, z: -0.0000004189711}
|
||||
rotation: {x: 0.012073109, y: 0.027056692, z: -0.00039820472, w: 0.99956095}
|
||||
scale: {x: 1.0000001, y: 1.0000002, z: 1.0000002}
|
||||
- name: B-indexFinger03.R
|
||||
parentName: B-indexFinger02.R
|
||||
position: {x: -0.00000065176897, y: 0.038299132, z: 0.00000025667788}
|
||||
rotation: {x: 0.5395017, y: -0.0025743968, z: -0.011348144, w: 0.8419041}
|
||||
scale: {x: 0.99999994, y: 1.0000002, z: 0.99999994}
|
||||
- name: B-middleFinger01.R
|
||||
parentName: B-hand.R
|
||||
position: {x: -0.010262938, y: 0.14571612, z: -0.0098788645}
|
||||
rotation: {x: 0.023539834, y: -0.02626985, z: 0.03313153, w: 0.9988284}
|
||||
scale: {x: 1.0000007, y: 0.9999999, z: 1.0000002}
|
||||
- name: B-middleFinger02.R
|
||||
parentName: B-middleFinger01.R
|
||||
position: {x: -0.0000005974616, y: 0.05384352, z: -0.0000003771701}
|
||||
rotation: {x: 0.011056468, y: 0.053538248, z: -0.0003280394, w: 0.9985046}
|
||||
scale: {x: 0.99999964, y: 1.0000004, z: 1.0000001}
|
||||
- name: B-middleFinger03.R
|
||||
parentName: B-middleFinger02.R
|
||||
position: {x: -0.00000031228402, y: 0.03966582, z: 0.00000078060464}
|
||||
rotation: {x: 0.54409623, y: -0.021281641, z: 0.006141441, w: 0.8387304}
|
||||
scale: {x: 0.99999964, y: 1.0000004, z: 0.9999995}
|
||||
- name: B-ringFinger01.R
|
||||
parentName: B-hand.R
|
||||
position: {x: 0.017707428, y: 0.14186867, z: -0.0063086674}
|
||||
rotation: {x: 0.024646945, y: -0.04151547, z: 0.030203475, w: 0.9983771}
|
||||
scale: {x: 1.0000005, y: 1.0000002, z: 0.99999964}
|
||||
- name: B-ringFinger02.R
|
||||
parentName: B-ringFinger01.R
|
||||
position: {x: -0.000000542884, y: 0.04994895, z: 0.00000035361504}
|
||||
rotation: {x: 0.0107872905, y: 0.013776022, z: 0.00036796022, w: 0.9998469}
|
||||
scale: {x: 0.9999996, y: 1, z: 1.0000001}
|
||||
- name: B-ringFinger03.R
|
||||
parentName: B-ringFinger02.R
|
||||
position: {x: 0.00000043444734, y: 0.038347248, z: -0.000000056919788}
|
||||
rotation: {x: 0.570882, y: -0.04259287, z: 0.009378246, w: 0.8198729}
|
||||
scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002}
|
||||
- name: B-pinky01.R
|
||||
parentName: B-hand.R
|
||||
position: {x: 0.04595776, y: 0.13234657, z: -0.0026849052}
|
||||
rotation: {x: 0.026267217, y: -0.06912257, z: 0.030348647, w: 0.9968005}
|
||||
scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002}
|
||||
- name: B-pinky02.R
|
||||
parentName: B-pinky01.R
|
||||
position: {x: -0.000000007593004, y: 0.042360805, z: -0.00000061702394}
|
||||
rotation: {x: 0.011975261, y: 0.02256257, z: 0.00016762683, w: 0.99967366}
|
||||
scale: {x: 1.0000002, y: 0.99999964, z: 0.9999993}
|
||||
- name: B-pinky03.R
|
||||
parentName: B-pinky02.R
|
||||
position: {x: 0.000000490262, y: 0.03559031, z: 0.000000525607}
|
||||
rotation: {x: 0.5526941, y: -0.013525999, z: 0.01944641, w: 0.8330475}
|
||||
scale: {x: 0.9999995, y: 0.9999999, z: 0.99999976}
|
||||
- name: B-thumb01.R
|
||||
parentName: B-hand.R
|
||||
position: {x: -0.043999806, y: 0.05360066, z: 0.014425339}
|
||||
rotation: {x: -0.16974564, y: 0.5267521, z: 0.37323916, w: 0.744588}
|
||||
scale: {x: 0.9999995, y: 1.0000002, z: 1.0000005}
|
||||
- name: B-thumb02.R
|
||||
parentName: B-thumb01.R
|
||||
position: {x: -0.00000024829808, y: 0.052145515, z: 0.0000002662714}
|
||||
rotation: {x: 0.028767044, y: 0.011341477, z: -0.001111775, w: 0.9995212}
|
||||
scale: {x: 1.0000006, y: 0.99999946, z: 1.0000002}
|
||||
- name: B-thumb03.R
|
||||
parentName: B-thumb02.R
|
||||
position: {x: 0.00000023047775, y: 0.038913652, z: 0.00000013830525}
|
||||
rotation: {x: 0.19096673, y: 0.015796091, z: 0.0035950136, w: 0.98146284}
|
||||
scale: {x: 0.9999998, y: 1.0000007, z: 0.9999995}
|
||||
- name: B-handProp.R
|
||||
parentName: B-hand.R
|
||||
position: {x: 0.0036509219, y: 0.1164577, z: 0.02523654}
|
||||
rotation: {x: -0.0136685325, y: 0.012546305, z: 0.67608315, w: 0.73659176}
|
||||
scale: {x: 1.0000006, y: 1.0000005, z: 0.9999996}
|
||||
- name: B-neck
|
||||
parentName: B-chest
|
||||
position: {x: -0.0000002985938, y: 0.2707323, z: 0.0000005006723}
|
||||
rotation: {x: 0.093086205, y: -0.26514617, z: 0.1415606, w: 0.9492066}
|
||||
scale: {x: 1, y: 1.0000005, z: 1.0000005}
|
||||
- name: B-head
|
||||
parentName: B-neck
|
||||
position: {x: -0.0000005028943, y: 0.07409673, z: -0.00000002937186}
|
||||
rotation: {x: -0.23326245, y: 0.045576554, z: -0.00031345605, w: 0.9713451}
|
||||
scale: {x: 1, y: 0.99999976, z: 0.99999976}
|
||||
- name: B-jaw
|
||||
parentName: B-head
|
||||
position: {x: -0, y: 0, z: 0}
|
||||
rotation: {x: 0.7071114, y: 0.0000047574113, z: 0.0000052294236, w: 0.7071022}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: B-shoulder.L
|
||||
parentName: B-chest
|
||||
position: {x: -0.00000010573589, y: 0.1911564, z: -0.005314272}
|
||||
rotation: {x: -0.41339293, y: 0.43990132, z: 0.56977326, w: 0.55763036}
|
||||
scale: {x: 1.0000002, y: 1, z: 1.0000002}
|
||||
- name: B-upperArm.L
|
||||
parentName: B-shoulder.L
|
||||
position: {x: 0.000000097092986, y: 0.2015772, z: -0.0000010100549}
|
||||
rotation: {x: 0.019548057, y: -0.504983, z: 0.06607356, w: 0.86037457}
|
||||
scale: {x: 1.0000004, y: 0.9999997, z: 1}
|
||||
- name: B-forearm.L
|
||||
parentName: B-upperArm.L
|
||||
position: {x: -0.00000008594093, y: 0.2341381, z: -0.0000020371474}
|
||||
rotation: {x: 0.025677275, y: 0.0098736845, z: -0.022052899, w: 0.9993783}
|
||||
scale: {x: 0.9999994, y: 1.0000005, z: 0.9999996}
|
||||
- name: B-hand.L
|
||||
parentName: B-forearm.L
|
||||
position: {x: -0.00000014965507, y: 0.19596392, z: -0.000002056581}
|
||||
rotation: {x: 0.05398119, y: -0.5617904, z: 0.11390613, w: 0.8176204}
|
||||
scale: {x: 0.99999994, y: 1.0000002, z: 1.0000007}
|
||||
- name: B-indexFinger01.L
|
||||
parentName: B-hand.L
|
||||
position: {x: 0.039847255, y: 0.14592129, z: -0.0024733818}
|
||||
rotation: {x: 0.021290867, y: 0.018420178, z: -0.036246993, w: 0.9989462}
|
||||
scale: {x: 1.0000005, y: 0.9999999, z: 1.0000001}
|
||||
- name: B-indexFinger02.L
|
||||
parentName: B-indexFinger01.L
|
||||
position: {x: 0.000000121531, y: 0.05168002, z: -0.0000003132513}
|
||||
rotation: {x: 0.012072692, y: -0.027056938, z: 0.0003978261, w: 0.99956095}
|
||||
scale: {x: 1.0000001, y: 1.0000004, z: 0.9999996}
|
||||
- name: B-indexFinger03.L
|
||||
parentName: B-indexFinger02.L
|
||||
position: {x: 0.0000006657549, y: 0.038299095, z: 0.00000026302325}
|
||||
rotation: {x: 0.5395013, y: 0.0025739223, z: 0.011348291, w: 0.84190434}
|
||||
scale: {x: 0.99999994, y: 0.9999993, z: 1}
|
||||
- name: B-middleFinger01.L
|
||||
parentName: B-hand.L
|
||||
position: {x: 0.010262938, y: 0.14571597, z: -0.009878859}
|
||||
rotation: {x: 0.023541197, y: 0.026268616, z: -0.033131883, w: 0.99882835}
|
||||
scale: {x: 1.0000007, y: 0.9999998, z: 1.0000001}
|
||||
- name: B-middleFinger02.L
|
||||
parentName: B-middleFinger01.L
|
||||
position: {x: 0.00000059895365, y: 0.05384347, z: -0.00000026802326}
|
||||
rotation: {x: 0.011071659, y: -0.053537022, z: 0.00032983374, w: 0.9985045}
|
||||
scale: {x: 0.9999998, y: 0.9999999, z: 0.99999976}
|
||||
- name: B-middleFinger03.L
|
||||
parentName: B-middleFinger02.L
|
||||
position: {x: 0.00000024472794, y: 0.039665613, z: -0.00000007511139}
|
||||
rotation: {x: 0.544096, y: 0.021281306, z: -0.0061413436, w: 0.8387306}
|
||||
scale: {x: 0.9999996, y: 1.0000002, z: 1.0000002}
|
||||
- name: B-ringFinger01.L
|
||||
parentName: B-hand.L
|
||||
position: {x: -0.017707428, y: 0.14186852, z: -0.0063086627}
|
||||
rotation: {x: 0.024655104, y: 0.041513335, z: -0.030203747, w: 0.99837697}
|
||||
scale: {x: 1.0000005, y: 1.0000002, z: 0.9999996}
|
||||
- name: B-ringFinger02.L
|
||||
parentName: B-ringFinger01.L
|
||||
position: {x: 0.000000539424, y: 0.04994888, z: -0.00000054509644}
|
||||
rotation: {x: 0.010776004, y: -0.01377588, z: -0.00036849992, w: 0.999847}
|
||||
scale: {x: 0.9999995, y: 0.99999964, z: 1.0000007}
|
||||
- name: B-ringFinger03.L
|
||||
parentName: B-ringFinger02.L
|
||||
position: {x: -0.00000042212133, y: 0.038347226, z: 0.00000006269704}
|
||||
rotation: {x: 0.570882, y: 0.042593215, z: -0.009378437, w: 0.8198729}
|
||||
scale: {x: 1, y: 1, z: 1}
|
||||
- name: B-pinky01.L
|
||||
parentName: B-hand.L
|
||||
position: {x: -0.04595776, y: 0.1323464, z: -0.0026858994}
|
||||
rotation: {x: 0.02625449, y: 0.06912375, z: -0.030347873, w: 0.99680066}
|
||||
scale: {x: 1.0000001, y: 0.9999994, z: 1.0000001}
|
||||
- name: B-pinky02.L
|
||||
parentName: B-pinky01.L
|
||||
position: {x: -4.7400034e-10, y: 0.042361826, z: 0.00000049031206}
|
||||
rotation: {x: 0.012002333, y: -0.022562345, z: -0.00016665435, w: 0.9996734}
|
||||
scale: {x: 1.0000002, y: 1.0000007, z: 0.9999994}
|
||||
- name: B-pinky03.L
|
||||
parentName: B-pinky02.L
|
||||
position: {x: -0.000000503181, y: 0.03559012, z: -0.0000004567936}
|
||||
rotation: {x: 0.5526937, y: 0.013525954, z: -0.019446451, w: 0.83304775}
|
||||
scale: {x: 1.0000005, y: 0.9999999, z: 1.0000007}
|
||||
- name: B-thumb01.L
|
||||
parentName: B-hand.L
|
||||
position: {x: 0.043999806, y: 0.05360061, z: 0.014425342}
|
||||
rotation: {x: -0.057234317, y: -0.567982, z: -0.416403, w: 0.70762235}
|
||||
scale: {x: 1.0000002, y: 0.9999996, z: 1.0000001}
|
||||
- name: B-thumb02.L
|
||||
parentName: B-thumb01.L
|
||||
position: {x: 0.00000040659947, y: 0.052145515, z: 0.000000065670875}
|
||||
rotation: {x: 0.028755093, y: -0.011342698, z: 0.0011017129, w: 0.9995216}
|
||||
scale: {x: 0.9999997, y: 1.0000002, z: 1.0000004}
|
||||
- name: B-thumb03.L
|
||||
parentName: B-thumb02.L
|
||||
position: {x: -0.0000005391776, y: 0.038914427, z: 0.0000006627957}
|
||||
rotation: {x: 0.19096707, y: -0.01579638, z: -0.0035946076, w: 0.9814628}
|
||||
scale: {x: 0.9999997, y: 1.0000001, z: 0.99999946}
|
||||
- name: B-handProp.L
|
||||
parentName: B-hand.L
|
||||
position: {x: -0.0036504408, y: 0.11645629, z: 0.025236148}
|
||||
rotation: {x: -0.013668934, y: -0.012546174, z: -0.6760832, w: 0.7365917}
|
||||
scale: {x: 0.9999996, y: 1.0000005, z: 0.9999996}
|
||||
- name: B-thigh.L
|
||||
parentName: B-hips
|
||||
position: {x: -0.08695093, y: -0.05449924, z: 0.0009353434}
|
||||
rotation: {x: 0.9246362, y: -0.053312525, z: 0.37443578, w: 0.044760346}
|
||||
scale: {x: 1, y: 1, z: 1.0000015}
|
||||
- name: B-shin.L
|
||||
parentName: B-thigh.L
|
||||
position: {x: 0.000000291668, y: 0.41223192, z: -0.0000007366876}
|
||||
rotation: {x: 0.30847895, y: -0.029738309, z: -0.0029087812, w: 0.9507618}
|
||||
scale: {x: 1.0000008, y: 0.9999997, z: 0.9999997}
|
||||
- name: B-foot.L
|
||||
parentName: B-shin.L
|
||||
position: {x: 0.000000012107979, y: 0.38807765, z: 0.0000007308742}
|
||||
rotation: {x: -0.68078923, y: -0.13140081, z: -0.13417457, w: 0.7079951}
|
||||
scale: {x: 1.0000001, y: 1.0000004, z: 1.0000004}
|
||||
- name: B-toe.L
|
||||
parentName: B-foot.L
|
||||
position: {x: -0.0000002134788, y: 0.1774447, z: 0.00000081949463}
|
||||
rotation: {x: -0.00000012303444, y: 0.957763, z: -0.28755867, w: -0.0000004097871}
|
||||
scale: {x: 1, y: 0.99999994, z: 0.9999993}
|
||||
- name: B-thigh.R
|
||||
parentName: B-hips
|
||||
position: {x: 0.08695139, y: -0.05449913, z: 0.00093444344}
|
||||
rotation: {x: 0.9855103, y: 0.16888827, z: -0.009696808, w: 0.012338936}
|
||||
scale: {x: 0.9999942, y: 1.0000001, z: 0.99998736}
|
||||
- name: B-shin.R
|
||||
parentName: B-thigh.R
|
||||
position: {x: 0.0000012584915, y: 0.41223097, z: 0.0000012415915}
|
||||
rotation: {x: 0.28806838, y: 0.0076203495, z: 0.04920969, w: 0.9563143}
|
||||
scale: {x: 0.9999999, y: 1.0000007, z: 1}
|
||||
- name: B-foot.R
|
||||
parentName: B-shin.R
|
||||
position: {x: -0.00000058465486, y: 0.38807717, z: -0.0000006054801}
|
||||
rotation: {x: -0.7337884, y: 0.08217282, z: 0.098163, w: 0.6672079}
|
||||
scale: {x: 1.0000008, y: 0.9999992, z: 0.99999994}
|
||||
- name: B-toe.R
|
||||
parentName: B-foot.R
|
||||
position: {x: 0.00000028147048, y: 0.17744899, z: -0.0000000057287757}
|
||||
rotation: {x: 0.00000014886098, y: 0.9577633, z: -0.28755778, w: 0.0000004958085}
|
||||
scale: {x: 1, y: 0.9999949, z: 1.0000048}
|
||||
- name: B-spineProxy
|
||||
parentName: B-root
|
||||
position: {x: 0.009365, y: 0.90589994, z: 0.026651}
|
||||
rotation: {x: 0.13226873, y: 0.24121958, z: -0.011016067, w: 0.9613516}
|
||||
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: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 1
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
importBlendShapeDeformPercent: 1
|
||||
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -26,6 +26,32 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &-6007387887935768991
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ghoul_attack
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
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: 7400000, guid: ea2b7b1447852468d8fe575ce8eca7fd, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &-4942273955469260354
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
@ -52,32 +78,6 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &-2591084073835577238
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ghoul_attack
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
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: 7400000, guid: ea2b7b1447852468d8fe575ce8eca7fd, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1109 &-1841353923706876430
|
||||
AnimatorTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
|
|
@ -241,8 +241,8 @@ AnimatorStateMachine:
|
|||
m_State: {fileID: -4942273955469260354}
|
||||
m_Position: {x: 400, y: 460, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: -2591084073835577238}
|
||||
m_Position: {x: 480, y: 270, z: 0}
|
||||
m_State: {fileID: -6007387887935768991}
|
||||
m_Position: {x: 520, y: 290, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions: []
|
||||
m_EntryTransitions:
|
||||
|
|
|
|||
|
|
@ -104967,8 +104967,8 @@ AnimationClip:
|
|||
m_HasGenericRootTransform: 0
|
||||
m_HasMotionFloatCurves: 0
|
||||
m_Events:
|
||||
- time: 0.43333334
|
||||
functionName: OnAttackHit
|
||||
- time: 0.4
|
||||
functionName: OnAttackStart
|
||||
data: OnAttackHit
|
||||
objectReferenceParameter: {fileID: 11500000, guid: 8c775790f7852314c8d6527ffe977e03, type: 3}
|
||||
floatParameter: 0
|
||||
|
|
|
|||
|
|
@ -1,179 +1,521 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 3aac88110c0304ed78cea6d9d308117d
|
||||
ModelImporter:
|
||||
serializedVersion: 22
|
||||
fileIDToRecycleName:
|
||||
100000: back_cloth_1
|
||||
100002: back_cloth_2
|
||||
100004: back_cloth_left_1
|
||||
100006: back_cloth_left_2
|
||||
100008: back_cloth_right_1
|
||||
100010: back_cloth_right_2
|
||||
100012: ball_l
|
||||
100014: ball_r
|
||||
100016: beard_left_1
|
||||
100018: beard_left_2
|
||||
100020: beard_right_1
|
||||
100022: beard_right_2
|
||||
100024: calf_l
|
||||
100026: calf_r
|
||||
100028: chin
|
||||
100030: clavicle_l
|
||||
100032: clavicle_r
|
||||
100034: ear_left
|
||||
100036: ear_right
|
||||
100038: eyebrow_left
|
||||
100040: eyebrow_right
|
||||
100042: foot_l
|
||||
100044: foot_r
|
||||
100046: front_cloth_1
|
||||
100048: front_cloth_2
|
||||
100050: front_cloth_3
|
||||
100052: ghoul
|
||||
100054: //RootNode
|
||||
100056: ghoul_alpha
|
||||
100058: hair
|
||||
100060: hair_1
|
||||
100062: hand_l
|
||||
100064: hand_r
|
||||
100066: head
|
||||
100068: index_01_l
|
||||
100070: index_01_r
|
||||
100072: index_02_l
|
||||
100074: index_02_r
|
||||
100076: index_03_l
|
||||
100078: index_03_r
|
||||
100080: index_04_l
|
||||
100082: index_04_r
|
||||
100084: jaw
|
||||
100086: lip
|
||||
100088: lowerarm_l
|
||||
100090: lowerarm_r
|
||||
100092: middle_01_l
|
||||
100094: middle_01_r
|
||||
100096: middle_02_l
|
||||
100098: middle_02_r
|
||||
100100: middle_03_l
|
||||
100102: middle_03_r
|
||||
100104: middle_04_l
|
||||
100106: middle_04_r
|
||||
100108: neck_01
|
||||
100110: pelvis
|
||||
100112: ring_01_l
|
||||
100114: ring_01_r
|
||||
100116: ring_02_l
|
||||
100118: ring_02_r
|
||||
100120: ring_03_l
|
||||
100122: ring_03_r
|
||||
100124: ring_04_l
|
||||
100126: ring_04_r
|
||||
100128: root
|
||||
100130: spine_01
|
||||
100132: spine_02
|
||||
100134: spine_03
|
||||
100136: thigh_l
|
||||
100138: thigh_r
|
||||
100140: thumb_01_l
|
||||
100142: thumb_01_r
|
||||
100144: thumb_02_l
|
||||
100146: thumb_02_r
|
||||
100148: thumb_03_l
|
||||
100150: thumb_03_r
|
||||
100152: upperarm_l
|
||||
100154: upperarm_r
|
||||
400000: back_cloth_1
|
||||
400002: back_cloth_2
|
||||
400004: back_cloth_left_1
|
||||
400006: back_cloth_left_2
|
||||
400008: back_cloth_right_1
|
||||
400010: back_cloth_right_2
|
||||
400012: ball_l
|
||||
400014: ball_r
|
||||
400016: beard_left_1
|
||||
400018: beard_left_2
|
||||
400020: beard_right_1
|
||||
400022: beard_right_2
|
||||
400024: calf_l
|
||||
400026: calf_r
|
||||
400028: chin
|
||||
400030: clavicle_l
|
||||
400032: clavicle_r
|
||||
400034: ear_left
|
||||
400036: ear_right
|
||||
400038: eyebrow_left
|
||||
400040: eyebrow_right
|
||||
400042: foot_l
|
||||
400044: foot_r
|
||||
400046: front_cloth_1
|
||||
400048: front_cloth_2
|
||||
400050: front_cloth_3
|
||||
400052: ghoul
|
||||
400054: //RootNode
|
||||
400056: ghoul_alpha
|
||||
400058: hair
|
||||
400060: hair_1
|
||||
400062: hand_l
|
||||
400064: hand_r
|
||||
400066: head
|
||||
400068: index_01_l
|
||||
400070: index_01_r
|
||||
400072: index_02_l
|
||||
400074: index_02_r
|
||||
400076: index_03_l
|
||||
400078: index_03_r
|
||||
400080: index_04_l
|
||||
400082: index_04_r
|
||||
400084: jaw
|
||||
400086: lip
|
||||
400088: lowerarm_l
|
||||
400090: lowerarm_r
|
||||
400092: middle_01_l
|
||||
400094: middle_01_r
|
||||
400096: middle_02_l
|
||||
400098: middle_02_r
|
||||
400100: middle_03_l
|
||||
400102: middle_03_r
|
||||
400104: middle_04_l
|
||||
400106: middle_04_r
|
||||
400108: neck_01
|
||||
400110: pelvis
|
||||
400112: ring_01_l
|
||||
400114: ring_01_r
|
||||
400116: ring_02_l
|
||||
400118: ring_02_r
|
||||
400120: ring_03_l
|
||||
400122: ring_03_r
|
||||
400124: ring_04_l
|
||||
400126: ring_04_r
|
||||
400128: root
|
||||
400130: spine_01
|
||||
400132: spine_02
|
||||
400134: spine_03
|
||||
400136: thigh_l
|
||||
400138: thigh_r
|
||||
400140: thumb_01_l
|
||||
400142: thumb_01_r
|
||||
400144: thumb_02_l
|
||||
400146: thumb_02_r
|
||||
400148: thumb_03_l
|
||||
400150: thumb_03_r
|
||||
400152: upperarm_l
|
||||
400154: upperarm_r
|
||||
2100000: ghoul_col
|
||||
2100002: ghoul_transp
|
||||
4300000: ghoul
|
||||
4300002: ghoul_alpha
|
||||
7400000: idle
|
||||
7400002: block
|
||||
7400004: gethit
|
||||
7400006: die
|
||||
7400008: attack
|
||||
7400010: walk
|
||||
7400012: run
|
||||
7400014: spawn
|
||||
9500000: //RootNode
|
||||
13700000: ghoul
|
||||
13700002: ghoul_alpha
|
||||
serializedVersion: 22200
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
1: 100000
|
||||
second: back_cloth_1
|
||||
- first:
|
||||
1: 100002
|
||||
second: back_cloth_2
|
||||
- first:
|
||||
1: 100004
|
||||
second: back_cloth_left_1
|
||||
- first:
|
||||
1: 100006
|
||||
second: back_cloth_left_2
|
||||
- first:
|
||||
1: 100008
|
||||
second: back_cloth_right_1
|
||||
- first:
|
||||
1: 100010
|
||||
second: back_cloth_right_2
|
||||
- first:
|
||||
1: 100012
|
||||
second: ball_l
|
||||
- first:
|
||||
1: 100014
|
||||
second: ball_r
|
||||
- first:
|
||||
1: 100016
|
||||
second: beard_left_1
|
||||
- first:
|
||||
1: 100018
|
||||
second: beard_left_2
|
||||
- first:
|
||||
1: 100020
|
||||
second: beard_right_1
|
||||
- first:
|
||||
1: 100022
|
||||
second: beard_right_2
|
||||
- first:
|
||||
1: 100024
|
||||
second: calf_l
|
||||
- first:
|
||||
1: 100026
|
||||
second: calf_r
|
||||
- first:
|
||||
1: 100028
|
||||
second: chin
|
||||
- first:
|
||||
1: 100030
|
||||
second: clavicle_l
|
||||
- first:
|
||||
1: 100032
|
||||
second: clavicle_r
|
||||
- first:
|
||||
1: 100034
|
||||
second: ear_left
|
||||
- first:
|
||||
1: 100036
|
||||
second: ear_right
|
||||
- first:
|
||||
1: 100038
|
||||
second: eyebrow_left
|
||||
- first:
|
||||
1: 100040
|
||||
second: eyebrow_right
|
||||
- first:
|
||||
1: 100042
|
||||
second: foot_l
|
||||
- first:
|
||||
1: 100044
|
||||
second: foot_r
|
||||
- first:
|
||||
1: 100046
|
||||
second: front_cloth_1
|
||||
- first:
|
||||
1: 100048
|
||||
second: front_cloth_2
|
||||
- first:
|
||||
1: 100050
|
||||
second: front_cloth_3
|
||||
- first:
|
||||
1: 100052
|
||||
second: ghoul
|
||||
- first:
|
||||
1: 100054
|
||||
second: //RootNode
|
||||
- first:
|
||||
1: 100056
|
||||
second: ghoul_alpha
|
||||
- first:
|
||||
1: 100058
|
||||
second: hair
|
||||
- first:
|
||||
1: 100060
|
||||
second: hair_1
|
||||
- first:
|
||||
1: 100062
|
||||
second: hand_l
|
||||
- first:
|
||||
1: 100064
|
||||
second: hand_r
|
||||
- first:
|
||||
1: 100066
|
||||
second: head
|
||||
- first:
|
||||
1: 100068
|
||||
second: index_01_l
|
||||
- first:
|
||||
1: 100070
|
||||
second: index_01_r
|
||||
- first:
|
||||
1: 100072
|
||||
second: index_02_l
|
||||
- first:
|
||||
1: 100074
|
||||
second: index_02_r
|
||||
- first:
|
||||
1: 100076
|
||||
second: index_03_l
|
||||
- first:
|
||||
1: 100078
|
||||
second: index_03_r
|
||||
- first:
|
||||
1: 100080
|
||||
second: index_04_l
|
||||
- first:
|
||||
1: 100082
|
||||
second: index_04_r
|
||||
- first:
|
||||
1: 100084
|
||||
second: jaw
|
||||
- first:
|
||||
1: 100086
|
||||
second: lip
|
||||
- first:
|
||||
1: 100088
|
||||
second: lowerarm_l
|
||||
- first:
|
||||
1: 100090
|
||||
second: lowerarm_r
|
||||
- first:
|
||||
1: 100092
|
||||
second: middle_01_l
|
||||
- first:
|
||||
1: 100094
|
||||
second: middle_01_r
|
||||
- first:
|
||||
1: 100096
|
||||
second: middle_02_l
|
||||
- first:
|
||||
1: 100098
|
||||
second: middle_02_r
|
||||
- first:
|
||||
1: 100100
|
||||
second: middle_03_l
|
||||
- first:
|
||||
1: 100102
|
||||
second: middle_03_r
|
||||
- first:
|
||||
1: 100104
|
||||
second: middle_04_l
|
||||
- first:
|
||||
1: 100106
|
||||
second: middle_04_r
|
||||
- first:
|
||||
1: 100108
|
||||
second: neck_01
|
||||
- first:
|
||||
1: 100110
|
||||
second: pelvis
|
||||
- first:
|
||||
1: 100112
|
||||
second: ring_01_l
|
||||
- first:
|
||||
1: 100114
|
||||
second: ring_01_r
|
||||
- first:
|
||||
1: 100116
|
||||
second: ring_02_l
|
||||
- first:
|
||||
1: 100118
|
||||
second: ring_02_r
|
||||
- first:
|
||||
1: 100120
|
||||
second: ring_03_l
|
||||
- first:
|
||||
1: 100122
|
||||
second: ring_03_r
|
||||
- first:
|
||||
1: 100124
|
||||
second: ring_04_l
|
||||
- first:
|
||||
1: 100126
|
||||
second: ring_04_r
|
||||
- first:
|
||||
1: 100128
|
||||
second: root
|
||||
- first:
|
||||
1: 100130
|
||||
second: spine_01
|
||||
- first:
|
||||
1: 100132
|
||||
second: spine_02
|
||||
- first:
|
||||
1: 100134
|
||||
second: spine_03
|
||||
- first:
|
||||
1: 100136
|
||||
second: thigh_l
|
||||
- first:
|
||||
1: 100138
|
||||
second: thigh_r
|
||||
- first:
|
||||
1: 100140
|
||||
second: thumb_01_l
|
||||
- first:
|
||||
1: 100142
|
||||
second: thumb_01_r
|
||||
- first:
|
||||
1: 100144
|
||||
second: thumb_02_l
|
||||
- first:
|
||||
1: 100146
|
||||
second: thumb_02_r
|
||||
- first:
|
||||
1: 100148
|
||||
second: thumb_03_l
|
||||
- first:
|
||||
1: 100150
|
||||
second: thumb_03_r
|
||||
- first:
|
||||
1: 100152
|
||||
second: upperarm_l
|
||||
- first:
|
||||
1: 100154
|
||||
second: upperarm_r
|
||||
- first:
|
||||
4: 400000
|
||||
second: back_cloth_1
|
||||
- first:
|
||||
4: 400002
|
||||
second: back_cloth_2
|
||||
- first:
|
||||
4: 400004
|
||||
second: back_cloth_left_1
|
||||
- first:
|
||||
4: 400006
|
||||
second: back_cloth_left_2
|
||||
- first:
|
||||
4: 400008
|
||||
second: back_cloth_right_1
|
||||
- first:
|
||||
4: 400010
|
||||
second: back_cloth_right_2
|
||||
- first:
|
||||
4: 400012
|
||||
second: ball_l
|
||||
- first:
|
||||
4: 400014
|
||||
second: ball_r
|
||||
- first:
|
||||
4: 400016
|
||||
second: beard_left_1
|
||||
- first:
|
||||
4: 400018
|
||||
second: beard_left_2
|
||||
- first:
|
||||
4: 400020
|
||||
second: beard_right_1
|
||||
- first:
|
||||
4: 400022
|
||||
second: beard_right_2
|
||||
- first:
|
||||
4: 400024
|
||||
second: calf_l
|
||||
- first:
|
||||
4: 400026
|
||||
second: calf_r
|
||||
- first:
|
||||
4: 400028
|
||||
second: chin
|
||||
- first:
|
||||
4: 400030
|
||||
second: clavicle_l
|
||||
- first:
|
||||
4: 400032
|
||||
second: clavicle_r
|
||||
- first:
|
||||
4: 400034
|
||||
second: ear_left
|
||||
- first:
|
||||
4: 400036
|
||||
second: ear_right
|
||||
- first:
|
||||
4: 400038
|
||||
second: eyebrow_left
|
||||
- first:
|
||||
4: 400040
|
||||
second: eyebrow_right
|
||||
- first:
|
||||
4: 400042
|
||||
second: foot_l
|
||||
- first:
|
||||
4: 400044
|
||||
second: foot_r
|
||||
- first:
|
||||
4: 400046
|
||||
second: front_cloth_1
|
||||
- first:
|
||||
4: 400048
|
||||
second: front_cloth_2
|
||||
- first:
|
||||
4: 400050
|
||||
second: front_cloth_3
|
||||
- first:
|
||||
4: 400052
|
||||
second: ghoul
|
||||
- first:
|
||||
4: 400054
|
||||
second: //RootNode
|
||||
- first:
|
||||
4: 400056
|
||||
second: ghoul_alpha
|
||||
- first:
|
||||
4: 400058
|
||||
second: hair
|
||||
- first:
|
||||
4: 400060
|
||||
second: hair_1
|
||||
- first:
|
||||
4: 400062
|
||||
second: hand_l
|
||||
- first:
|
||||
4: 400064
|
||||
second: hand_r
|
||||
- first:
|
||||
4: 400066
|
||||
second: head
|
||||
- first:
|
||||
4: 400068
|
||||
second: index_01_l
|
||||
- first:
|
||||
4: 400070
|
||||
second: index_01_r
|
||||
- first:
|
||||
4: 400072
|
||||
second: index_02_l
|
||||
- first:
|
||||
4: 400074
|
||||
second: index_02_r
|
||||
- first:
|
||||
4: 400076
|
||||
second: index_03_l
|
||||
- first:
|
||||
4: 400078
|
||||
second: index_03_r
|
||||
- first:
|
||||
4: 400080
|
||||
second: index_04_l
|
||||
- first:
|
||||
4: 400082
|
||||
second: index_04_r
|
||||
- first:
|
||||
4: 400084
|
||||
second: jaw
|
||||
- first:
|
||||
4: 400086
|
||||
second: lip
|
||||
- first:
|
||||
4: 400088
|
||||
second: lowerarm_l
|
||||
- first:
|
||||
4: 400090
|
||||
second: lowerarm_r
|
||||
- first:
|
||||
4: 400092
|
||||
second: middle_01_l
|
||||
- first:
|
||||
4: 400094
|
||||
second: middle_01_r
|
||||
- first:
|
||||
4: 400096
|
||||
second: middle_02_l
|
||||
- first:
|
||||
4: 400098
|
||||
second: middle_02_r
|
||||
- first:
|
||||
4: 400100
|
||||
second: middle_03_l
|
||||
- first:
|
||||
4: 400102
|
||||
second: middle_03_r
|
||||
- first:
|
||||
4: 400104
|
||||
second: middle_04_l
|
||||
- first:
|
||||
4: 400106
|
||||
second: middle_04_r
|
||||
- first:
|
||||
4: 400108
|
||||
second: neck_01
|
||||
- first:
|
||||
4: 400110
|
||||
second: pelvis
|
||||
- first:
|
||||
4: 400112
|
||||
second: ring_01_l
|
||||
- first:
|
||||
4: 400114
|
||||
second: ring_01_r
|
||||
- first:
|
||||
4: 400116
|
||||
second: ring_02_l
|
||||
- first:
|
||||
4: 400118
|
||||
second: ring_02_r
|
||||
- first:
|
||||
4: 400120
|
||||
second: ring_03_l
|
||||
- first:
|
||||
4: 400122
|
||||
second: ring_03_r
|
||||
- first:
|
||||
4: 400124
|
||||
second: ring_04_l
|
||||
- first:
|
||||
4: 400126
|
||||
second: ring_04_r
|
||||
- first:
|
||||
4: 400128
|
||||
second: root
|
||||
- first:
|
||||
4: 400130
|
||||
second: spine_01
|
||||
- first:
|
||||
4: 400132
|
||||
second: spine_02
|
||||
- first:
|
||||
4: 400134
|
||||
second: spine_03
|
||||
- first:
|
||||
4: 400136
|
||||
second: thigh_l
|
||||
- first:
|
||||
4: 400138
|
||||
second: thigh_r
|
||||
- first:
|
||||
4: 400140
|
||||
second: thumb_01_l
|
||||
- first:
|
||||
4: 400142
|
||||
second: thumb_01_r
|
||||
- first:
|
||||
4: 400144
|
||||
second: thumb_02_l
|
||||
- first:
|
||||
4: 400146
|
||||
second: thumb_02_r
|
||||
- first:
|
||||
4: 400148
|
||||
second: thumb_03_l
|
||||
- first:
|
||||
4: 400150
|
||||
second: thumb_03_r
|
||||
- first:
|
||||
4: 400152
|
||||
second: upperarm_l
|
||||
- first:
|
||||
4: 400154
|
||||
second: upperarm_r
|
||||
- first:
|
||||
21: 2100000
|
||||
second: ghoul_col
|
||||
- first:
|
||||
21: 2100002
|
||||
second: ghoul_transp
|
||||
- first:
|
||||
43: 4300000
|
||||
second: ghoul
|
||||
- first:
|
||||
43: 4300002
|
||||
second: ghoul_alpha
|
||||
- first:
|
||||
74: 7400000
|
||||
second: idle
|
||||
- first:
|
||||
74: 7400002
|
||||
second: block
|
||||
- first:
|
||||
74: 7400004
|
||||
second: gethit
|
||||
- first:
|
||||
74: 7400006
|
||||
second: die
|
||||
- first:
|
||||
74: 7400008
|
||||
second: attack
|
||||
- first:
|
||||
74: 7400010
|
||||
second: walk
|
||||
- first:
|
||||
74: 7400012
|
||||
second: run
|
||||
- first:
|
||||
74: 7400014
|
||||
second: spawn
|
||||
- first:
|
||||
95: 9500000
|
||||
second: //RootNode
|
||||
- first:
|
||||
137: 13700000
|
||||
second: ghoul
|
||||
- first:
|
||||
137: 13700002
|
||||
second: ghoul_alpha
|
||||
externalObjects:
|
||||
- first:
|
||||
type: UnityEngine:Material
|
||||
|
|
@ -186,7 +528,7 @@ ModelImporter:
|
|||
name: ghoul_transp
|
||||
second: {fileID: 2100000, guid: e02eb956af4e548d8a272b11a85391a4, type: 2}
|
||||
materials:
|
||||
importMaterials: 1
|
||||
materialImportMode: 1
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
|
|
@ -195,6 +537,7 @@ ModelImporter:
|
|||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 0
|
||||
motionNodeName:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
|
|
@ -203,6 +546,7 @@ ModelImporter:
|
|||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 1
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
|
|
@ -214,6 +558,7 @@ ModelImporter:
|
|||
- serializedVersion: 16
|
||||
name: idle
|
||||
takeName: Take 001
|
||||
internalID: 0
|
||||
firstFrame: 81
|
||||
lastFrame: 161
|
||||
wrapMode: 0
|
||||
|
|
@ -242,6 +587,7 @@ ModelImporter:
|
|||
- serializedVersion: 16
|
||||
name: block
|
||||
takeName: Take 001
|
||||
internalID: 0
|
||||
firstFrame: 260
|
||||
lastFrame: 290
|
||||
wrapMode: 0
|
||||
|
|
@ -270,6 +616,7 @@ ModelImporter:
|
|||
- serializedVersion: 16
|
||||
name: gethit
|
||||
takeName: Take 001
|
||||
internalID: 0
|
||||
firstFrame: 300
|
||||
lastFrame: 320
|
||||
wrapMode: 0
|
||||
|
|
@ -298,6 +645,7 @@ ModelImporter:
|
|||
- serializedVersion: 16
|
||||
name: die
|
||||
takeName: Take 001
|
||||
internalID: 0
|
||||
firstFrame: 340
|
||||
lastFrame: 375
|
||||
wrapMode: 0
|
||||
|
|
@ -326,6 +674,7 @@ ModelImporter:
|
|||
- serializedVersion: 16
|
||||
name: attack
|
||||
takeName: Take 001
|
||||
internalID: 0
|
||||
firstFrame: 380
|
||||
lastFrame: 430
|
||||
wrapMode: 0
|
||||
|
|
@ -354,6 +703,7 @@ ModelImporter:
|
|||
- serializedVersion: 16
|
||||
name: walk
|
||||
takeName: Take 001
|
||||
internalID: 0
|
||||
firstFrame: 470
|
||||
lastFrame: 500
|
||||
wrapMode: 0
|
||||
|
|
@ -382,6 +732,7 @@ ModelImporter:
|
|||
- serializedVersion: 16
|
||||
name: run
|
||||
takeName: Take 001
|
||||
internalID: 0
|
||||
firstFrame: 540
|
||||
lastFrame: 560
|
||||
wrapMode: 0
|
||||
|
|
@ -410,6 +761,7 @@ ModelImporter:
|
|||
- serializedVersion: 16
|
||||
name: spawn
|
||||
takeName: Take 001
|
||||
internalID: 0
|
||||
firstFrame: 600
|
||||
lastFrame: 644
|
||||
wrapMode: 0
|
||||
|
|
@ -441,32 +793,49 @@ ModelImporter:
|
|||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importPhysicalCameras: 0
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
nodeNameCollisionStrategy: 0
|
||||
fileIdsGeneration: 1
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
optimizeMeshForGPU: 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: 0
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
copyAvatar: 0
|
||||
humanDescription:
|
||||
serializedVersion: 2
|
||||
serializedVersion: 3
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: 0.5
|
||||
|
|
@ -476,14 +845,19 @@ ModelImporter:
|
|||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 1
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
|
||||
importBlendShapeDeformPercent: 0
|
||||
remapMaterialsIfMaterialImportModeIsNone: 1
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
|
|
|
|||
239
Assets/Scripts/Enemy/AI/ChargeMonster.cs
Normal file
239
Assets/Scripts/Enemy/AI/ChargeMonster.cs
Normal file
|
|
@ -0,0 +1,239 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
using System.Collections;
|
||||
|
||||
/// <summary>
|
||||
/// 돌진 공격 몬스터
|
||||
/// - 플레이어를 향해 빠르게 돌진
|
||||
/// - 부딪히면 데미지
|
||||
/// </summary>
|
||||
public class ChargeMonster : MonsterClass
|
||||
{
|
||||
[Header("=== 돌진 공격 설정 ===")]
|
||||
[SerializeField] private float chargeSpeed = 15f; // 돌진 속도
|
||||
[SerializeField] private float chargeRange = 10f; // 돌진 시작 거리
|
||||
[SerializeField] private float chargeDuration = 2f; // 돌진 지속 시간
|
||||
[SerializeField] private float chargeDelay = 3f; // 돌진 쿨타임
|
||||
[SerializeField] private float prepareTime = 0.5f; // 돌진 준비 시간
|
||||
|
||||
private float lastChargeTime;
|
||||
private bool isCharging = false;
|
||||
private bool isPreparing = false;
|
||||
private Vector3 chargeDirection;
|
||||
|
||||
[Header("공격 / 이동 애니메이션")]
|
||||
[SerializeField] private string chargeAnimation = "Monster_Charge";
|
||||
[SerializeField] private string prepareAnimation = "Monster_ChargePrepare";
|
||||
[SerializeField] private string Monster_Walk = "Monster_Walk";
|
||||
|
||||
[Header("AI 상세 설정")]
|
||||
[SerializeField] private float patrolRadius = 5f;
|
||||
[SerializeField] private float patrolInterval = 2f;
|
||||
|
||||
private float nextPatrolTime;
|
||||
private bool isPlayerInZone;
|
||||
private Rigidbody _rigidbody;
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// 초기화
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
_rigidbody = GetComponent<Rigidbody>();
|
||||
|
||||
if (_rigidbody == null)
|
||||
{
|
||||
_rigidbody = gameObject.AddComponent<Rigidbody>();
|
||||
}
|
||||
|
||||
_rigidbody.isKinematic = true; // NavMeshAgent 사용 시 Kinematic
|
||||
}
|
||||
|
||||
protected override void Init()
|
||||
{
|
||||
if (agent != null)
|
||||
{
|
||||
agent.stoppingDistance = 1f;
|
||||
}
|
||||
if (animator != null) animator.applyRootMotion = false;
|
||||
}
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// AI 로직
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
protected override void ExecuteAILogic()
|
||||
{
|
||||
if (isHit || isCharging || isPreparing) return;
|
||||
|
||||
float distance = Vector3.Distance(transform.position, playerTransform.position);
|
||||
|
||||
if (isPlayerInZone || distance <= chargeRange * 1.5f)
|
||||
{
|
||||
HandleChargeCombat(distance);
|
||||
}
|
||||
else
|
||||
{
|
||||
Patrol();
|
||||
}
|
||||
|
||||
UpdateMovementAnimation();
|
||||
}
|
||||
|
||||
void HandleChargeCombat(float distance)
|
||||
{
|
||||
// 돌진 범위 안이면 돌진 준비
|
||||
if (distance <= chargeRange && Time.time >= lastChargeTime + chargeDelay)
|
||||
{
|
||||
StartCoroutine(PrepareCharge());
|
||||
}
|
||||
// 아니면 추적
|
||||
else if (!isCharging)
|
||||
{
|
||||
if (agent.isOnNavMesh)
|
||||
agent.SetDestination(playerTransform.position);
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator PrepareCharge()
|
||||
{
|
||||
isPreparing = true;
|
||||
|
||||
// 이동 멈춤
|
||||
if (agent.isOnNavMesh)
|
||||
{
|
||||
agent.isStopped = true;
|
||||
agent.velocity = Vector3.zero;
|
||||
}
|
||||
|
||||
// 플레이어 방향 저장
|
||||
chargeDirection = (playerTransform.position - transform.position).normalized;
|
||||
chargeDirection.y = 0;
|
||||
|
||||
// 플레이어 바라보기
|
||||
transform.rotation = Quaternion.LookRotation(chargeDirection);
|
||||
|
||||
// 준비 애니메이션
|
||||
if (!string.IsNullOrEmpty(prepareAnimation))
|
||||
{
|
||||
animator.Play(prepareAnimation, 0, 0f);
|
||||
}
|
||||
|
||||
Debug.Log("[ChargeMonster] 돌진 준비 중...");
|
||||
yield return new WaitForSeconds(prepareTime);
|
||||
|
||||
// 돌진 시작!
|
||||
StartCoroutine(Charge());
|
||||
}
|
||||
|
||||
IEnumerator Charge()
|
||||
{
|
||||
isPreparing = false;
|
||||
isCharging = true;
|
||||
lastChargeTime = Time.time;
|
||||
|
||||
// NavMeshAgent 끄기
|
||||
if (agent.isOnNavMesh) agent.enabled = false;
|
||||
|
||||
// Rigidbody Kinematic 끄기
|
||||
if (_rigidbody != null) _rigidbody.isKinematic = false;
|
||||
|
||||
// 돌진 애니메이션
|
||||
animator.Play(chargeAnimation, 0, 0f);
|
||||
|
||||
Debug.Log("[ChargeMonster] 돌진 시작!");
|
||||
|
||||
float chargeStartTime = Time.time;
|
||||
|
||||
while (Time.time < chargeStartTime + chargeDuration)
|
||||
{
|
||||
// 빠르게 앞으로 이동
|
||||
if (_rigidbody != null)
|
||||
{
|
||||
_rigidbody.velocity = chargeDirection * chargeSpeed;
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.position += chargeDirection * chargeSpeed * Time.deltaTime;
|
||||
}
|
||||
|
||||
yield return null;
|
||||
}
|
||||
|
||||
// 돌진 종료
|
||||
if (_rigidbody != null)
|
||||
{
|
||||
_rigidbody.velocity = Vector3.zero;
|
||||
_rigidbody.isKinematic = true;
|
||||
}
|
||||
|
||||
// NavMeshAgent 다시 켜기
|
||||
if (agent != null) agent.enabled = true;
|
||||
|
||||
isCharging = false;
|
||||
Debug.Log("[ChargeMonster] 돌진 종료!");
|
||||
}
|
||||
|
||||
void UpdateMovementAnimation()
|
||||
{
|
||||
if (isCharging || isPreparing || isHit || isResting) return;
|
||||
|
||||
if (agent.velocity.magnitude < 0.1f)
|
||||
animator.Play(Monster_Idle);
|
||||
else
|
||||
animator.Play(Monster_Walk);
|
||||
}
|
||||
|
||||
void Patrol()
|
||||
{
|
||||
if (Time.time < nextPatrolTime) return;
|
||||
|
||||
Vector3 randomPoint = transform.position + new Vector3(
|
||||
Random.Range(-patrolRadius, patrolRadius),
|
||||
0,
|
||||
Random.Range(-patrolRadius, patrolRadius)
|
||||
);
|
||||
|
||||
if (NavMesh.SamplePosition(randomPoint, out NavMeshHit hit, 3f, NavMesh.AllAreas))
|
||||
if (agent.isOnNavMesh) agent.SetDestination(hit.position);
|
||||
|
||||
nextPatrolTime = Time.time + patrolInterval;
|
||||
}
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// 충돌 감지 (돌진 중 플레이어와 충돌)
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
private void OnCollisionEnter(Collision collision)
|
||||
{
|
||||
if (!isCharging) return;
|
||||
|
||||
if (collision.gameObject.CompareTag("Player"))
|
||||
{
|
||||
if (collision.gameObject.TryGetComponent<PlayerHealth>(out var playerHealth))
|
||||
{
|
||||
if (!playerHealth.isInvincible)
|
||||
{
|
||||
playerHealth.TakeDamage(attackDamage);
|
||||
Debug.Log($"[ChargeMonster] 돌진 적중! 데미지: {attackDamage}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// Trigger 감지
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Player")) isPlayerInZone = true;
|
||||
}
|
||||
|
||||
private void OnTriggerExit(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Player")) isPlayerInZone = false;
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Enemy/AI/ChargeMonster.cs.meta
Normal file
11
Assets/Scripts/Enemy/AI/ChargeMonster.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 96bb72d8a631bfd43a4cc61ab770a9ee
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
309
Assets/Scripts/Enemy/AI/ExplodeMonster.cs
Normal file
309
Assets/Scripts/Enemy/AI/ExplodeMonster.cs
Normal file
|
|
@ -0,0 +1,309 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
using System.Collections;
|
||||
|
||||
/// <summary>
|
||||
/// 자폭 몬스터
|
||||
/// - 플레이어에게 빠르게 접근
|
||||
/// - 일정 거리 내에 들어오면 폭발
|
||||
/// - 범위 내 모든 대상에게 데미지
|
||||
/// - 자신도 사망
|
||||
/// </summary>
|
||||
public class ExplodeMonster : MonsterClass
|
||||
{
|
||||
[Header("=== 자폭 설정 ===")]
|
||||
[SerializeField] private float explodeRange = 3f; // 폭발 범위
|
||||
[SerializeField] private float triggerRange = 2f; // 폭발 시작 거리
|
||||
[SerializeField] private float fuseTime = 1.5f; // 폭발까지 지연 시간
|
||||
[SerializeField] private float explosionDamage = 50f; // 폭발 데미지 (기본 공격력 무시)
|
||||
[SerializeField] private bool damagesSelf = true; // 자신도 죽는가?
|
||||
|
||||
[Header("폭발 효과")]
|
||||
[SerializeField] private GameObject explosionEffectPrefab; // 폭발 이펙트
|
||||
[SerializeField] private ParticleSystem fuseEffect; // 퓨즈 불꽃 효과
|
||||
[SerializeField] private AudioClip fuseSound; // 치익~ 소리
|
||||
[SerializeField] private AudioClip explosionSound; // 폭발음
|
||||
[SerializeField] private float cameraShakeIntensity = 0.5f; // 화면 흔들림
|
||||
|
||||
[Header("애니메이션")]
|
||||
[SerializeField] private string runAnimation = "Monster_Run"; // 달리기
|
||||
[SerializeField] private string fuseAnimation = "Monster_Fuse"; // 폭발 준비
|
||||
[SerializeField] private string explodeAnimation = "Monster_Explode"; // 폭발
|
||||
|
||||
[Header("AI 설정")]
|
||||
[SerializeField] private float chaseSpeed = 5f; // 추격 속도 (빠르게!)
|
||||
[SerializeField] private float patrolRadius = 5f;
|
||||
[SerializeField] private float patrolInterval = 2f;
|
||||
|
||||
private bool isExploding = false; // 폭발 준비 중
|
||||
private bool hasExploded = false; // 이미 폭발했는가?
|
||||
private float nextPatrolTime;
|
||||
private bool isPlayerInZone;
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// 초기화
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
protected override void Init()
|
||||
{
|
||||
if (agent != null)
|
||||
{
|
||||
agent.speed = chaseSpeed; // 빠르게!
|
||||
agent.stoppingDistance = 0.5f; // 최대한 가까이
|
||||
}
|
||||
if (animator != null) animator.applyRootMotion = false;
|
||||
|
||||
// 퓨즈 이펙트 끄기
|
||||
if (fuseEffect != null) fuseEffect.Stop();
|
||||
}
|
||||
|
||||
protected override void OnResetStats()
|
||||
{
|
||||
isExploding = false;
|
||||
hasExploded = false;
|
||||
if (fuseEffect != null) fuseEffect.Stop();
|
||||
}
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// AI 로직
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
protected override void ExecuteAILogic()
|
||||
{
|
||||
if (isHit || isExploding || hasExploded) return;
|
||||
|
||||
float distance = Vector3.Distance(transform.position, playerTransform.position);
|
||||
|
||||
// 플레이어 발견하면 무조건 돌진!
|
||||
if (isPlayerInZone || distance <= 15f)
|
||||
{
|
||||
ChasePlayer(distance);
|
||||
}
|
||||
else
|
||||
{
|
||||
Patrol();
|
||||
}
|
||||
|
||||
UpdateMovementAnimation();
|
||||
}
|
||||
|
||||
void ChasePlayer(float distance)
|
||||
{
|
||||
// 폭발 범위 안에 들어오면 폭발!
|
||||
if (distance <= triggerRange)
|
||||
{
|
||||
StartCoroutine(Explode());
|
||||
return;
|
||||
}
|
||||
|
||||
// 플레이어에게 전력 질주!
|
||||
if (agent.isOnNavMesh)
|
||||
{
|
||||
agent.SetDestination(playerTransform.position);
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateMovementAnimation()
|
||||
{
|
||||
if (isExploding || isHit) return;
|
||||
|
||||
// 빠르게 달리는 애니메이션
|
||||
if (agent.velocity.magnitude > 0.1f)
|
||||
{
|
||||
animator.Play(runAnimation);
|
||||
}
|
||||
else
|
||||
{
|
||||
animator.Play(Monster_Idle);
|
||||
}
|
||||
}
|
||||
|
||||
void Patrol()
|
||||
{
|
||||
if (Time.time < nextPatrolTime) return;
|
||||
|
||||
Vector3 randomPoint = transform.position + new Vector3(
|
||||
Random.Range(-patrolRadius, patrolRadius),
|
||||
0,
|
||||
Random.Range(-patrolRadius, patrolRadius)
|
||||
);
|
||||
|
||||
if (NavMesh.SamplePosition(randomPoint, out NavMeshHit hit, 3f, NavMesh.AllAreas))
|
||||
if (agent.isOnNavMesh) agent.SetDestination(hit.position);
|
||||
|
||||
nextPatrolTime = Time.time + patrolInterval;
|
||||
}
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// 💣 폭발 코루틴
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
IEnumerator Explode()
|
||||
{
|
||||
if (hasExploded) yield break;
|
||||
|
||||
isExploding = true;
|
||||
hasExploded = true;
|
||||
|
||||
// 이동 멈춤
|
||||
if (agent.isOnNavMesh)
|
||||
{
|
||||
agent.isStopped = true;
|
||||
agent.velocity = Vector3.zero;
|
||||
}
|
||||
|
||||
Debug.Log($"[ExplodeMonster] 💣 폭발 카운트다운 시작! ({fuseTime}초)");
|
||||
|
||||
// 폭발 준비 애니메이션
|
||||
if (!string.IsNullOrEmpty(fuseAnimation))
|
||||
{
|
||||
animator.Play(fuseAnimation, 0, 0f);
|
||||
}
|
||||
|
||||
// 퓨즈 이펙트 시작
|
||||
if (fuseEffect != null)
|
||||
{
|
||||
fuseEffect.Play();
|
||||
}
|
||||
|
||||
// 치익~ 소리
|
||||
if (fuseSound != null && audioSource != null)
|
||||
{
|
||||
audioSource.PlayOneShot(fuseSound);
|
||||
}
|
||||
|
||||
// 대기 (퓨즈 타는 시간)
|
||||
yield return new WaitForSeconds(fuseTime);
|
||||
|
||||
// 💥 폭발!
|
||||
PerformExplosion();
|
||||
}
|
||||
|
||||
void PerformExplosion()
|
||||
{
|
||||
Debug.Log("[ExplodeMonster] 💥💥💥 폭발!!!");
|
||||
|
||||
// 폭발 애니메이션
|
||||
if (!string.IsNullOrEmpty(explodeAnimation))
|
||||
{
|
||||
animator.Play(explodeAnimation, 0, 0f);
|
||||
}
|
||||
|
||||
// 폭발 이펙트 생성
|
||||
if (explosionEffectPrefab != null)
|
||||
{
|
||||
Instantiate(explosionEffectPrefab, transform.position, Quaternion.identity);
|
||||
}
|
||||
|
||||
// 폭발음
|
||||
if (explosionSound != null)
|
||||
{
|
||||
AudioSource.PlayClipAtPoint(explosionSound, transform.position, 1f);
|
||||
}
|
||||
|
||||
//// 화면 흔들림 (CameraShake가 있다면)
|
||||
//CameraShake cameraShake = Camera.main?.GetComponent<CameraShake>();
|
||||
//if (cameraShake != null)
|
||||
//{
|
||||
// cameraShake.Shake(cameraShakeIntensity, 0.5f);
|
||||
//}
|
||||
|
||||
// 범위 내 모든 대상에게 데미지
|
||||
DamageNearbyTargets();
|
||||
|
||||
// 자신도 사망
|
||||
if (damagesSelf)
|
||||
{
|
||||
Die();
|
||||
}
|
||||
}
|
||||
|
||||
void DamageNearbyTargets()
|
||||
{
|
||||
// 폭발 범위 내 모든 Collider 찾기
|
||||
Collider[] hitColliders = Physics.OverlapSphere(transform.position, explodeRange);
|
||||
|
||||
foreach (Collider hit in hitColliders)
|
||||
{
|
||||
// 플레이어인가?
|
||||
if (hit.CompareTag("Player"))
|
||||
{
|
||||
if (hit.TryGetComponent<PlayerHealth>(out var playerHealth))
|
||||
{
|
||||
if (!playerHealth.isInvincible)
|
||||
{
|
||||
playerHealth.TakeDamage(explosionDamage);
|
||||
Debug.Log($"[ExplodeMonster] 💥 플레이어 적중! 데미지: {explosionDamage}");
|
||||
}
|
||||
}
|
||||
}
|
||||
// 다른 몬스터도 데미지 받게 하려면 (선택사항)
|
||||
else if (hit.CompareTag("Enemy") && hit.gameObject != gameObject)
|
||||
{
|
||||
if (hit.TryGetComponent<IDamageable>(out var damageable))
|
||||
{
|
||||
damageable.TakeDamage(explosionDamage * 0.5f); // 절반 데미지
|
||||
Debug.Log($"[ExplodeMonster] 💥 다른 몬스터도 피해! {hit.name}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// 피격 시: 즉시 폭발! (선택사항)
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
protected override void OnStartHit()
|
||||
{
|
||||
// 선택사항: 맞으면 바로 폭발하게 하려면 주석 해제
|
||||
// if (!hasExploded && !isExploding)
|
||||
// {
|
||||
// StartCoroutine(Explode());
|
||||
// }
|
||||
}
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// 사망 시: 폭발 효과 정리
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
protected override void OnDie()
|
||||
{
|
||||
if (fuseEffect != null && fuseEffect.isPlaying)
|
||||
{
|
||||
fuseEffect.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// Trigger 감지
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Player")) isPlayerInZone = true;
|
||||
}
|
||||
|
||||
private void OnTriggerExit(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Player")) isPlayerInZone = false;
|
||||
}
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// Gizmos (폭발 범위 시각화)
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
// 폭발 시작 범위 (빨강)
|
||||
Gizmos.color = Color.red;
|
||||
Gizmos.DrawWireSphere(transform.position, triggerRange);
|
||||
|
||||
// 폭발 데미지 범위 (주황)
|
||||
Gizmos.color = new Color(1f, 0.5f, 0f, 0.3f);
|
||||
Gizmos.DrawSphere(transform.position, explodeRange);
|
||||
|
||||
// 외곽선
|
||||
Gizmos.color = Color.yellow;
|
||||
Gizmos.DrawWireSphere(transform.position, explodeRange);
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Enemy/AI/ExplodeMonster.cs.meta
Normal file
11
Assets/Scripts/Enemy/AI/ExplodeMonster.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5e12969016fd3304e8824d5244651515
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using UnityEngine;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class MonsterWeapon : MonoBehaviour
|
||||
{
|
||||
|
|
@ -7,13 +8,14 @@ public class MonsterWeapon : MonoBehaviour
|
|||
[SerializeField] private float weaponBaseDamage = 10f;
|
||||
|
||||
private float _finalDamage;
|
||||
private BoxCollider _weaponCollider;
|
||||
[SerializeField] private BoxCollider _weaponCollider;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_weaponCollider = GetComponent<BoxCollider>();
|
||||
_finalDamage = weaponBaseDamage;
|
||||
DisableHitBox();
|
||||
//DisableHitBox();
|
||||
EnableHitBox();
|
||||
}
|
||||
|
||||
public void SetDamage(float monsterStrength)
|
||||
|
|
@ -24,8 +26,11 @@ public class MonsterWeapon : MonoBehaviour
|
|||
|
||||
public void EnableHitBox()
|
||||
{
|
||||
Debug.Log("enabletest");
|
||||
|
||||
if (_weaponCollider != null)
|
||||
{
|
||||
Debug.Log("setcollider");
|
||||
_weaponCollider.enabled = true;
|
||||
Debug.Log("🔴 [무기] 공격 판정 ON! (휘두르기 시작)"); // 로그 추가
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,10 @@ using UnityEngine.AI;
|
|||
using System.Collections;
|
||||
using System;
|
||||
|
||||
/// <summary>
|
||||
/// 몬스터 기본 클래스 (공통 기능만)
|
||||
/// - 공격 방식은 자식 클래스에서 구현
|
||||
/// </summary>
|
||||
public abstract class MonsterClass : MonoBehaviour, IDamageable
|
||||
{
|
||||
[Header("--- 최적화 설정 ---")]
|
||||
|
|
@ -12,13 +16,17 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
|
|||
|
||||
[Header("몬스터 기본 스탯")]
|
||||
[SerializeField] protected float maxHP = 100f;
|
||||
[SerializeField] protected float attackDamage = 10f; // 몬스터의 힘 (예: 10)
|
||||
[SerializeField] protected float attackDamage = 10f;
|
||||
[SerializeField] protected int expReward = 10;
|
||||
[SerializeField] protected float moveSpeed = 3.5f;
|
||||
|
||||
protected float currentHP;
|
||||
public event Action<float, float> OnHealthChanged;
|
||||
|
||||
[Header("전투 / 무기 (선택사항)")]
|
||||
// ⭐ 근접 몬스터가 사용할 무기 (원거리 몬스터는 비워둬도 됨)
|
||||
[SerializeField] protected MonsterWeapon myWeapon;
|
||||
|
||||
[Header("피격 / 사망 / 대기 애니메이션")]
|
||||
[SerializeField] protected string Monster_Idle = "Monster_Idle";
|
||||
[SerializeField] protected string Monster_GetDamage = "Monster_GetDamage";
|
||||
|
|
@ -31,7 +39,7 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
|
|||
|
||||
public bool IsAggroed { get; protected set; }
|
||||
|
||||
[Header("AI 설정 (공격 후 휴식)")]
|
||||
[Header("AI 설정")]
|
||||
[SerializeField] protected float attackRestDuration = 1.5f;
|
||||
protected bool isResting;
|
||||
|
||||
|
|
@ -43,8 +51,9 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
|
|||
[SerializeField] protected ParticleSystem hitEffect;
|
||||
[SerializeField] protected Transform impactSpawnPoint;
|
||||
|
||||
[Header("=== 전투(무기) 설정 ===")]
|
||||
[SerializeField] private MonsterWeapon myWeapon;
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// 생명주기
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
protected virtual void Awake()
|
||||
{
|
||||
|
|
@ -63,6 +72,11 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
|
|||
if (MobUpdateManager.Instance != null) MobUpdateManager.Instance.RegisterMob(this);
|
||||
}
|
||||
|
||||
protected virtual void OnDisable()
|
||||
{
|
||||
if (MobUpdateManager.Instance != null) MobUpdateManager.Instance.UnregisterMob(this);
|
||||
}
|
||||
|
||||
public void ResetStats()
|
||||
{
|
||||
isDead = false;
|
||||
|
|
@ -73,20 +87,20 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
|
|||
Collider col = GetComponent<Collider>();
|
||||
if (col != null) col.enabled = true;
|
||||
|
||||
// ⭐ 여기서 몬스터의 힘(attackDamage)을 무기에 보냄
|
||||
if (myWeapon != null)
|
||||
{
|
||||
myWeapon.SetDamage(attackDamage);
|
||||
}
|
||||
OnResetStats();
|
||||
}
|
||||
|
||||
protected virtual void OnDisable()
|
||||
{
|
||||
if (MobUpdateManager.Instance != null) MobUpdateManager.Instance.UnregisterMob(this);
|
||||
}
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// 추상 메서드 (자식이 반드시 구현)
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
protected virtual void Init() { }
|
||||
protected abstract void ExecuteAILogic();
|
||||
protected virtual void OnResetStats() { }
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// 공통 기능
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
public virtual void Reactivate()
|
||||
{
|
||||
|
|
@ -123,11 +137,26 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
|
|||
|
||||
protected void StopMovement()
|
||||
{
|
||||
if (agent != null && agent.isOnNavMesh) { agent.isStopped = true; agent.velocity = Vector3.zero; }
|
||||
if (animator != null) { animator.SetFloat("Speed", 0f); animator.Play(Monster_Idle); }
|
||||
if (agent != null && agent.isOnNavMesh)
|
||||
{
|
||||
agent.isStopped = true;
|
||||
agent.velocity = Vector3.zero;
|
||||
}
|
||||
if (animator != null)
|
||||
{
|
||||
animator.SetFloat("Speed", 0f);
|
||||
animator.Play(Monster_Idle);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void TakeDamage(float amount) { OnDamaged(amount); }
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// 피격 / 사망
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
public virtual void TakeDamage(float amount)
|
||||
{
|
||||
OnDamaged(amount);
|
||||
}
|
||||
|
||||
public virtual void OnDamaged(float damage)
|
||||
{
|
||||
|
|
@ -146,7 +175,7 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
|
|||
isResting = false;
|
||||
StopAllCoroutines();
|
||||
|
||||
if (myWeapon != null) myWeapon.DisableHitBox();
|
||||
OnStartHit();
|
||||
|
||||
if (agent && agent.isOnNavMesh)
|
||||
{
|
||||
|
|
@ -159,26 +188,7 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
|
|||
if (hitSound) audioSource.PlayOneShot(hitSound);
|
||||
}
|
||||
|
||||
public virtual void OnAttackStart()
|
||||
{
|
||||
isAttacking = true;
|
||||
isResting = false;
|
||||
if (myWeapon != null) myWeapon.EnableHitBox();
|
||||
}
|
||||
|
||||
public virtual void OnAttackEnd()
|
||||
{
|
||||
if (myWeapon != null) myWeapon.DisableHitBox();
|
||||
isAttacking = false;
|
||||
if (!isDead && !isHit) StartCoroutine(RestAfterAttack());
|
||||
}
|
||||
|
||||
protected IEnumerator RestAfterAttack()
|
||||
{
|
||||
isResting = true;
|
||||
yield return new WaitForSeconds(attackRestDuration);
|
||||
isResting = false;
|
||||
}
|
||||
protected virtual void OnStartHit() { }
|
||||
|
||||
public virtual void OnHitEnd()
|
||||
{
|
||||
|
|
@ -192,7 +202,7 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
|
|||
isDead = true;
|
||||
IsAggroed = false;
|
||||
|
||||
if (myWeapon != null) myWeapon.DisableHitBox();
|
||||
OnDie();
|
||||
|
||||
OnMonsterKilled?.Invoke(expReward);
|
||||
Collider col = GetComponent<Collider>();
|
||||
|
|
@ -209,6 +219,46 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
|
|||
Invoke("ReturnToPool", 1.5f);
|
||||
}
|
||||
|
||||
protected virtual void OnDie() { }
|
||||
|
||||
public bool IsDead => isDead;
|
||||
protected void ReturnToPool() => gameObject.SetActive(false);
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// ⭐ 공격 이벤트 (여기가 중요!)
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
/// <summary>
|
||||
/// 애니메이션 이벤트: 공격 시작
|
||||
/// - 부모는 기본적으로 무기를 켬
|
||||
/// - 자식(원거리)은 이걸 Override 해서 화살 발사로 바꿈
|
||||
/// </summary>
|
||||
public virtual void OnAttackStart()
|
||||
{
|
||||
isAttacking = true;
|
||||
isResting = false;
|
||||
|
||||
if (myWeapon != null)
|
||||
{
|
||||
myWeapon.EnableHitBox();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void OnAttackEnd()
|
||||
{
|
||||
if (myWeapon != null)
|
||||
{
|
||||
myWeapon.DisableHitBox();
|
||||
}
|
||||
|
||||
isAttacking = false;
|
||||
if (!isDead && !isHit) StartCoroutine(RestAfterAttack());
|
||||
}
|
||||
|
||||
protected virtual IEnumerator RestAfterAttack()
|
||||
{
|
||||
isResting = true;
|
||||
yield return new WaitForSeconds(attackRestDuration);
|
||||
isResting = false;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +1,13 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
|
||||
public class NormalMonster : MonsterClass
|
||||
/// <summary>
|
||||
/// 근접 공격 몬스터 (칼, 도끼 등)
|
||||
/// </summary>
|
||||
public class MeleeMonster : MonsterClass
|
||||
{
|
||||
[Header("전투 설정")]
|
||||
[Header("=== 근접 공격 설정 ===")]
|
||||
[SerializeField] private MonsterWeapon myWeapon;
|
||||
[SerializeField] private float attackRange = 2f;
|
||||
[SerializeField] private float attackDelay = 1.5f;
|
||||
|
||||
|
|
@ -24,20 +28,39 @@ public class NormalMonster : MonsterClass
|
|||
private int attackIndex;
|
||||
private bool isPlayerInZone;
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// 초기화
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
protected override void Init()
|
||||
{
|
||||
if (agent != null) agent.stoppingDistance = attackRange - 0.4f;
|
||||
if (animator != null) animator.applyRootMotion = false;
|
||||
}
|
||||
|
||||
protected override void OnResetStats()
|
||||
{
|
||||
// 무기에 데미지 설정
|
||||
if (myWeapon != null)
|
||||
{
|
||||
myWeapon.SetDamage(attackDamage);
|
||||
}
|
||||
}
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// AI 로직
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
protected override void ExecuteAILogic()
|
||||
{
|
||||
// 공격 중(isAttacking)이면 AI 생각 멈춤 -> 부들부들 방지!
|
||||
if (isHit || isAttacking || isResting) return;
|
||||
|
||||
float distance = Vector3.Distance(transform.position, playerTransform.position);
|
||||
if (isPlayerInZone || distance <= attackRange * 2f) HandlePlayerTarget();
|
||||
else Patrol();
|
||||
|
||||
if (isPlayerInZone || distance <= attackRange * 2f)
|
||||
HandlePlayerTarget();
|
||||
else
|
||||
Patrol();
|
||||
|
||||
UpdateMovementAnimation();
|
||||
}
|
||||
|
|
@ -45,7 +68,9 @@ public class NormalMonster : MonsterClass
|
|||
void HandlePlayerTarget()
|
||||
{
|
||||
float distance = Vector3.Distance(transform.position, playerTransform.position);
|
||||
if (distance <= attackRange - stopBuffer) TryAttack();
|
||||
|
||||
if (distance <= attackRange - stopBuffer)
|
||||
TryAttack();
|
||||
else if (Time.time >= nextRepathTime)
|
||||
{
|
||||
if (agent.isOnNavMesh) agent.SetDestination(playerTransform.position);
|
||||
|
|
@ -61,11 +86,8 @@ public class NormalMonster : MonsterClass
|
|||
string attackName = attackAnimations[attackIndex];
|
||||
attackIndex = (attackIndex + 1) % attackAnimations.Length;
|
||||
|
||||
// ⭐ [핵심 수정] 애니메이션 이벤트 기다리지 말고, 즉시 "공격 상태"로 전환!
|
||||
// 이걸 해야 AI가 이동하려는 시도를 멈춥니다.
|
||||
isAttacking = true;
|
||||
|
||||
// 이동 멈춤 (미끄러짐 방지)
|
||||
if (agent.isOnNavMesh)
|
||||
{
|
||||
agent.isStopped = true;
|
||||
|
|
@ -78,19 +100,79 @@ public class NormalMonster : MonsterClass
|
|||
void UpdateMovementAnimation()
|
||||
{
|
||||
if (isAttacking || isHit || isResting) return;
|
||||
if (agent.velocity.magnitude < 0.1f) animator.Play(Monster_Idle);
|
||||
else animator.Play(Monster_Walk);
|
||||
|
||||
if (agent.velocity.magnitude < 0.1f)
|
||||
animator.Play(Monster_Idle);
|
||||
else
|
||||
animator.Play(Monster_Walk);
|
||||
}
|
||||
|
||||
void Patrol()
|
||||
{
|
||||
if (Time.time < nextPatrolTime) return;
|
||||
Vector3 randomPoint = transform.position + new Vector3(Random.Range(-patrolRadius, patrolRadius), 0, Random.Range(-patrolRadius, patrolRadius));
|
||||
|
||||
Vector3 randomPoint = transform.position + new Vector3(
|
||||
Random.Range(-patrolRadius, patrolRadius),
|
||||
0,
|
||||
Random.Range(-patrolRadius, patrolRadius)
|
||||
);
|
||||
|
||||
if (NavMesh.SamplePosition(randomPoint, out NavMeshHit hit, 3f, NavMesh.AllAreas))
|
||||
if (agent.isOnNavMesh) agent.SetDestination(hit.position);
|
||||
|
||||
nextPatrolTime = Time.time + patrolInterval;
|
||||
}
|
||||
|
||||
private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) isPlayerInZone = true; }
|
||||
private void OnTriggerExit(Collider other) { if (other.CompareTag("Player")) isPlayerInZone = false; }
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// 공격 이벤트 (애니메이션에서 호출)
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
public void OnAttackStart()
|
||||
{
|
||||
isAttacking = true;
|
||||
isResting = false;
|
||||
if (myWeapon != null) myWeapon.EnableHitBox();
|
||||
}
|
||||
|
||||
public void OnAttackEnd()
|
||||
{
|
||||
if (myWeapon != null) myWeapon.DisableHitBox();
|
||||
isAttacking = false;
|
||||
if (!isDead && !isHit) StartCoroutine(RestAfterAttack());
|
||||
}
|
||||
|
||||
System.Collections.IEnumerator RestAfterAttack()
|
||||
{
|
||||
isResting = true;
|
||||
yield return new WaitForSeconds(attackRestDuration);
|
||||
isResting = false;
|
||||
}
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// 피격 / 사망 시 무기 끄기
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
protected override void OnStartHit()
|
||||
{
|
||||
if (myWeapon != null) myWeapon.DisableHitBox();
|
||||
}
|
||||
|
||||
protected override void OnDie()
|
||||
{
|
||||
if (myWeapon != null) myWeapon.DisableHitBox();
|
||||
}
|
||||
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
// Trigger 감지 (플레이어 인식 영역)
|
||||
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Player")) isPlayerInZone = true;
|
||||
}
|
||||
|
||||
private void OnTriggerExit(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Player")) isPlayerInZone = false;
|
||||
}
|
||||
}
|
||||
82
Assets/Scripts/Enemy/AI/Projectile.cs
Normal file
82
Assets/Scripts/Enemy/AI/Projectile.cs
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 원거리 공격 발사체 (화살, 마법탄 등)
|
||||
/// </summary>
|
||||
public class Projectile : MonoBehaviour
|
||||
{
|
||||
private Vector3 _direction;
|
||||
private float _speed;
|
||||
private float _damage;
|
||||
private bool _isInitialized = false;
|
||||
|
||||
[Header("설정")]
|
||||
[SerializeField] private float lifetime = 5f; // 수명
|
||||
[SerializeField] private GameObject hitEffectPrefab; // 충돌 이펙트
|
||||
|
||||
private Rigidbody _rigidbody;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_rigidbody = GetComponent<Rigidbody>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 발사체 초기화
|
||||
/// </summary>
|
||||
public void Initialize(Vector3 direction, float speed, float damage)
|
||||
{
|
||||
_direction = direction.normalized;
|
||||
_speed = speed;
|
||||
_damage = damage;
|
||||
_isInitialized = true;
|
||||
|
||||
// Rigidbody로 발사
|
||||
if (_rigidbody != null)
|
||||
{
|
||||
_rigidbody.velocity = _direction * _speed;
|
||||
}
|
||||
|
||||
// 수명 후 파괴
|
||||
Destroy(gameObject, lifetime);
|
||||
}
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
if (!_isInitialized) return;
|
||||
|
||||
// Rigidbody가 없으면 수동으로 이동
|
||||
if (_rigidbody == null)
|
||||
{
|
||||
transform.position += _direction * _speed * Time.fixedDeltaTime;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
// 발사한 몬스터 무시
|
||||
if (other.CompareTag("Enemy")) return;
|
||||
|
||||
// 플레이어와 충돌
|
||||
if (other.CompareTag("Player"))
|
||||
{
|
||||
if (other.TryGetComponent<PlayerHealth>(out var playerHealth))
|
||||
{
|
||||
if (!playerHealth.isInvincible)
|
||||
{
|
||||
playerHealth.TakeDamage(_damage);
|
||||
Debug.Log($"[Projectile] 플레이어 적중! 데미지: {_damage}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 충돌 이펙트
|
||||
if (hitEffectPrefab != null)
|
||||
{
|
||||
Instantiate(hitEffectPrefab, transform.position, Quaternion.identity);
|
||||
}
|
||||
|
||||
// 발사체 파괴
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Enemy/AI/Projectile.cs.meta
Normal file
11
Assets/Scripts/Enemy/AI/Projectile.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e2c31bd36273f1f4ab74fc1d65b76e1c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
184
Assets/Scripts/Enemy/AI/Range Monster.cs
Normal file
184
Assets/Scripts/Enemy/AI/Range Monster.cs
Normal file
|
|
@ -0,0 +1,184 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
using System.Collections;
|
||||
|
||||
public class SmartThrowMonster : MonsterClass
|
||||
{
|
||||
public enum ThrowType { Unlimited, Reload } // 무제한(활) vs 재장전(돌)
|
||||
|
||||
[Header("=== 투척/원거리 설정 ===")]
|
||||
[SerializeField] private ThrowType attackType = ThrowType.Unlimited;
|
||||
[SerializeField] private GameObject projectilePrefab; // 날아갈 물체
|
||||
[SerializeField] private Transform firePoint; // 발사 위치
|
||||
[SerializeField] private GameObject handModel; // 손에 들고 있는 모델 (던지면 꺼짐)
|
||||
|
||||
[Header("수치 설정")]
|
||||
[SerializeField] private float reloadTime = 2.0f; // 돌 다시 생기는 시간
|
||||
[SerializeField] private float throwForce = 15f; // 던지는 힘 (곡사)
|
||||
[SerializeField] private float throwUpward = 5f; // 위로 띄우는 힘
|
||||
[SerializeField] private float attackRange = 10f;
|
||||
[SerializeField] private float attackDelay = 2f;
|
||||
[SerializeField] private float detectRange = 15f; // 플레이어 감지 거리
|
||||
|
||||
[Header("애니메이션")]
|
||||
[SerializeField] private string throwAnim = "Monster_Throw";
|
||||
[SerializeField] private string walkAnim = "Monster_Walk";
|
||||
|
||||
// ⭐ [추가] 순찰 관련 변수
|
||||
[Header("AI 순찰 설정")]
|
||||
[SerializeField] private float patrolRadius = 5f;
|
||||
[SerializeField] private float patrolInterval = 3f;
|
||||
|
||||
private float lastAttackTime;
|
||||
private bool isReloading = false; // 돌 줍는 중인가?
|
||||
private float nextPatrolTime; // 다음 순찰 시간
|
||||
private bool isPlayerInZone; // 플레이어가 감지 범위 내에 있는가?
|
||||
|
||||
protected override void Init()
|
||||
{
|
||||
if (agent != null) agent.stoppingDistance = attackRange * 0.8f;
|
||||
if (animator != null) animator.applyRootMotion = false;
|
||||
}
|
||||
|
||||
protected override void ExecuteAILogic()
|
||||
{
|
||||
if (isHit || isAttacking || isReloading || isResting) return;
|
||||
|
||||
float dist = Vector3.Distance(transform.position, playerTransform.position);
|
||||
|
||||
// 1. 플레이어를 감지했거나(Trigger), 사거리 안에 있거나, 감지 거리 안에 있을 때 -> 전투 모드
|
||||
if (isPlayerInZone || dist <= attackRange || dist <= detectRange)
|
||||
{
|
||||
if (dist <= attackRange)
|
||||
{
|
||||
TryAttack();
|
||||
}
|
||||
else
|
||||
{
|
||||
// 사거리 밖이면 추적
|
||||
if (agent.isOnNavMesh)
|
||||
{
|
||||
agent.isStopped = false;
|
||||
agent.SetDestination(playerTransform.position);
|
||||
UpdateMovementAnimation();
|
||||
}
|
||||
}
|
||||
}
|
||||
// 2. 플레이어 없음 -> 순찰 모드
|
||||
else
|
||||
{
|
||||
Patrol();
|
||||
UpdateMovementAnimation();
|
||||
}
|
||||
}
|
||||
|
||||
void TryAttack()
|
||||
{
|
||||
if (Time.time < lastAttackTime + attackDelay) return;
|
||||
if (isReloading) return; // 돌 없으면 못 던짐
|
||||
|
||||
lastAttackTime = Time.time;
|
||||
isAttacking = true;
|
||||
|
||||
// 조준 (멈추고 바라보기)
|
||||
if (agent.isOnNavMesh) { agent.isStopped = true; agent.velocity = Vector3.zero; }
|
||||
transform.LookAt(new Vector3(playerTransform.position.x, transform.position.y, playerTransform.position.z));
|
||||
|
||||
animator.Play(throwAnim);
|
||||
}
|
||||
|
||||
// ⭐ [추가] 순찰 로직
|
||||
void Patrol()
|
||||
{
|
||||
if (Time.time < nextPatrolTime) return;
|
||||
|
||||
Vector3 randomPoint = transform.position + new Vector3(
|
||||
Random.Range(-patrolRadius, patrolRadius),
|
||||
0,
|
||||
Random.Range(-patrolRadius, patrolRadius)
|
||||
);
|
||||
|
||||
if (NavMesh.SamplePosition(randomPoint, out NavMeshHit hit, 3f, NavMesh.AllAreas))
|
||||
{
|
||||
if (agent.isOnNavMesh)
|
||||
{
|
||||
agent.SetDestination(hit.position);
|
||||
agent.isStopped = false;
|
||||
}
|
||||
}
|
||||
|
||||
nextPatrolTime = Time.time + patrolInterval;
|
||||
}
|
||||
|
||||
// ⭐ [추가] 움직임 애니메이션 관리
|
||||
void UpdateMovementAnimation()
|
||||
{
|
||||
if (isAttacking || isHit || isResting) return;
|
||||
|
||||
if (agent.velocity.magnitude > 0.1f)
|
||||
animator.Play(walkAnim);
|
||||
else
|
||||
animator.Play(Monster_Idle);
|
||||
}
|
||||
|
||||
// ⭐ 애니메이션 이벤트: OnAttackStart
|
||||
public override void OnAttackStart()
|
||||
{
|
||||
if (projectilePrefab && firePoint)
|
||||
{
|
||||
// 1. 발사체 생성
|
||||
GameObject obj = Instantiate(projectilePrefab, firePoint.position, transform.rotation);
|
||||
|
||||
// 데미지 전달
|
||||
if (obj.TryGetComponent<Projectile>(out var proj))
|
||||
{
|
||||
// 돌 던지기(Reload) 타입이면 초기 속도 0 (물리력으로 날림)
|
||||
// 활 쏘기(Unlimited) 타입이면 Projectile 자체 속도 사용
|
||||
float initSpeed = (attackType == ThrowType.Reload) ? 0f : 20f;
|
||||
proj.Initialize(transform.forward, initSpeed, attackDamage);
|
||||
}
|
||||
|
||||
// 물리력으로 던지기 (돌 던지기 타입일 때만)
|
||||
if (attackType == ThrowType.Reload)
|
||||
{
|
||||
Rigidbody rb = obj.GetComponent<Rigidbody>();
|
||||
if (rb)
|
||||
{
|
||||
rb.useGravity = true;
|
||||
Vector3 force = transform.forward * throwForce + Vector3.up * throwUpward;
|
||||
rb.AddForce(force, ForceMode.Impulse);
|
||||
}
|
||||
}
|
||||
|
||||
// 2. 손에 있는 모델 숨기기
|
||||
if (attackType == ThrowType.Reload && handModel != null)
|
||||
{
|
||||
handModel.SetActive(false);
|
||||
StartCoroutine(ReloadRoutine());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator ReloadRoutine()
|
||||
{
|
||||
isReloading = true;
|
||||
// Debug.Log("🔄 [Mob] 돌 줍는 중..."); // 로그 너무 많이 뜨면 주석 처리
|
||||
|
||||
yield return new WaitForSeconds(reloadTime);
|
||||
|
||||
if (handModel != null) handModel.SetActive(true);
|
||||
isReloading = false;
|
||||
// Debug.Log("✅ [Mob] 장전 완료!");
|
||||
}
|
||||
|
||||
// ⭐ [추가] 감지 영역 설정
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Player")) isPlayerInZone = true;
|
||||
}
|
||||
|
||||
private void OnTriggerExit(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Player")) isPlayerInZone = false;
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Enemy/AI/Range Monster.cs.meta
Normal file
11
Assets/Scripts/Enemy/AI/Range Monster.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0e6d46f9fafc5dc4881b4fedd7bd689f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Loading…
Reference in New Issue
Block a user