02월4일 작업물

This commit is contained in:
윤기주_playm 2026-02-04 23:06:25 +09:00
parent 2e93f447dc
commit 6aee6544c7
33 changed files with 77561 additions and 33152 deletions

View File

@ -10,47 +10,47 @@ PrefabInstance:
m_Modifications: m_Modifications:
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_LocalScale.x propertyPath: m_LocalScale.x
value: 1.7955 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_LocalScale.y propertyPath: m_LocalScale.y
value: 1.7955 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_LocalScale.z propertyPath: m_LocalScale.z
value: 1.7955 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 37.404156 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 7.75 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 24.345 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
value: 0.7058545 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_LocalRotation.x propertyPath: m_LocalRotation.x
value: -0.7058545 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_LocalRotation.y propertyPath: m_LocalRotation.y
value: -0.04206518 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_LocalRotation.z propertyPath: m_LocalRotation.z
value: -0.04206518 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_LocalEulerAnglesHint.x propertyPath: m_LocalEulerAnglesHint.x
value: -90 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_LocalEulerAnglesHint.y propertyPath: m_LocalEulerAnglesHint.y
@ -58,7 +58,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -8679921383154817045, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_LocalEulerAnglesHint.z propertyPath: m_LocalEulerAnglesHint.z
value: -6.821 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -7511558181221131132, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: -7511558181221131132, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_Materials.Array.data[0] propertyPath: m_Materials.Array.data[0]
@ -66,7 +66,7 @@ PrefabInstance:
objectReference: {fileID: 2100000, guid: 52b1a761d9ed33549a8cbf408621f61a, type: 2} objectReference: {fileID: 2100000, guid: 52b1a761d9ed33549a8cbf408621f61a, type: 2}
- target: {fileID: 919132149155446097, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - target: {fileID: 919132149155446097, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
propertyPath: m_Name propertyPath: m_Name
value: "Meshy_AI_\uB0A1\uC740_\uCE7C_0202123706_texture" value: Long Sword1
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
@ -75,6 +75,12 @@ PrefabInstance:
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: bb77cc9931229de4498c04f7650496d0, type: 3} - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
insertIndex: -1 insertIndex: -1
addedObject: {fileID: -1612093166368112069} 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} m_SourcePrefab: {fileID: 100100000, guid: bb77cc9931229de4498c04f7650496d0, type: 3}
--- !u!1 &2140436862665439697 stripped --- !u!1 &2140436862665439697 stripped
GameObject: GameObject:
@ -93,4 +99,53 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4eebd921e8ac4c74182441ec944491ef, type: 3} m_Script: {fileID: 11500000, guid: 4eebd921e8ac4c74182441ec944491ef, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: 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

View File

@ -10,35 +10,35 @@ PrefabInstance:
m_Modifications: m_Modifications:
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3} - target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
propertyPath: m_LocalScale.x propertyPath: m_LocalScale.x
value: 0.62877 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3} - target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
propertyPath: m_LocalScale.y propertyPath: m_LocalScale.y
value: 0.62877 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3} - target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
propertyPath: m_LocalScale.z propertyPath: m_LocalScale.z
value: 0.62877 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3} - target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 36.294 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3} - target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 6.98 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3} - target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 26.08 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3} - target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
value: 0.7071068 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3} - target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
propertyPath: m_LocalRotation.x propertyPath: m_LocalRotation.x
value: -0.7071068 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3} - target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
propertyPath: m_LocalRotation.y propertyPath: m_LocalRotation.y
@ -46,7 +46,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3} - target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
propertyPath: m_LocalRotation.z propertyPath: m_LocalRotation.z
value: -0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3} - target: {fileID: -8679921383154817045, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
propertyPath: m_LocalEulerAnglesHint.x propertyPath: m_LocalEulerAnglesHint.x
@ -66,7 +66,7 @@ PrefabInstance:
objectReference: {fileID: 2100000, guid: 1fcf7668092515844ba6a46e65da4e0e, type: 2} objectReference: {fileID: 2100000, guid: 1fcf7668092515844ba6a46e65da4e0e, type: 2}
- target: {fileID: 919132149155446097, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3} - target: {fileID: 919132149155446097, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
propertyPath: m_Name propertyPath: m_Name
value: "Meshy_AI_\uB0A1\uC740_\uB2E8\uAC80_0202123716_texture" value: Short Sword
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
@ -75,6 +75,12 @@ PrefabInstance:
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3} - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
insertIndex: -1 insertIndex: -1
addedObject: {fileID: -1799796546392776957} 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} m_SourcePrefab: {fileID: 100100000, guid: a5a40cd391a6c344595cccf2a60e81f3, type: 3}
--- !u!1 &1989840764554354322 stripped --- !u!1 &1989840764554354322 stripped
GameObject: GameObject:
@ -93,4 +99,53 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4eebd921e8ac4c74182441ec944491ef, type: 3} m_Script: {fileID: 11500000, guid: 4eebd921e8ac4c74182441ec944491ef, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: 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

View File

@ -1,5 +1,58 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %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 --- !u!1001 &4520092900722824320
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -10,35 +63,35 @@ PrefabInstance:
m_Modifications: m_Modifications:
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3} - target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
propertyPath: m_LocalScale.x propertyPath: m_LocalScale.x
value: 2.450081 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3} - target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
propertyPath: m_LocalScale.y propertyPath: m_LocalScale.y
value: 2.292385 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3} - target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
propertyPath: m_LocalScale.z propertyPath: m_LocalScale.z
value: 2.9647658 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3} - target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 34.28 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3} - target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 8.899 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3} - target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 25.562 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3} - target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
value: 0.7071068 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3} - target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
propertyPath: m_LocalRotation.x propertyPath: m_LocalRotation.x
value: -0.7071068 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3} - target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
propertyPath: m_LocalRotation.y propertyPath: m_LocalRotation.y
@ -46,7 +99,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3} - target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
propertyPath: m_LocalRotation.z propertyPath: m_LocalRotation.z
value: -0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3} - target: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
propertyPath: m_LocalEulerAnglesHint.x propertyPath: m_LocalEulerAnglesHint.x
@ -74,24 +127,27 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
m_AddedGameObjects: [] m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: -8679921383154817045, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
insertIndex: -1
addedObject: {fileID: 5189329377133592040}
m_AddedComponents: m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: afba5816e8ef45948a025a0450a581a1, type: 3} - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
insertIndex: -1 insertIndex: 2
addedObject: {fileID: -4244908935780581778} addedObject: {fileID: 5898612647368458389}
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
insertIndex: -1
addedObject: {fileID: -4464162073945719506}
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: afba5816e8ef45948a025a0450a581a1, type: 3} - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
insertIndex: -1 insertIndex: -1
addedObject: {fileID: -5261385165049439556} addedObject: {fileID: -5261385165049439556}
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
insertIndex: -1
addedObject: {fileID: 6438600877785711725}
m_SourcePrefab: {fileID: 100100000, guid: afba5816e8ef45948a025a0450a581a1, type: 3} m_SourcePrefab: {fileID: 100100000, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
--- !u!1 &3637766495420049873 stripped --- !u!1 &3637766495420049873 stripped
GameObject: GameObject:
m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: afba5816e8ef45948a025a0450a581a1, type: 3} m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: afba5816e8ef45948a025a0450a581a1, type: 3}
m_PrefabInstance: {fileID: 4520092900722824320} m_PrefabInstance: {fileID: 4520092900722824320}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!114 &-4244908935780581778 --- !u!114 &5898612647368458389
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
@ -104,27 +160,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
weaponBaseDamage: 10 weaponBaseDamage: 10
--- !u!65 &-4464162073945719506 _weaponCollider: {fileID: 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: 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}
--- !u!54 &-5261385165049439556 --- !u!54 &-5261385165049439556
Rigidbody: Rigidbody:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -152,3 +188,29 @@ Rigidbody:
m_Interpolate: 0 m_Interpolate: 0
m_Constraints: 0 m_Constraints: 0
m_CollisionDetection: 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}

View File

@ -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}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3fe90e2c4622f754381371a281472296
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -31,6 +31,38 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 820014222618867213} m_Father: {fileID: 820014222618867213}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 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 --- !u!1 &216741287701997913
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1419,8 +1451,8 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 5494800343343911850} - component: {fileID: 5494800343343911850}
- component: {fileID: 2734043935891789976} - component: {fileID: 2734043935891789976}
- component: {fileID: 2191869281094090394}
- component: {fileID: 165297179063843592} - component: {fileID: 165297179063843592}
- component: {fileID: -5927759587507764226}
- component: {fileID: 1514289710616282544} - component: {fileID: 1514289710616282544}
- component: {fileID: 8202243285445189301} - component: {fileID: 8202243285445189301}
- component: {fileID: 5769769960016074036} - component: {fileID: 5769769960016074036}
@ -1470,41 +1502,6 @@ Animator:
m_AllowConstantClipSamplingOptimization: 1 m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0 m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 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 --- !u!195 &165297179063843592
NavMeshAgent: NavMeshAgent:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1527,6 +1524,47 @@ NavMeshAgent:
m_BaseOffset: 0 m_BaseOffset: 0
m_WalkableMask: 4294967295 m_WalkableMask: 4294967295
m_ObstacleAvoidanceType: 4 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 --- !u!54 &1514289710616282544
Rigidbody: Rigidbody:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2457,7 +2495,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7080305393597894472} m_GameObject: {fileID: 7080305393597894472}
serializedVersion: 2 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_LocalPosition: {x: 0.59595025, y: -0.06814218, z: 0.18439426}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
@ -2467,9 +2505,9 @@ Transform:
- {fileID: 6820430208105080267} - {fileID: 6820430208105080267}
- {fileID: 6999144065060741639} - {fileID: 6999144065060741639}
- {fileID: 6793412506891494909} - {fileID: 6793412506891494909}
- {fileID: 1214684053570394478} - {fileID: 8489816395439659708}
m_Father: {fileID: 5453506110754154993} 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 --- !u!1 &7153040190580437744
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2588,7 +2626,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 9eb5b341f7503494e9b0f88cc4b1c17d, type: 3} m_Script: {fileID: 11500000, guid: 9eb5b341f7503494e9b0f88cc4b1c17d, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
healthSource: {fileID: 2191869281094090394} healthSource: {fileID: 0}
hpFillImage: {fileID: 7307672912510681016} hpFillImage: {fileID: 7307672912510681016}
hpText: {fileID: 2164660505891504432} hpText: {fileID: 2164660505891504432}
--- !u!1 &7576300459429704252 --- !u!1 &7576300459429704252
@ -3425,67 +3463,63 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 4924140283750863661} m_Father: {fileID: 4924140283750863661}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &3020592912531532293 --- !u!1001 &1646456170886479728
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 serializedVersion: 2
m_Modification: m_Modification:
serializedVersion: 3 serializedVersion: 3
m_TransformParent: {fileID: 3515307460793968011} m_TransformParent: {fileID: 8489816395439659708}
m_Modifications: m_Modifications:
- target: {fileID: 3637766495420049873, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} - target: {fileID: 1163733789413127741, guid: 3fe90e2c4622f754381371a281472296, type: 3}
propertyPath: m_Name propertyPath: m_Name
value: Spear value: Throw Monster Weapon
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} - target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
propertyPath: m_LocalScale.x
value: 4.5709
objectReference: {fileID: 0}
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3}
propertyPath: m_LocalScale.y propertyPath: m_LocalScale.y
value: 4.5709 value: 0.97348017
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} - target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
propertyPath: m_LocalScale.z propertyPath: m_LocalScale.z
value: 4.5709 value: 0.97347987
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} - target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 0.26 value: 0.067000516
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} - target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: -0.185 value: -0.558999
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} - target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 2.33 value: 0.27400145
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} - target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
value: 1 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} - target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
propertyPath: m_LocalRotation.x propertyPath: m_LocalRotation.x
value: 0 value: -0.000000014901161
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} - target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
propertyPath: m_LocalRotation.y propertyPath: m_LocalRotation.y
value: 0 value: -0.000000059604645
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} - target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
propertyPath: m_LocalRotation.z propertyPath: m_LocalRotation.z
value: 0 value: 0.000000022351742
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} - target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
propertyPath: m_LocalEulerAnglesHint.x propertyPath: m_LocalEulerAnglesHint.x
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} - target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
propertyPath: m_LocalEulerAnglesHint.y propertyPath: m_LocalEulerAnglesHint.y
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} - target: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
propertyPath: m_LocalEulerAnglesHint.z propertyPath: m_LocalEulerAnglesHint.z
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
@ -3493,9 +3527,9 @@ PrefabInstance:
m_RemovedGameObjects: [] m_RemovedGameObjects: []
m_AddedGameObjects: [] m_AddedGameObjects: []
m_AddedComponents: [] m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 3fe90e2c4622f754381371a281472296, type: 3}
--- !u!4 &1214684053570394478 stripped --- !u!4 &1108089601745891472 stripped
Transform: Transform:
m_CorrespondingSourceObject: {fileID: 4120830999722734443, guid: 86581dd93bdff7f4b931c59503e2b65f, type: 3} m_CorrespondingSourceObject: {fileID: 1853753193380319200, guid: 3fe90e2c4622f754381371a281472296, type: 3}
m_PrefabInstance: {fileID: 3020592912531532293} m_PrefabInstance: {fileID: 1646456170886479728}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}

View File

@ -382,6 +382,7 @@ Transform:
- {fileID: 8601973675841176934} - {fileID: 8601973675841176934}
- {fileID: 4258228940095842877} - {fileID: 4258228940095842877}
- {fileID: 2239401418602158757} - {fileID: 2239401418602158757}
- {fileID: 1000517034669344941}
m_Father: {fileID: 6886228752417663885} m_Father: {fileID: 6886228752417663885}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1520132395512168833 --- !u!1 &1520132395512168833
@ -1520,6 +1521,7 @@ MonoBehaviour:
deathEffectPrefab: {fileID: 0} deathEffectPrefab: {fileID: 0}
hitEffect: {fileID: 0} hitEffect: {fileID: 0}
impactSpawnPoint: {fileID: 0} impactSpawnPoint: {fileID: 0}
myWeapon: {fileID: 8267965081717418493}
attackRange: 2 attackRange: 2
attackDelay: 1.5 attackDelay: 1.5
attackAnimations: attackAnimations:
@ -2881,3 +2883,76 @@ Transform:
- {fileID: 24538573601920909} - {fileID: 24538573601920909}
m_Father: {fileID: 2582067335924110456} m_Father: {fileID: 2582067335924110456}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 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:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cb2eb4c30e1269846945d1cddad0a27e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View 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:

View File

@ -83211,14 +83211,14 @@ AnimationClip:
m_HasGenericRootTransform: 0 m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0 m_HasMotionFloatCurves: 0
m_Events: m_Events:
- time: 0.53333336 - time: 0.43333334
functionName: OnAttackStart functionName: OnAttackStart
data: data:
objectReferenceParameter: {fileID: 0} objectReferenceParameter: {fileID: 0}
floatParameter: 0 floatParameter: 0
intParameter: 0 intParameter: 0
messageOptions: 0 messageOptions: 0
- time: 1.3 - time: 0.7
functionName: OnAttackEnd functionName: OnAttackEnd
data: data:
objectReferenceParameter: {fileID: 0} objectReferenceParameter: {fileID: 0}

View File

@ -1,5 +1,31 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %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 --- !u!1102 &-1543731576706283773
AnimatorState: AnimatorState:
serializedVersion: 6 serializedVersion: 6
@ -178,7 +204,7 @@ AnimatorStateMachine:
m_State: {fileID: -1543731576706283773} m_State: {fileID: -1543731576706283773}
m_Position: {x: 130, y: 210, z: 0} m_Position: {x: 130, y: 210, z: 0}
- serializedVersion: 1 - serializedVersion: 1
m_State: {fileID: 6260182891193709862} m_State: {fileID: -5884916198237161424}
m_Position: {x: 410, y: -190, z: 0} m_Position: {x: 410, y: -190, z: 0}
m_ChildStateMachines: [] m_ChildStateMachines: []
m_AnyStateTransitions: [] m_AnyStateTransitions: []
@ -216,32 +242,6 @@ AnimatorState:
m_MirrorParameter: m_MirrorParameter:
m_CycleOffsetParameter: m_CycleOffsetParameter:
m_TimeParameter: 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 --- !u!1102 &6576084975643352587
AnimatorState: AnimatorState:
serializedVersion: 6 serializedVersion: 6

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a3bf14fca134cc64eb64d2875f47c1c4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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:

View File

@ -26,6 +26,32 @@ AnimatorState:
m_MirrorParameter: m_MirrorParameter:
m_CycleOffsetParameter: m_CycleOffsetParameter:
m_TimeParameter: 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 --- !u!1102 &-4942273955469260354
AnimatorState: AnimatorState:
serializedVersion: 6 serializedVersion: 6
@ -52,32 +78,6 @@ AnimatorState:
m_MirrorParameter: m_MirrorParameter:
m_CycleOffsetParameter: m_CycleOffsetParameter:
m_TimeParameter: 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 --- !u!1109 &-1841353923706876430
AnimatorTransition: AnimatorTransition:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
@ -241,8 +241,8 @@ AnimatorStateMachine:
m_State: {fileID: -4942273955469260354} m_State: {fileID: -4942273955469260354}
m_Position: {x: 400, y: 460, z: 0} m_Position: {x: 400, y: 460, z: 0}
- serializedVersion: 1 - serializedVersion: 1
m_State: {fileID: -2591084073835577238} m_State: {fileID: -6007387887935768991}
m_Position: {x: 480, y: 270, z: 0} m_Position: {x: 520, y: 290, z: 0}
m_ChildStateMachines: [] m_ChildStateMachines: []
m_AnyStateTransitions: [] m_AnyStateTransitions: []
m_EntryTransitions: m_EntryTransitions:

View File

@ -104967,8 +104967,8 @@ AnimationClip:
m_HasGenericRootTransform: 0 m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0 m_HasMotionFloatCurves: 0
m_Events: m_Events:
- time: 0.43333334 - time: 0.4
functionName: OnAttackHit functionName: OnAttackStart
data: OnAttackHit data: OnAttackHit
objectReferenceParameter: {fileID: 11500000, guid: 8c775790f7852314c8d6527ffe977e03, type: 3} objectReferenceParameter: {fileID: 11500000, guid: 8c775790f7852314c8d6527ffe977e03, type: 3}
floatParameter: 0 floatParameter: 0

View File

@ -1,179 +1,521 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 3aac88110c0304ed78cea6d9d308117d guid: 3aac88110c0304ed78cea6d9d308117d
ModelImporter: ModelImporter:
serializedVersion: 22 serializedVersion: 22200
fileIDToRecycleName: internalIDToNameTable:
100000: back_cloth_1 - first:
100002: back_cloth_2 1: 100000
100004: back_cloth_left_1 second: back_cloth_1
100006: back_cloth_left_2 - first:
100008: back_cloth_right_1 1: 100002
100010: back_cloth_right_2 second: back_cloth_2
100012: ball_l - first:
100014: ball_r 1: 100004
100016: beard_left_1 second: back_cloth_left_1
100018: beard_left_2 - first:
100020: beard_right_1 1: 100006
100022: beard_right_2 second: back_cloth_left_2
100024: calf_l - first:
100026: calf_r 1: 100008
100028: chin second: back_cloth_right_1
100030: clavicle_l - first:
100032: clavicle_r 1: 100010
100034: ear_left second: back_cloth_right_2
100036: ear_right - first:
100038: eyebrow_left 1: 100012
100040: eyebrow_right second: ball_l
100042: foot_l - first:
100044: foot_r 1: 100014
100046: front_cloth_1 second: ball_r
100048: front_cloth_2 - first:
100050: front_cloth_3 1: 100016
100052: ghoul second: beard_left_1
100054: //RootNode - first:
100056: ghoul_alpha 1: 100018
100058: hair second: beard_left_2
100060: hair_1 - first:
100062: hand_l 1: 100020
100064: hand_r second: beard_right_1
100066: head - first:
100068: index_01_l 1: 100022
100070: index_01_r second: beard_right_2
100072: index_02_l - first:
100074: index_02_r 1: 100024
100076: index_03_l second: calf_l
100078: index_03_r - first:
100080: index_04_l 1: 100026
100082: index_04_r second: calf_r
100084: jaw - first:
100086: lip 1: 100028
100088: lowerarm_l second: chin
100090: lowerarm_r - first:
100092: middle_01_l 1: 100030
100094: middle_01_r second: clavicle_l
100096: middle_02_l - first:
100098: middle_02_r 1: 100032
100100: middle_03_l second: clavicle_r
100102: middle_03_r - first:
100104: middle_04_l 1: 100034
100106: middle_04_r second: ear_left
100108: neck_01 - first:
100110: pelvis 1: 100036
100112: ring_01_l second: ear_right
100114: ring_01_r - first:
100116: ring_02_l 1: 100038
100118: ring_02_r second: eyebrow_left
100120: ring_03_l - first:
100122: ring_03_r 1: 100040
100124: ring_04_l second: eyebrow_right
100126: ring_04_r - first:
100128: root 1: 100042
100130: spine_01 second: foot_l
100132: spine_02 - first:
100134: spine_03 1: 100044
100136: thigh_l second: foot_r
100138: thigh_r - first:
100140: thumb_01_l 1: 100046
100142: thumb_01_r second: front_cloth_1
100144: thumb_02_l - first:
100146: thumb_02_r 1: 100048
100148: thumb_03_l second: front_cloth_2
100150: thumb_03_r - first:
100152: upperarm_l 1: 100050
100154: upperarm_r second: front_cloth_3
400000: back_cloth_1 - first:
400002: back_cloth_2 1: 100052
400004: back_cloth_left_1 second: ghoul
400006: back_cloth_left_2 - first:
400008: back_cloth_right_1 1: 100054
400010: back_cloth_right_2 second: //RootNode
400012: ball_l - first:
400014: ball_r 1: 100056
400016: beard_left_1 second: ghoul_alpha
400018: beard_left_2 - first:
400020: beard_right_1 1: 100058
400022: beard_right_2 second: hair
400024: calf_l - first:
400026: calf_r 1: 100060
400028: chin second: hair_1
400030: clavicle_l - first:
400032: clavicle_r 1: 100062
400034: ear_left second: hand_l
400036: ear_right - first:
400038: eyebrow_left 1: 100064
400040: eyebrow_right second: hand_r
400042: foot_l - first:
400044: foot_r 1: 100066
400046: front_cloth_1 second: head
400048: front_cloth_2 - first:
400050: front_cloth_3 1: 100068
400052: ghoul second: index_01_l
400054: //RootNode - first:
400056: ghoul_alpha 1: 100070
400058: hair second: index_01_r
400060: hair_1 - first:
400062: hand_l 1: 100072
400064: hand_r second: index_02_l
400066: head - first:
400068: index_01_l 1: 100074
400070: index_01_r second: index_02_r
400072: index_02_l - first:
400074: index_02_r 1: 100076
400076: index_03_l second: index_03_l
400078: index_03_r - first:
400080: index_04_l 1: 100078
400082: index_04_r second: index_03_r
400084: jaw - first:
400086: lip 1: 100080
400088: lowerarm_l second: index_04_l
400090: lowerarm_r - first:
400092: middle_01_l 1: 100082
400094: middle_01_r second: index_04_r
400096: middle_02_l - first:
400098: middle_02_r 1: 100084
400100: middle_03_l second: jaw
400102: middle_03_r - first:
400104: middle_04_l 1: 100086
400106: middle_04_r second: lip
400108: neck_01 - first:
400110: pelvis 1: 100088
400112: ring_01_l second: lowerarm_l
400114: ring_01_r - first:
400116: ring_02_l 1: 100090
400118: ring_02_r second: lowerarm_r
400120: ring_03_l - first:
400122: ring_03_r 1: 100092
400124: ring_04_l second: middle_01_l
400126: ring_04_r - first:
400128: root 1: 100094
400130: spine_01 second: middle_01_r
400132: spine_02 - first:
400134: spine_03 1: 100096
400136: thigh_l second: middle_02_l
400138: thigh_r - first:
400140: thumb_01_l 1: 100098
400142: thumb_01_r second: middle_02_r
400144: thumb_02_l - first:
400146: thumb_02_r 1: 100100
400148: thumb_03_l second: middle_03_l
400150: thumb_03_r - first:
400152: upperarm_l 1: 100102
400154: upperarm_r second: middle_03_r
2100000: ghoul_col - first:
2100002: ghoul_transp 1: 100104
4300000: ghoul second: middle_04_l
4300002: ghoul_alpha - first:
7400000: idle 1: 100106
7400002: block second: middle_04_r
7400004: gethit - first:
7400006: die 1: 100108
7400008: attack second: neck_01
7400010: walk - first:
7400012: run 1: 100110
7400014: spawn second: pelvis
9500000: //RootNode - first:
13700000: ghoul 1: 100112
13700002: ghoul_alpha 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: externalObjects:
- first: - first:
type: UnityEngine:Material type: UnityEngine:Material
@ -186,7 +528,7 @@ ModelImporter:
name: ghoul_transp name: ghoul_transp
second: {fileID: 2100000, guid: e02eb956af4e548d8a272b11a85391a4, type: 2} second: {fileID: 2100000, guid: e02eb956af4e548d8a272b11a85391a4, type: 2}
materials: materials:
importMaterials: 1 materialImportMode: 1
materialName: 0 materialName: 0
materialSearch: 1 materialSearch: 1
materialLocation: 1 materialLocation: 1
@ -195,6 +537,7 @@ ModelImporter:
bakeSimulation: 0 bakeSimulation: 0
resampleCurves: 1 resampleCurves: 1
optimizeGameObjects: 0 optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName: motionNodeName:
rigImportErrors: rigImportErrors:
rigImportWarnings: rigImportWarnings:
@ -203,6 +546,7 @@ ModelImporter:
animationRetargetingWarnings: animationRetargetingWarnings:
animationDoRetargetingWarnings: 0 animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0 importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1 animationCompression: 1
animationRotationError: 0.5 animationRotationError: 0.5
animationPositionError: 0.5 animationPositionError: 0.5
@ -214,6 +558,7 @@ ModelImporter:
- serializedVersion: 16 - serializedVersion: 16
name: idle name: idle
takeName: Take 001 takeName: Take 001
internalID: 0
firstFrame: 81 firstFrame: 81
lastFrame: 161 lastFrame: 161
wrapMode: 0 wrapMode: 0
@ -242,6 +587,7 @@ ModelImporter:
- serializedVersion: 16 - serializedVersion: 16
name: block name: block
takeName: Take 001 takeName: Take 001
internalID: 0
firstFrame: 260 firstFrame: 260
lastFrame: 290 lastFrame: 290
wrapMode: 0 wrapMode: 0
@ -270,6 +616,7 @@ ModelImporter:
- serializedVersion: 16 - serializedVersion: 16
name: gethit name: gethit
takeName: Take 001 takeName: Take 001
internalID: 0
firstFrame: 300 firstFrame: 300
lastFrame: 320 lastFrame: 320
wrapMode: 0 wrapMode: 0
@ -298,6 +645,7 @@ ModelImporter:
- serializedVersion: 16 - serializedVersion: 16
name: die name: die
takeName: Take 001 takeName: Take 001
internalID: 0
firstFrame: 340 firstFrame: 340
lastFrame: 375 lastFrame: 375
wrapMode: 0 wrapMode: 0
@ -326,6 +674,7 @@ ModelImporter:
- serializedVersion: 16 - serializedVersion: 16
name: attack name: attack
takeName: Take 001 takeName: Take 001
internalID: 0
firstFrame: 380 firstFrame: 380
lastFrame: 430 lastFrame: 430
wrapMode: 0 wrapMode: 0
@ -354,6 +703,7 @@ ModelImporter:
- serializedVersion: 16 - serializedVersion: 16
name: walk name: walk
takeName: Take 001 takeName: Take 001
internalID: 0
firstFrame: 470 firstFrame: 470
lastFrame: 500 lastFrame: 500
wrapMode: 0 wrapMode: 0
@ -382,6 +732,7 @@ ModelImporter:
- serializedVersion: 16 - serializedVersion: 16
name: run name: run
takeName: Take 001 takeName: Take 001
internalID: 0
firstFrame: 540 firstFrame: 540
lastFrame: 560 lastFrame: 560
wrapMode: 0 wrapMode: 0
@ -410,6 +761,7 @@ ModelImporter:
- serializedVersion: 16 - serializedVersion: 16
name: spawn name: spawn
takeName: Take 001 takeName: Take 001
internalID: 0
firstFrame: 600 firstFrame: 600
lastFrame: 644 lastFrame: 644
wrapMode: 0 wrapMode: 0
@ -441,32 +793,49 @@ ModelImporter:
globalScale: 1 globalScale: 1
meshCompression: 0 meshCompression: 0
addColliders: 0 addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 0
importVisibility: 1 importVisibility: 1
importBlendShapes: 1 importBlendShapes: 1
importCameras: 1 importCameras: 1
importLights: 1 importLights: 1
nodeNameCollisionStrategy: 0
fileIdsGeneration: 1
swapUVChannels: 0 swapUVChannels: 0
generateSecondaryUV: 0 generateSecondaryUV: 0
useFileUnits: 1 useFileUnits: 1
optimizeMeshForGPU: 1
keepQuads: 0 keepQuads: 0
weldVertices: 1 weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0 preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
meshOptimizationFlags: -1
indexFormat: 0 indexFormat: 0
secondaryUVAngleDistortion: 8 secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001 secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88 secondaryUVHardAngle: 88
secondaryUVMarginMethod: 0
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4 secondaryUVPackMargin: 4
useFileScale: 1 useFileScale: 1
strictVertexDataChecks: 0
tangentSpace: tangentSpace:
normalSmoothAngle: 60 normalSmoothAngle: 60
normalImportMode: 0 normalImportMode: 0
tangentImportMode: 3 tangentImportMode: 3
normalCalculationMode: 4 normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1 importAnimation: 1
copyAvatar: 0
humanDescription: humanDescription:
serializedVersion: 2 serializedVersion: 3
human: [] human: []
skeleton: [] skeleton: []
armTwist: 0.5 armTwist: 0.5
@ -476,14 +845,19 @@ ModelImporter:
armStretch: 0.05 armStretch: 0.05
legStretch: 0.05 legStretch: 0.05
feetSpacing: 0 feetSpacing: 0
globalScale: 1
rootMotionBoneName: rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
hasTranslationDoF: 0 hasTranslationDoF: 0
hasExtraRoot: 0 hasExtraRoot: 0
skeletonHasParents: 1 skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0} lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2 animationType: 2
humanoidOversampling: 1 humanoidOversampling: 1
avatarSetup: 1
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
importBlendShapeDeformPercent: 0
remapMaterialsIfMaterialImportModeIsNone: 1
additionalBone: 0 additionalBone: 0
userData: userData:
assetBundleName: assetBundleName:

View 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;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 96bb72d8a631bfd43a4cc61ab770a9ee
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View 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);
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 5e12969016fd3304e8824d5244651515
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,4 +1,5 @@
using UnityEngine; using System.Collections.Generic;
using UnityEngine;
public class MonsterWeapon : MonoBehaviour public class MonsterWeapon : MonoBehaviour
{ {
@ -7,13 +8,14 @@ public class MonsterWeapon : MonoBehaviour
[SerializeField] private float weaponBaseDamage = 10f; [SerializeField] private float weaponBaseDamage = 10f;
private float _finalDamage; private float _finalDamage;
private BoxCollider _weaponCollider; [SerializeField] private BoxCollider _weaponCollider;
private void Awake() private void Awake()
{ {
_weaponCollider = GetComponent<BoxCollider>(); _weaponCollider = GetComponent<BoxCollider>();
_finalDamage = weaponBaseDamage; _finalDamage = weaponBaseDamage;
DisableHitBox(); //DisableHitBox();
EnableHitBox();
} }
public void SetDamage(float monsterStrength) public void SetDamage(float monsterStrength)
@ -24,8 +26,11 @@ public class MonsterWeapon : MonoBehaviour
public void EnableHitBox() public void EnableHitBox()
{ {
Debug.Log("enabletest");
if (_weaponCollider != null) if (_weaponCollider != null)
{ {
Debug.Log("setcollider");
_weaponCollider.enabled = true; _weaponCollider.enabled = true;
Debug.Log("🔴 [무기] 공격 판정 ON! (휘두르기 시작)"); // 로그 추가 Debug.Log("🔴 [무기] 공격 판정 ON! (휘두르기 시작)"); // 로그 추가
} }

View File

@ -3,6 +3,10 @@ using UnityEngine.AI;
using System.Collections; using System.Collections;
using System; using System;
/// <summary>
/// 몬스터 기본 클래스 (공통 기능만)
/// - 공격 방식은 자식 클래스에서 구현
/// </summary>
public abstract class MonsterClass : MonoBehaviour, IDamageable public abstract class MonsterClass : MonoBehaviour, IDamageable
{ {
[Header("--- 최적화 설정 ---")] [Header("--- 최적화 설정 ---")]
@ -12,13 +16,17 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
[Header("몬스터 기본 스탯")] [Header("몬스터 기본 스탯")]
[SerializeField] protected float maxHP = 100f; [SerializeField] protected float maxHP = 100f;
[SerializeField] protected float attackDamage = 10f; // 몬스터의 힘 (예: 10) [SerializeField] protected float attackDamage = 10f;
[SerializeField] protected int expReward = 10; [SerializeField] protected int expReward = 10;
[SerializeField] protected float moveSpeed = 3.5f; [SerializeField] protected float moveSpeed = 3.5f;
protected float currentHP; protected float currentHP;
public event Action<float, float> OnHealthChanged; public event Action<float, float> OnHealthChanged;
[Header("전투 / 무기 (선택사항)")]
// ⭐ 근접 몬스터가 사용할 무기 (원거리 몬스터는 비워둬도 됨)
[SerializeField] protected MonsterWeapon myWeapon;
[Header("피격 / 사망 / 대기 애니메이션")] [Header("피격 / 사망 / 대기 애니메이션")]
[SerializeField] protected string Monster_Idle = "Monster_Idle"; [SerializeField] protected string Monster_Idle = "Monster_Idle";
[SerializeField] protected string Monster_GetDamage = "Monster_GetDamage"; [SerializeField] protected string Monster_GetDamage = "Monster_GetDamage";
@ -31,7 +39,7 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
public bool IsAggroed { get; protected set; } public bool IsAggroed { get; protected set; }
[Header("AI 설정 (공격 후 휴식)")] [Header("AI 설정")]
[SerializeField] protected float attackRestDuration = 1.5f; [SerializeField] protected float attackRestDuration = 1.5f;
protected bool isResting; protected bool isResting;
@ -43,8 +51,9 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
[SerializeField] protected ParticleSystem hitEffect; [SerializeField] protected ParticleSystem hitEffect;
[SerializeField] protected Transform impactSpawnPoint; [SerializeField] protected Transform impactSpawnPoint;
[Header("=== 전투(무기) 설정 ===")] // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[SerializeField] private MonsterWeapon myWeapon; // 생명주기
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
protected virtual void Awake() protected virtual void Awake()
{ {
@ -63,6 +72,11 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
if (MobUpdateManager.Instance != null) MobUpdateManager.Instance.RegisterMob(this); if (MobUpdateManager.Instance != null) MobUpdateManager.Instance.RegisterMob(this);
} }
protected virtual void OnDisable()
{
if (MobUpdateManager.Instance != null) MobUpdateManager.Instance.UnregisterMob(this);
}
public void ResetStats() public void ResetStats()
{ {
isDead = false; isDead = false;
@ -73,20 +87,20 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
Collider col = GetComponent<Collider>(); Collider col = GetComponent<Collider>();
if (col != null) col.enabled = true; if (col != null) col.enabled = true;
// ⭐ 여기서 몬스터의 힘(attackDamage)을 무기에 보냄 OnResetStats();
if (myWeapon != null)
{
myWeapon.SetDamage(attackDamage);
}
} }
protected virtual void OnDisable() // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
{ // 추상 메서드 (자식이 반드시 구현)
if (MobUpdateManager.Instance != null) MobUpdateManager.Instance.UnregisterMob(this); // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
}
protected virtual void Init() { } protected virtual void Init() { }
protected abstract void ExecuteAILogic(); protected abstract void ExecuteAILogic();
protected virtual void OnResetStats() { }
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 공통 기능
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
public virtual void Reactivate() public virtual void Reactivate()
{ {
@ -123,11 +137,26 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
protected void StopMovement() protected void StopMovement()
{ {
if (agent != null && agent.isOnNavMesh) { agent.isStopped = true; agent.velocity = Vector3.zero; } if (agent != null && agent.isOnNavMesh)
if (animator != null) { animator.SetFloat("Speed", 0f); animator.Play(Monster_Idle); } {
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) public virtual void OnDamaged(float damage)
{ {
@ -146,7 +175,7 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
isResting = false; isResting = false;
StopAllCoroutines(); StopAllCoroutines();
if (myWeapon != null) myWeapon.DisableHitBox(); OnStartHit();
if (agent && agent.isOnNavMesh) if (agent && agent.isOnNavMesh)
{ {
@ -159,26 +188,7 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
if (hitSound) audioSource.PlayOneShot(hitSound); if (hitSound) audioSource.PlayOneShot(hitSound);
} }
public virtual void OnAttackStart() protected virtual void OnStartHit() { }
{
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;
}
public virtual void OnHitEnd() public virtual void OnHitEnd()
{ {
@ -192,7 +202,7 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
isDead = true; isDead = true;
IsAggroed = false; IsAggroed = false;
if (myWeapon != null) myWeapon.DisableHitBox(); OnDie();
OnMonsterKilled?.Invoke(expReward); OnMonsterKilled?.Invoke(expReward);
Collider col = GetComponent<Collider>(); Collider col = GetComponent<Collider>();
@ -209,6 +219,46 @@ public abstract class MonsterClass : MonoBehaviour, IDamageable
Invoke("ReturnToPool", 1.5f); Invoke("ReturnToPool", 1.5f);
} }
protected virtual void OnDie() { }
public bool IsDead => isDead; public bool IsDead => isDead;
protected void ReturnToPool() => gameObject.SetActive(false); 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;
}
} }

View File

@ -1,9 +1,13 @@
using UnityEngine; using UnityEngine;
using UnityEngine.AI; 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 attackRange = 2f;
[SerializeField] private float attackDelay = 1.5f; [SerializeField] private float attackDelay = 1.5f;
@ -24,20 +28,39 @@ public class NormalMonster : MonsterClass
private int attackIndex; private int attackIndex;
private bool isPlayerInZone; private bool isPlayerInZone;
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 초기화
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
protected override void Init() protected override void Init()
{ {
if (agent != null) agent.stoppingDistance = attackRange - 0.4f; if (agent != null) agent.stoppingDistance = attackRange - 0.4f;
if (animator != null) animator.applyRootMotion = false; if (animator != null) animator.applyRootMotion = false;
} }
protected override void OnResetStats()
{
// 무기에 데미지 설정
if (myWeapon != null)
{
myWeapon.SetDamage(attackDamage);
}
}
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// AI 로직
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
protected override void ExecuteAILogic() protected override void ExecuteAILogic()
{ {
// 공격 중(isAttacking)이면 AI 생각 멈춤 -> 부들부들 방지!
if (isHit || isAttacking || isResting) return; if (isHit || isAttacking || isResting) return;
float distance = Vector3.Distance(transform.position, playerTransform.position); 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(); UpdateMovementAnimation();
} }
@ -45,7 +68,9 @@ public class NormalMonster : MonsterClass
void HandlePlayerTarget() void HandlePlayerTarget()
{ {
float distance = Vector3.Distance(transform.position, playerTransform.position); float distance = Vector3.Distance(transform.position, playerTransform.position);
if (distance <= attackRange - stopBuffer) TryAttack();
if (distance <= attackRange - stopBuffer)
TryAttack();
else if (Time.time >= nextRepathTime) else if (Time.time >= nextRepathTime)
{ {
if (agent.isOnNavMesh) agent.SetDestination(playerTransform.position); if (agent.isOnNavMesh) agent.SetDestination(playerTransform.position);
@ -61,11 +86,8 @@ public class NormalMonster : MonsterClass
string attackName = attackAnimations[attackIndex]; string attackName = attackAnimations[attackIndex];
attackIndex = (attackIndex + 1) % attackAnimations.Length; attackIndex = (attackIndex + 1) % attackAnimations.Length;
// ⭐ [핵심 수정] 애니메이션 이벤트 기다리지 말고, 즉시 "공격 상태"로 전환!
// 이걸 해야 AI가 이동하려는 시도를 멈춥니다.
isAttacking = true; isAttacking = true;
// 이동 멈춤 (미끄러짐 방지)
if (agent.isOnNavMesh) if (agent.isOnNavMesh)
{ {
agent.isStopped = true; agent.isStopped = true;
@ -78,19 +100,79 @@ public class NormalMonster : MonsterClass
void UpdateMovementAnimation() void UpdateMovementAnimation()
{ {
if (isAttacking || isHit || isResting) return; 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() void Patrol()
{ {
if (Time.time < nextPatrolTime) return; 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 (NavMesh.SamplePosition(randomPoint, out NavMeshHit hit, 3f, NavMesh.AllAreas))
if (agent.isOnNavMesh) agent.SetDestination(hit.position); if (agent.isOnNavMesh) agent.SetDestination(hit.position);
nextPatrolTime = Time.time + patrolInterval; 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;
}
} }

View 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);
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e2c31bd36273f1f4ab74fc1d65b76e1c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View 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;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 0e6d46f9fafc5dc4881b4fedd7bd689f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: