From 142933c5a560bb3a3944f2d53da0b2152ecba5d1 Mon Sep 17 00:00:00 2001 From: NTG_Lenovo Date: Tue, 17 Oct 2023 16:31:10 +0900 Subject: [PATCH] =?UTF-8?q?#34=20Crewmate=20=EC=97=B0=EB=8F=99=20=EC=9E=91?= =?UTF-8?q?=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/01.Scenes/03.Stage_Test.unity | 765 +++++++++++++++++- .../Task/Enemy/Action/MoveTarget.cs | 24 +- .../02.Scripts/Character/BaseCharacter.cs | 8 + .../02.Scripts/Character/Crewmate/Crewmate.cs | 369 ++++++++- .../Character/Crewmate/Type/SkullKing.cs | 33 + .../Character/Crewmate/Type/SkullKing.cs.meta | 11 + .../Character/Crewmate/Type/TenTen.cs | 24 +- .../02.Scripts/Character/Enemy/Enemy.cs | 4 +- .../Character/Player/Type/InIslandPlayer.cs | 120 ++- BlueWater/Assets/02.Scripts/GameManager.cs | 34 +- .../Assets/02.Scripts/SpawnController.cs | 51 +- .../Assets/02.Scripts/Utility/GlobalValue.cs | 2 +- .../Characters/Enemies/RedOrc1.prefab | 2 +- .../Characters/Enemies/RedOrc2.prefab | 2 +- .../Characters/Enemies/RedOrc3.prefab | 2 +- .../Characters/Enemies/RedOrc4.prefab | 2 +- .../Characters/Enemies/RedOrc5.prefab | 2 +- .../Characters/Enemies/RedOrc6.prefab | 2 +- .../Characters/Enemies/RedOrc7.prefab | 2 +- .../Characters/Enemies/RedOrc8.prefab | 2 +- .../Characters/Players/Skull_King.prefab | 2 +- .../Characters/Players/TenTen.prefab | 2 +- .../Characters/Players/Viking.prefab | 2 +- .../09.BehaviorTree/Enemy/Crewmate.asset | 68 ++ .../09.BehaviorTree/Enemy/Crewmate.asset.meta | 8 + .../Enemy/InIslandPlayer.asset | 10 +- .../Assets/09.BehaviorTree/Enemy/Minion.asset | 10 +- .../Materials/marker.mat | 2 +- BlueWater/ProjectSettings/TagManager.asset | 2 +- 29 files changed, 1481 insertions(+), 86 deletions(-) create mode 100644 BlueWater/Assets/02.Scripts/Character/Crewmate/Type/SkullKing.cs create mode 100644 BlueWater/Assets/02.Scripts/Character/Crewmate/Type/SkullKing.cs.meta create mode 100644 BlueWater/Assets/09.BehaviorTree/Enemy/Crewmate.asset create mode 100644 BlueWater/Assets/09.BehaviorTree/Enemy/Crewmate.asset.meta diff --git a/BlueWater/Assets/01.Scenes/03.Stage_Test.unity b/BlueWater/Assets/01.Scenes/03.Stage_Test.unity index 803acbe6b..cf90dd56f 100644 --- a/BlueWater/Assets/01.Scenes/03.Stage_Test.unity +++ b/BlueWater/Assets/01.Scenes/03.Stage_Test.unity @@ -1095,6 +1095,336 @@ GameObject: type: 3} m_PrefabInstance: {fileID: 1247914565} m_PrefabAsset: {fileID: 0} +--- !u!1001 &302959422 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 392992923} + m_Modifications: + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7671700086832248929, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_Name + value: Skull_King + objectReference: {fileID: 0} + - target: {fileID: 7671700086832248929, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_Layer + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 7671700086832248929, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8923461577612787898, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: m_WalkableMask + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8923461577612787898, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + propertyPath: avoidancePriority + value: 20 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 7671700086832248929, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + insertIndex: -1 + addedObject: {fileID: 302959429} + - targetCorrespondingSourceObject: {fileID: 7671700086832248929, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + insertIndex: -1 + addedObject: {fileID: 302959428} + - targetCorrespondingSourceObject: {fileID: 7671700086832248929, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + insertIndex: -1 + addedObject: {fileID: 302959427} + - targetCorrespondingSourceObject: {fileID: 6636941150029231060, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + insertIndex: -1 + addedObject: {fileID: 302959426} + m_SourcePrefab: {fileID: 100100000, guid: 29ca6449d50d08140a003863be5291b1, type: 3} +--- !u!224 &302959423 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4980758164501340593, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + m_PrefabInstance: {fileID: 302959422} + m_PrefabAsset: {fileID: 0} +--- !u!1 &302959424 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6636941150029231060, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + m_PrefabInstance: {fileID: 302959422} + m_PrefabAsset: {fileID: 0} +--- !u!1 &302959425 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7671700086832248929, guid: 29ca6449d50d08140a003863be5291b1, + type: 3} + m_PrefabInstance: {fileID: 302959422} + m_PrefabAsset: {fileID: 0} +--- !u!114 &302959426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 302959424} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 09ed14b0db9527c488698baff3a23352, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &302959427 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 302959425} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 39ef23249eac2d342b0826225548d5be, type: 3} + m_Name: + m_EditorClassIdentifier: + isDrawGizmos: 1 + isDrawViewRange: 1 + isDrawDefenseRange: 1 + isDrawTargetRange: 1 + k__BackingField: 100 + k__BackingField: 0 + k__BackingField: 5 + k__BackingField: 10 + k__BackingField: 1 + k__BackingField: 1.5 + k__BackingField: 20 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: {x: 0, y: 0, z: 0} + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 + beAttacked: 0 + isAttacking: 0 + k__BackingField: 15 + k__BackingField: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + k__BackingField: {fileID: 0} + k__BackingField: + serializedVersion: 2 + m_Bits: 0 +--- !u!114 &302959428 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 302959425} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Actions: {fileID: 0} + m_NotificationBehavior: 0 + m_UIInputModule: {fileID: 0} + m_DeviceLostEvent: + m_PersistentCalls: + m_Calls: [] + m_DeviceRegainedEvent: + m_PersistentCalls: + m_Calls: [] + m_ControlsChangedEvent: + m_PersistentCalls: + m_Calls: [] + m_ActionEvents: [] + m_NeverAutoSwitchControlSchemes: 0 + m_DefaultControlScheme: + m_DefaultActionMap: + m_SplitScreenIndex: -1 + m_Camera: {fileID: 0} +--- !u!114 &302959429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 302959425} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8d7b55c7ecdb49a4a89fa5e6f9022861, type: 3} + m_Name: + m_EditorClassIdentifier: + startWhenEnabled: 1 + asynchronousLoad: 0 + pauseWhenDisabled: 0 + restartWhenComplete: 0 + logTaskChanges: 0 + group: 0 + resetValuesOnRestart: 0 + externalBehavior: {fileID: 11400000, guid: 761de4bcb599be64c9754c8cccf70452, type: 2} + mBehaviorSource: + behaviorName: Behavior + behaviorDescription: + mTaskData: + types: [] + parentIndex: + startIndex: + variableStartIndex: + JSONSerialization: '{"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true,"PropertyMapping":"UnityEngine.RectTransform/gameObject","PropertyMappingOwner":0},{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"AnimatorObj","IsShared":true,"GameObjectmValue":1},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"MyCollider","IsShared":true,"PropertyMapping":"BlueWaterProject.SkullKing/MyCollider","PropertyMappingOwner":2},{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"CurrentHp","IsShared":true,"PropertyMapping":"BlueWaterProject.SkullKing/CurrentHp","PropertyMappingOwner":3,"SinglemValue":0},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true,"PropertyMapping":"BlueWaterProject.SkullKing/Target","PropertyMappingOwner":4},{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"AttackPos","IsShared":true,"Vector3mValue":"(0,0,0)"},{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"PropertyMapping":"BlueWaterProject.SkullKing/DefensePos","PropertyMappingOwner":5,"Vector3mValue":"(0,0,0)"},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"PropertyMapping":"BlueWaterProject.SkullKing/IsCombated","PropertyMappingOwner":6,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"BeAttackedInIdle","IsShared":true,"PropertyMapping":"BlueWaterProject.SkullKing/BeAttackedInIdle","PropertyMappingOwner":7,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"UseRigidbody","IsShared":true,"PropertyMapping":"BlueWaterProject.SkullKing/UseRigidbody","PropertyMappingOwner":8,"BooleanmValue":false}]}' + fieldSerializationData: + typeName: [] + fieldNameHash: + startIndex: + dataPosition: + unityObjects: + - {fileID: 302959425} + - {fileID: 302959424} + - {fileID: 302959425} + - {fileID: 302959425} + - {fileID: 302959425} + - {fileID: 302959425} + - {fileID: 302959425} + - {fileID: 302959425} + - {fileID: 302959425} + byteData: + byteDataArray: + Version: 1.7.7 + gizmoViewMode: 2 + showBehaviorDesignerGizmo: 1 --- !u!1 &334724472 GameObject: m_ObjectHideFlags: 0 @@ -1575,19 +1905,57 @@ Transform: type: 3} m_PrefabInstance: {fileID: 392014244} m_PrefabAsset: {fileID: 0} +--- !u!1 &392992922 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 392992923} + m_Layer: 0 + m_Name: Crewmates + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &392992923 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 392992922} + 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: 1362034955} + - {fileID: 302959423} + m_Father: {fileID: 971043561} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &418278335 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 971043561} + m_TransformParent: {fileID: 784283202} m_Modifications: - target: {fileID: -23924663176670272, guid: 5d3f02c24a243a044bbddafc1652ee67, type: 3} propertyPath: m_WalkableMask value: 1 objectReference: {fileID: 0} + - target: {fileID: -23924663176670272, guid: 5d3f02c24a243a044bbddafc1652ee67, + type: 3} + propertyPath: avoidancePriority + value: 10 + objectReference: {fileID: 0} - target: {fileID: 895707786071648807, guid: 5d3f02c24a243a044bbddafc1652ee67, type: 3} propertyPath: m_Pivot.x @@ -1643,6 +2011,21 @@ PrefabInstance: propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 895707786071648807, guid: 5d3f02c24a243a044bbddafc1652ee67, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 895707786071648807, guid: 5d3f02c24a243a044bbddafc1652ee67, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 895707786071648807, guid: 5d3f02c24a243a044bbddafc1652ee67, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} - target: {fileID: 895707786071648807, guid: 5d3f02c24a243a044bbddafc1652ee67, type: 3} propertyPath: m_AnchoredPosition.x @@ -1727,7 +2110,7 @@ MonoBehaviour: isDrawViewRange: 1 isDrawDefenseRange: 1 isDrawTargetRange: 1 - k__BackingField: 100 + k__BackingField: 250 k__BackingField: 0 k__BackingField: 5 k__BackingField: 10 @@ -1746,6 +2129,8 @@ MonoBehaviour: k__BackingField: 0 k__BackingField: 0 beAttacked: 0 + isAttacking: 0 + k__BackingField: [] k__BackingField: 15 k__BackingField: - {fileID: 0} @@ -3362,6 +3747,38 @@ Transform: type: 3} m_PrefabInstance: {fileID: 769581785} m_PrefabAsset: {fileID: 0} +--- !u!1 &784283201 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 784283202} + m_Layer: 0 + m_Name: InIslandPlayer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &784283202 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 784283201} + 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: 418278337} + m_Father: {fileID: 971043561} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &785770880 PrefabInstance: m_ObjectHideFlags: 0 @@ -4499,7 +4916,10 @@ MonoBehaviour: boats: [] k__BackingField: {fileID: -944628639613478452, guid: 0acb404847404484198cbf94e6929af2, type: 3} - k__BackingField: {fileID: 418278336} + k__BackingField: {fileID: 418278336} + k__BackingField: + - {fileID: 1362034959} + - {fileID: 302959427} slowSpeed: 0.1 k__BackingField: 0 k__BackingField: 0 @@ -4518,7 +4938,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 418278337} + - {fileID: 784283202} + - {fileID: 392992923} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &982629705 @@ -6336,6 +6757,336 @@ GameObject: type: 3} m_PrefabInstance: {fileID: 1460453430} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1362034954 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 392992923} + m_Modifications: + - target: {fileID: -8229315072375989455, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_WalkableMask + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8229315072375989455, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: avoidancePriority + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7216996033527228451, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_Name + value: TenTen + objectReference: {fileID: 0} + - target: {fileID: 7216996033527228451, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_Layer + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 7216996033527228451, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 7216996033527228451, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + insertIndex: -1 + addedObject: {fileID: 1362034961} + - targetCorrespondingSourceObject: {fileID: 7216996033527228451, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + insertIndex: -1 + addedObject: {fileID: 1362034960} + - targetCorrespondingSourceObject: {fileID: 7216996033527228451, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + insertIndex: -1 + addedObject: {fileID: 1362034959} + - targetCorrespondingSourceObject: {fileID: 9058067038677077583, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + insertIndex: -1 + addedObject: {fileID: 1362034958} + m_SourcePrefab: {fileID: 100100000, guid: f231da17ce5b9c84f91bf8ed73c2868e, type: 3} +--- !u!224 &1362034955 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3406431702509732489, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + m_PrefabInstance: {fileID: 1362034954} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1362034956 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9058067038677077583, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + m_PrefabInstance: {fileID: 1362034954} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1362034957 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7216996033527228451, guid: f231da17ce5b9c84f91bf8ed73c2868e, + type: 3} + m_PrefabInstance: {fileID: 1362034954} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1362034958 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1362034956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 09ed14b0db9527c488698baff3a23352, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1362034959 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1362034957} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ecc1555c44beedd4aae1210da5fbe25a, type: 3} + m_Name: + m_EditorClassIdentifier: + isDrawGizmos: 1 + isDrawViewRange: 1 + isDrawDefenseRange: 1 + isDrawTargetRange: 1 + k__BackingField: 100 + k__BackingField: 0 + k__BackingField: 5 + k__BackingField: 5 + k__BackingField: 1 + k__BackingField: 7 + k__BackingField: 20 + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: {x: 0, y: 0, z: 0} + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 + beAttacked: 0 + isAttacking: 0 + k__BackingField: 15 + k__BackingField: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + k__BackingField: {fileID: 0} + k__BackingField: + serializedVersion: 2 + m_Bits: 0 +--- !u!114 &1362034960 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1362034957} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Actions: {fileID: 0} + m_NotificationBehavior: 0 + m_UIInputModule: {fileID: 0} + m_DeviceLostEvent: + m_PersistentCalls: + m_Calls: [] + m_DeviceRegainedEvent: + m_PersistentCalls: + m_Calls: [] + m_ControlsChangedEvent: + m_PersistentCalls: + m_Calls: [] + m_ActionEvents: [] + m_NeverAutoSwitchControlSchemes: 0 + m_DefaultControlScheme: + m_DefaultActionMap: + m_SplitScreenIndex: -1 + m_Camera: {fileID: 0} +--- !u!114 &1362034961 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1362034957} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8d7b55c7ecdb49a4a89fa5e6f9022861, type: 3} + m_Name: + m_EditorClassIdentifier: + startWhenEnabled: 1 + asynchronousLoad: 0 + pauseWhenDisabled: 0 + restartWhenComplete: 0 + logTaskChanges: 0 + group: 0 + resetValuesOnRestart: 0 + externalBehavior: {fileID: 11400000, guid: 761de4bcb599be64c9754c8cccf70452, type: 2} + mBehaviorSource: + behaviorName: Behavior + behaviorDescription: + mTaskData: + types: [] + parentIndex: + startIndex: + variableStartIndex: + JSONSerialization: '{"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true,"PropertyMapping":"UnityEngine.RectTransform/gameObject","PropertyMappingOwner":0},{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"AnimatorObj","IsShared":true,"GameObjectmValue":1},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"MyCollider","IsShared":true,"PropertyMapping":"BlueWaterProject.TenTen/MyCollider","PropertyMappingOwner":2},{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"CurrentHp","IsShared":true,"PropertyMapping":"BlueWaterProject.TenTen/CurrentHp","PropertyMappingOwner":3,"SinglemValue":0},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true,"PropertyMapping":"BlueWaterProject.TenTen/Target","PropertyMappingOwner":4},{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"AttackPos","IsShared":true,"Vector3mValue":"(0,0,0)"},{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"PropertyMapping":"BlueWaterProject.TenTen/DefensePos","PropertyMappingOwner":5,"Vector3mValue":"(0,0,0)"},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"PropertyMapping":"BlueWaterProject.TenTen/IsCombated","PropertyMappingOwner":6,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"BeAttackedInIdle","IsShared":true,"PropertyMapping":"BlueWaterProject.TenTen/BeAttackedInIdle","PropertyMappingOwner":7,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"UseRigidbody","IsShared":true,"PropertyMapping":"BlueWaterProject.TenTen/UseRigidbody","PropertyMappingOwner":8,"BooleanmValue":false}]}' + fieldSerializationData: + typeName: [] + fieldNameHash: + startIndex: + dataPosition: + unityObjects: + - {fileID: 1362034957} + - {fileID: 1362034956} + - {fileID: 1362034957} + - {fileID: 1362034957} + - {fileID: 1362034957} + - {fileID: 1362034957} + - {fileID: 1362034957} + - {fileID: 1362034957} + - {fileID: 1362034957} + byteData: + byteDataArray: + Version: 1.7.7 + gizmoViewMode: 2 + showBehaviorDesignerGizmo: 1 --- !u!1001 &1375744721 PrefabInstance: m_ObjectHideFlags: 0 @@ -8079,6 +8830,12 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 551a6add4224f7643ba9b247325d9049, type: 3} m_Name: m_EditorClassIdentifier: + checkRadius: 3 + instantiationRadius: 1 + checkLayer: + serializedVersion: 2 + m_Bits: 67328 + crewmateIndex: 0 --- !u!4 &1805195289 Transform: m_ObjectHideFlags: 0 diff --git a/BlueWater/Assets/02.Scripts/Ai/NewBehaviorTree/Task/Enemy/Action/MoveTarget.cs b/BlueWater/Assets/02.Scripts/Ai/NewBehaviorTree/Task/Enemy/Action/MoveTarget.cs index 4d11349d5..8f14e76d6 100644 --- a/BlueWater/Assets/02.Scripts/Ai/NewBehaviorTree/Task/Enemy/Action/MoveTarget.cs +++ b/BlueWater/Assets/02.Scripts/Ai/NewBehaviorTree/Task/Enemy/Action/MoveTarget.cs @@ -18,6 +18,7 @@ namespace BlueWaterProject.BehaviorAsset.Enemy [SerializeField] private SharedVector3 movePos; [SerializeField] private bool randomMove; [SerializeField] private ESpeedType speedType; + [SerializeField] private EStopType stopType; [SerializeField] private bool isArrivedReturnSuccess = true; private Vector3 targetPos; @@ -44,7 +45,7 @@ namespace BlueWaterProject.BehaviorAsset.Enemy destinationPos = hit.position; targetPos = destinationPos; - iAiView.MoveTarget(targetPos, speedType, GlobalValue.MINIMUM_STOP_DISTANCE); + iAiView.MoveTarget(targetPos, speedType, GetStopDistance(stopType)); return; } @@ -59,7 +60,7 @@ namespace BlueWaterProject.BehaviorAsset.Enemy } targetPos = target?.Value != null ? target.Value.transform.position : movePos.Value; - iAiView.MoveTarget(targetPos, speedType, iAiView.AtkRange); + iAiView.MoveTarget(targetPos, speedType, GetStopDistance(stopType)); } public override TaskStatus OnUpdate() @@ -69,8 +70,25 @@ namespace BlueWaterProject.BehaviorAsset.Enemy if (!iAiView.Agent.pathPending && iAiView.Agent.remainingDistance <= iAiView.Agent.stoppingDistance) return TaskStatus.Success; - iAiView.MoveTarget(targetPos, speedType, iAiView.AtkRange); + iAiView.MoveTarget(targetPos, speedType, GetStopDistance(stopType)); return TaskStatus.Running; } + + private float GetStopDistance(EStopType eStopType) + { + switch (eStopType) + { + case EStopType.NONE: + return float.MaxValue; + case EStopType.MINIMUM: + return GlobalValue.MINIMUM_STOP_DISTANCE; + case EStopType.MAXIMUM: + return GlobalValue.MAXIMUM_STOP_DISTANCE; + case EStopType.ATK_RANGE: + return iAiView.AtkRange; + default: + throw new ArgumentOutOfRangeException(nameof(eStopType), eStopType, null); + } + } } } \ No newline at end of file diff --git a/BlueWater/Assets/02.Scripts/Character/BaseCharacter.cs b/BlueWater/Assets/02.Scripts/Character/BaseCharacter.cs index 9f69f0ad5..5d8761a3e 100644 --- a/BlueWater/Assets/02.Scripts/Character/BaseCharacter.cs +++ b/BlueWater/Assets/02.Scripts/Character/BaseCharacter.cs @@ -20,6 +20,14 @@ namespace BlueWaterProject FAST } + public enum EStopType + { + NONE = -1, + MINIMUM, + MAXIMUM, + ATK_RANGE + } + public class BaseCharacter : MonoBehaviour { #region Built-in Methods diff --git a/BlueWater/Assets/02.Scripts/Character/Crewmate/Crewmate.cs b/BlueWater/Assets/02.Scripts/Character/Crewmate/Crewmate.cs index 536ec64cd..d7892efc9 100644 --- a/BlueWater/Assets/02.Scripts/Character/Crewmate/Crewmate.cs +++ b/BlueWater/Assets/02.Scripts/Character/Crewmate/Crewmate.cs @@ -1,15 +1,378 @@ +using System; +using System.Collections; +using Sirenix.OdinInspector; using UnityEngine; +using UnityEngine.AI; using UnityEngine.InputSystem; // ReSharper disable once CheckNamespace namespace BlueWaterProject { [RequireComponent(typeof(PlayerInput))] - public class Crewmate : BaseCharacter, IDamageable + public abstract class Crewmate : BaseCharacter, IDamageable, IAnimatorBridge, IAiView, INormalAttack { - public virtual void TakeDamage(float attackerPower, float attackerShieldPenetrationRate = default, Vector3? attackPos = null) + #region Properties and variables + + [Title("DrawGizmos")] + [Tooltip("전체 Gizmos 그리기 여부")] + [SerializeField] private bool isDrawGizmos = true; + + [ShowIf("@isDrawGizmos")] + [Tooltip("타겟 인식 범위 그리기 여부")] + [SerializeField] private bool isDrawViewRange = true; + + [ShowIf("@isDrawGizmos")] + [Tooltip("이동제한 범위 그리기 여부")] + [SerializeField] private bool isDrawDefenseRange = true; + + [ShowIf("@isDrawGizmos")] + [Tooltip("타겟과의 상태 그리기 여부\n빨간색 = 공격 범위 밖\n파란색 = 공격 범위 안")] + [SerializeField] private bool isDrawTargetRange = true; + + [field: Title("Stat")] + [field: Tooltip("최대 체력 설정")] + [field: SerializeField] public float MaxHp { get; private set; } = 100f; + + [field: Tooltip("현재 체력")] + [field: SerializeField] public float CurrentHp { get; private set; } + + [field: Tooltip("이동 속도 설정")] + [field: SerializeField] public float MoveSpd { get; private set; } = 5f; + + [field: Tooltip("공격력 설정")] + [field: SerializeField] public float Atk { get; private set; } = 10f; + + [field: Tooltip("공격 속도(다음 공격 주기)\nAtkCooldown = 2f (2초마다 1번 공격)")] + [field: SerializeField] public float AtkCooldown { get; private set; } = 1f; + + [field: Tooltip("공격 사거리 설정")] + [field: SerializeField] public float AtkRange { get; set; } = 1.5f; + + [field: Tooltip("이동 제한 범위 설정")] + [field: SerializeField] public float DefenseRange { get; private set; } = 20f; + + [field: Tooltip("Idle 상태에서 랜덤으로 이동 여부")] + [field: SerializeField] public bool IsRandomMove { get; set; } + + [field: ShowIf("@IsRandomMove")] + [field: Tooltip("Idle 상태에서 이동하는 범위 설정")] + [field: SerializeField] public float RandomMoveRange { get; set; } + + [field: Title("Data")] + [field: DisableIf("@true")] + [field: SerializeField] public Vector3 DefensePos { get; set; } + [field: DisableIf("@true")] + [field: SerializeField] public bool IsCombated { get; set; } + [field: DisableIf("@true")] + [field: SerializeField] public bool BeAttackedInIdle { get; set; } + [field: DisableIf("@true")] + [field: SerializeField] public bool UseRigidbody { get; set; } + [DisableIf("@true")] + [SerializeField] private bool beAttacked; + [DisableIf("@true")] + [SerializeField] protected bool isAttacking; + + protected bool usedNormalAttackCoroutine; + protected WaitForSeconds waitAtkCooldown; + + protected Rigidbody rb; + public Collider MyCollider { get; private set; } + protected Animator myAnimator; + public NavMeshAgent Agent { get; set; } + + // Hash + protected static readonly int RunStateHash = Animator.StringToHash("RunState"); + protected static readonly int AttackHash = Animator.StringToHash("Attack"); + protected static readonly int AttackStateHash = Animator.StringToHash("AttackState"); + protected static readonly int NormalStateHash = Animator.StringToHash("NormalState"); + + // Const + private static readonly WaitForSeconds BeAttackedWaitTime = new(0.3f); + + #endregion + + #region abstract + + protected abstract IEnumerator NormalAttackCoroutine(); + + #endregion + + #region Unity built-in methods + + protected override void Awake() { - throw new System.NotImplementedException(); + base.Awake(); + + rb = GetComponent(); + MyCollider = GetComponent(); + Agent = GetComponent(); + + myAnimator = transform.Find("UnitRoot")?.GetComponent(); + if (myAnimator == null) + { + print("UnitRoot를 찾을 수 없습니다."); + } } + + protected override void Start() + { + base.Start(); + + TargetLayer = LayerMask.GetMask("Enemy"); + + waitAtkCooldown = new WaitForSeconds(AtkCooldown); + Agent.updateRotation = false; + + SetAgentSpeed(ESpeedType.DEFAULT); + SetCurrentHp(MaxHp); + } + + protected override void Update() + { + base.Update(); + + if (GameManager.Inst.InIslandPlayer && GameManager.Inst.InIslandPlayer.UseRigidbody) + { + if (!UseRigidbody) + { + UseRigidbodyMovement(); + } + + if (!beAttacked) + { + myAnimator.SetFloat(RunStateHash, 0.5f); + } + } + else if (GameManager.Inst.InIslandPlayer && !GameManager.Inst.InIslandPlayer.UseRigidbody) + { + if (UseRigidbody) + { + UseAgentMovement(); + } + + if (Agent.velocity.x != 0 || Agent.velocity.z != 0) + { + myAnimator.SetFloat(RunStateHash, 0.5f); + } + else if (!beAttacked) + { + myAnimator.SetFloat(RunStateHash, 0f); + } + } + + var localScale = transform.localScale; + if (UseRigidbody) + { + var movement = GameManager.Inst.InIslandPlayer.Rb.velocity * (MoveSpd / GameManager.Inst.InIslandPlayer.MoveSpd); + rb.velocity = new Vector3(movement.x, 0, movement.z); + localScale.x = rb.velocity.x switch + { + > 0 => Mathf.Abs(localScale.x), + < 0 => -Mathf.Abs(localScale.x), + _ => localScale.x + }; + } + else + { + if (Agent.velocity.x != 0) + { + localScale.x = Agent.velocity.x switch + { + > 0 => Mathf.Abs(localScale.x), + < 0 => -Mathf.Abs(localScale.x), + _ => localScale.x + }; + } + else + { + if (Target) + { + var targetToDistanceX = Target.bounds.center.x - MyCollider.bounds.center.x; + localScale.x = targetToDistanceX switch + { + > 0 => Mathf.Abs(localScale.x), + < 0 => -Mathf.Abs(localScale.x), + _ => localScale.x + }; + } + } + } + + transform.localScale = localScale; + } + + #endregion + + #region Interfaces + + //IDamageable + public void TakeDamage(float attackerPower, float attackerShieldPenetrationRate = default, Vector3? attackPos = null) + { + IsCombated = true; + + var changeHp = Mathf.Max(CurrentHp - attackerPower, 0); + SetCurrentHp(changeHp); + + // 죽었는지 체크 + if (changeHp == 0f) + { + return; + } + + StartCoroutine(nameof(BeAttacked)); + } + + // IAnimatorBridge + public virtual void AttackTiming() + { + if (!Target) return; + + var myCenterPos = MyCollider.bounds.center; + var targetDir = (Target.bounds.center - myCenterPos).normalized; + + if (!Physics.Raycast(MyCollider.bounds.center, targetDir, out var hit, AtkRange, TargetLayer)) return; + + var iDamageable = hit.transform.GetComponent(); + iDamageable.TakeDamage(Atk); + } + + public void SetIsAttacking(int boolValue) => isAttacking = boolValue == 1; + + // IAiView + [field: Title("IAiView")] + [field: SerializeField] public float ViewRadius { get; set; } = 15f; + [field: SerializeField] public Collider[] Targets { get; set; } = new Collider[MAX_COLLIDERS]; + [field: SerializeField] public Collider Target { get; set; } + [field: SerializeField] public LayerMask TargetLayer { get; set; } + + private const int MAX_COLLIDERS = 30; + + public void FindNearestTargetInRange(bool targetIsTrigger = true) + { + Array.Clear(Targets, 0, MAX_COLLIDERS); + + var myCenterPos = MyCollider.bounds.center; + var numResults = Physics.OverlapSphereNonAlloc(myCenterPos, ViewRadius, Targets, TargetLayer, + targetIsTrigger ? QueryTriggerInteraction.Collide : QueryTriggerInteraction.Ignore); + + if (numResults <= 0) + { + SetTarget(null); + return; + } + + var nearestDistance = ViewRadius * ViewRadius; + Collider nearestTargetCollider = null; + + for (var i = 0; i < numResults; i++) + { + var distanceSqrToTarget = (myCenterPos - Targets[i].bounds.center).sqrMagnitude; + + if (distanceSqrToTarget >= nearestDistance) continue; + + nearestDistance = distanceSqrToTarget; + nearestTargetCollider = Targets[i]; + } + + SetTarget(nearestTargetCollider); + } + + public void SetTarget(Collider value) + { + Target = value; + + if (value != null) + { + IsCombated = true; + BeAttackedInIdle = false; + } + } + + public bool IsTargetWithinRange() + { + var attackInRange = Vector3.Distance(MyCollider.bounds.center, Target.bounds.center) <= AtkRange; + return attackInRange; + } + + public bool GoOutOfBounds() + { + var defensePosInRange = Vector3.Distance(transform.position, DefensePos) <= DefenseRange; + return !defensePosInRange; + } + + public void MoveTarget(Vector3 targetPos, ESpeedType speedType, float stopDistance) + { + if (Vector3.Distance(Agent.destination, targetPos) < 0.1f) return; + + SetAgentSpeed(speedType); + Agent.stoppingDistance = stopDistance; + Agent.isStopped = false; + Agent.SetDestination(targetPos); + } + + // INormalAttack + public void NormalAttack() + { + StartCoroutine(nameof(NormalAttackCoroutine)); + } + + public void StopNormalAttackCoroutine() => StopCoroutine(nameof(NormalAttackCoroutine)); + public bool GetUsedNormalAttackCoroutine() => usedNormalAttackCoroutine; + + #endregion + + #region Custom methods + + private void UseRigidbodyMovement() + { + UseRigidbody = true; + rb.isKinematic = false; + Agent.enabled = false; + } + + private void UseAgentMovement() + { + UseRigidbody = false; + rb.isKinematic = true; + Agent.enabled = true; + + if (Target) return; + + MoveTarget(GameManager.Inst.InIslandPlayer.transform.position, ESpeedType.DEFAULT, GlobalValue.MAXIMUM_STOP_DISTANCE); + } + + private IEnumerator BeAttacked() + { + beAttacked = true; + myAnimator.SetFloat(RunStateHash, 1f); + yield return BeAttackedWaitTime; + + beAttacked = false; + } + + private void SetAgentSpeed(ESpeedType speedType) + { + switch (speedType) + { + case ESpeedType.NONE: + print("speedType == NONE error"); + break; + case ESpeedType.DEFAULT: + Agent.speed = MoveSpd; + break; + case ESpeedType.SLOW: + Agent.speed = MoveSpd * 0.5f; + break; + case ESpeedType.FAST: + Agent.speed = MoveSpd * 2f; + break; + default: + throw new ArgumentOutOfRangeException(nameof(speedType), speedType, null); + } + } + + private void SetCurrentHp(float value) => CurrentHp = value; + + #endregion } } \ No newline at end of file diff --git a/BlueWater/Assets/02.Scripts/Character/Crewmate/Type/SkullKing.cs b/BlueWater/Assets/02.Scripts/Character/Crewmate/Type/SkullKing.cs new file mode 100644 index 000000000..836b8d8fc --- /dev/null +++ b/BlueWater/Assets/02.Scripts/Character/Crewmate/Type/SkullKing.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections; +using UnityEngine; + +// ReSharper disable once CheckNamespace +namespace BlueWaterProject +{ + [Serializable] + public class SkullKing : Crewmate + { + protected override IEnumerator NormalAttackCoroutine() + { + usedNormalAttackCoroutine = true; + + myAnimator.SetFloat(AttackStateHash, 0f); + myAnimator.SetFloat(NormalStateHash, 0f); + // Attack 애니메이션에 시작에 isAttacking = true, 끝날 때 isAttacking = false 이벤트 실행 + myAnimator.SetTrigger(AttackHash); + + var maxWaitTime = 0.5f; + var timer = 0f; + + while (isAttacking && timer < maxWaitTime) + { + timer += Time.deltaTime; + yield return null; + } + + yield return waitAtkCooldown; + usedNormalAttackCoroutine = false; + } + } +} diff --git a/BlueWater/Assets/02.Scripts/Character/Crewmate/Type/SkullKing.cs.meta b/BlueWater/Assets/02.Scripts/Character/Crewmate/Type/SkullKing.cs.meta new file mode 100644 index 000000000..4253d42cc --- /dev/null +++ b/BlueWater/Assets/02.Scripts/Character/Crewmate/Type/SkullKing.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 39ef23249eac2d342b0826225548d5be +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/BlueWater/Assets/02.Scripts/Character/Crewmate/Type/TenTen.cs b/BlueWater/Assets/02.Scripts/Character/Crewmate/Type/TenTen.cs index bdb5b4683..ddaf1a4fb 100644 --- a/BlueWater/Assets/02.Scripts/Character/Crewmate/Type/TenTen.cs +++ b/BlueWater/Assets/02.Scripts/Character/Crewmate/Type/TenTen.cs @@ -1,4 +1,6 @@ using System; +using System.Collections; +using UnityEngine; // ReSharper disable once CheckNamespace namespace BlueWaterProject @@ -6,6 +8,26 @@ namespace BlueWaterProject [Serializable] public class TenTen : Crewmate { - + protected override IEnumerator NormalAttackCoroutine() + { + usedNormalAttackCoroutine = true; + + myAnimator.SetFloat(AttackStateHash, 0f); + myAnimator.SetFloat(NormalStateHash, 1f); + // Attack 애니메이션에 시작에 isAttacking = true, 끝날 때 isAttacking = false 이벤트 실행 + myAnimator.SetTrigger(AttackHash); + + var maxWaitTime = 0.5f; + var timer = 0f; + + while (isAttacking && timer < maxWaitTime) + { + timer += Time.deltaTime; + yield return null; + } + + yield return waitAtkCooldown; + usedNormalAttackCoroutine = false; + } } } diff --git a/BlueWater/Assets/02.Scripts/Character/Enemy/Enemy.cs b/BlueWater/Assets/02.Scripts/Character/Enemy/Enemy.cs index 7eb9b03f2..21fb3d0aa 100644 --- a/BlueWater/Assets/02.Scripts/Character/Enemy/Enemy.cs +++ b/BlueWater/Assets/02.Scripts/Character/Enemy/Enemy.cs @@ -133,7 +133,7 @@ namespace BlueWaterProject throw new ArgumentOutOfRangeException(); } - if (isDrawRandomMoveRange) + if (isDrawRandomMoveRange && IsRandomMove) { Gizmos.color = Color.green; Gizmos.DrawWireSphere(defensePos, RandomMoveRange); @@ -203,7 +203,7 @@ namespace BlueWaterProject base.Start(); HelpLayer = LayerMask.GetMask("Enemy"); - TargetLayer = LayerMask.GetMask("Player"); + TargetLayer = LayerMask.GetMask("Player") | LayerMask.GetMask("Crewmate"); Agent.updateRotation = false; DefensePos = transform.position; diff --git a/BlueWater/Assets/02.Scripts/Character/Player/Type/InIslandPlayer.cs b/BlueWater/Assets/02.Scripts/Character/Player/Type/InIslandPlayer.cs index 6a8b498e6..52155e299 100644 --- a/BlueWater/Assets/02.Scripts/Character/Player/Type/InIslandPlayer.cs +++ b/BlueWater/Assets/02.Scripts/Character/Player/Type/InIslandPlayer.cs @@ -1,5 +1,6 @@ using System; using System.Collections; +using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.AI; @@ -71,13 +72,18 @@ namespace BlueWaterProject [field: SerializeField] public bool BeAttackedInIdle { get; set; } [field: DisableIf("@true")] [field: SerializeField] public bool UseRigidbody { get; set; } + [DisableIf("@true")] [SerializeField] private bool beAttacked; + [DisableIf("@true")] + [SerializeField] private bool isAttacking; + + [field: Title("Crewmate Data")] + [field: SerializeField] public List CrewmateList { get; set; } - private bool isAttacking; private bool usedNormalAttackCoroutine; private WaitForSeconds waitAtkCooldown; - private Rigidbody rb; + public Rigidbody Rb { get; private set; } public Collider MyCollider { get; private set; } private Animator myAnimator; public NavMeshAgent Agent { get; set; } @@ -94,12 +100,50 @@ namespace BlueWaterProject #endregion #region Unity built-in methods + + protected override void OnDrawGizmosSelected() + { + base.OnDrawGizmosSelected(); + + if (!isDrawGizmos) return; + + Vector3 myCenterPos; + Vector3 defensePos; + if (Application.isPlaying) + { + myCenterPos = MyCollider.bounds.center; + defensePos = DefensePos; + } + else + { + myCenterPos = GetComponent().bounds.center; + defensePos = transform.position; + } + + if (isDrawDefenseRange) + { + Gizmos.color = Color.blue; + Gizmos.DrawWireSphere(defensePos, DefenseRange); + } + + if (isDrawViewRange) + { + Gizmos.color = Color.red; + Gizmos.DrawWireSphere(myCenterPos, ViewRadius); + } + + if (!isDrawTargetRange || !Target) return; + + var targetToDistance = Vector3.Distance(myCenterPos, Target.bounds.center); + Gizmos.color = targetToDistance <= AtkRange ? Color.blue : Color.red; + Gizmos.DrawLine(myCenterPos, Target.bounds.center); + } protected override void Awake() { base.Awake(); - rb = GetComponent(); + Rb = GetComponent(); MyCollider = GetComponent(); Agent = GetComponent(); @@ -159,14 +203,47 @@ namespace BlueWaterProject } } + var localScale = transform.localScale; if (UseRigidbody) { var localMovement = new Vector3(movementInput.x, 0, movementInput.y); var worldDirection = transform.TransformDirection(localMovement); var movement = worldDirection * MoveSpd; - rb.velocity = new Vector3(movement.x, 0, movement.z); + Rb.velocity = new Vector3(movement.x, 0, movement.z); + localScale.x = Rb.velocity.x switch + { + > 0 => Mathf.Abs(localScale.x), + < 0 => -Mathf.Abs(localScale.x), + _ => localScale.x + }; } + else + { + if (Agent.velocity.x != 0) + { + localScale.x = Agent.velocity.x switch + { + > 0 => Mathf.Abs(localScale.x), + < 0 => -Mathf.Abs(localScale.x), + _ => localScale.x + }; + } + else + { + if (Target) + { + var targetToDistanceX = Target.bounds.center.x - MyCollider.bounds.center.x; + localScale.x = targetToDistanceX switch + { + > 0 => Mathf.Abs(localScale.x), + < 0 => -Mathf.Abs(localScale.x), + _ => localScale.x + }; + } + } + } + transform.localScale = localScale; } #endregion @@ -176,6 +253,8 @@ namespace BlueWaterProject // IDamageable public override void TakeDamage(float attackerPower, float attackerShieldPenetrationRate = default, Vector3? attackPos = null) { + IsCombated = true; + var changeHp = Mathf.Max(CurrentHp - attackerPower, 0); SetCurrentHp(changeHp); @@ -223,6 +302,7 @@ namespace BlueWaterProject if (numResults <= 0) { + SetTarget(null); return; } @@ -239,7 +319,7 @@ namespace BlueWaterProject nearestTargetCollider = Targets[i]; } - Target = nearestTargetCollider; + SetTarget(nearestTargetCollider); } public void SetTarget(Collider value) @@ -288,17 +368,17 @@ namespace BlueWaterProject #region Player input system - public override void OnMove(InputValue value) - { - base.OnMove(value); - - // 2D 스프라이트 뒤집기 - if (Mathf.Abs(movementInput.x) <= 0.01f) return; - - var localScale = transform.localScale; - localScale.x = movementInput.x > 0 ? Mathf.Abs(localScale.x) : -Mathf.Abs(localScale.x); - transform.localScale = localScale; - } + // public override void OnMove(InputValue value) + // { + // base.OnMove(value); + // + // // 2D 스프라이트 뒤집기 + // if (Mathf.Abs(movementInput.x) <= 0.01f) return; + // + // var localScale = transform.localScale; + // localScale.x = movementInput.x > 0 ? Mathf.Abs(localScale.x) : -Mathf.Abs(localScale.x); + // transform.localScale = localScale; + // } #endregion @@ -329,15 +409,19 @@ namespace BlueWaterProject private void UseRigidbodyMovement() { UseRigidbody = true; - rb.isKinematic = false; + Rb.isKinematic = false; Agent.enabled = false; } private void UseAgentMovement() { DefensePos = transform.position; + foreach (var crewmate in CrewmateList) + { + crewmate.DefensePos = DefensePos; + } UseRigidbody = false; - rb.isKinematic = true; + Rb.isKinematic = true; Agent.enabled = true; } diff --git a/BlueWater/Assets/02.Scripts/GameManager.cs b/BlueWater/Assets/02.Scripts/GameManager.cs index 9bc953843..f492283a9 100644 --- a/BlueWater/Assets/02.Scripts/GameManager.cs +++ b/BlueWater/Assets/02.Scripts/GameManager.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using BlueWaterProject; using Sirenix.OdinInspector; +using Unity.VisualScripting; using UnityEngine; using UnityEngine.InputSystem; @@ -14,10 +15,12 @@ namespace BlueWaterProject public CameraController CameraController { get; private set; } public ShipPlayer shipPlayer; public List boats = new(10); - [Required("BlueWater Player Input Action을 넣어주세요.")] + [field: Required("BlueWater Player Input Action을 넣어주세요.")] [field: SerializeField] public InputActionAsset PlayerAction { get; private set; } - [Required("Viking Prefab을 넣어주세요.")] - [field: SerializeField] public GameObject InIslandPlayer { get; private set; } + public InIslandPlayer InIslandPlayer { get; set; } + [field: Required("Viking Prefab을 넣어주세요.")] + [field: SerializeField] public GameObject InIslandPlayerPrefab { get; set; } + [field: SerializeField] public List CrewmatePrefabList { get; set; } [Range(0f, 1f)] [SerializeField] private float slowSpeed = 0.1f; @@ -44,31 +47,6 @@ namespace BlueWaterProject { Cursor.lockState = CursorLockMode.Confined; } - - public void SpawnInIslandPlayer(Vector3 spawnPosition) - { - var islandPlayer = Instantiate(InIslandPlayer, spawnPosition, Quaternion.identity); - islandPlayer.name = IN_ISLAND_PLAYER_NAME; - - var playerInput = islandPlayer.GetComponent(); - if (playerInput == null) - { - playerInput = islandPlayer.AddComponent(); - } - playerInput.actions = PlayerAction; - - var desiredActionMap = playerInput.actions.FindActionMap(IN_ISLAND_PLAYER_NAME); - if (desiredActionMap == null) - { - print($"Action map named '{IN_ISLAND_PLAYER_NAME}' not found in player actions!"); - return; - } - - playerInput.defaultActionMap = IN_ISLAND_PLAYER_NAME; - playerInput.SwitchCurrentActionMap(IN_ISLAND_PLAYER_NAME); - - islandPlayer.AddComponent(); - } public void SlowSpeedMode() { diff --git a/BlueWater/Assets/02.Scripts/SpawnController.cs b/BlueWater/Assets/02.Scripts/SpawnController.cs index dc158573a..a3d83f58a 100644 --- a/BlueWater/Assets/02.Scripts/SpawnController.cs +++ b/BlueWater/Assets/02.Scripts/SpawnController.cs @@ -1,18 +1,32 @@ +using System; using Cinemachine; +using Sirenix.OdinInspector; +using Unity.VisualScripting; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.SceneManagement; +using Random = UnityEngine.Random; // ReSharper disable once CheckNamespace namespace BlueWaterProject { public class SpawnController : MonoBehaviour { + [SerializeField] private float checkRadius = 2f; + [SerializeField] private float instantiationRadius = 0.5f; + [SerializeField] private LayerMask checkLayer; + + [InlineButton("AddCrewmate", "Crewmate 추가")] + [SerializeField] private int crewmateIndex; + + private Collider[] colliders = new Collider[MAX_COLLIDER]; + private GameObject spawnPositionObj; private CinemachineVirtualCamera cinemachineVirtualCamera; private const string PLAYER_NAME = "Player"; private const string IN_ISLAND_PLAYER_NAME = "InIslandPlayer"; + private const int MAX_COLLIDER = 10; private void Start() { @@ -33,20 +47,20 @@ namespace BlueWaterProject var currentSceneName = SceneManager.GetActiveScene().name; if (currentSceneName != "02.Main") { - SpawnInIslandPlayer(spawnPositionObj.transform.position, GameManager.Inst.InIslandPlayer.transform.rotation); + SpawnInIslandPlayer(spawnPositionObj.transform.position, GameManager.Inst.InIslandPlayerPrefab.transform.rotation); } } private void SpawnInIslandPlayer(Vector3 spawnPos, Quaternion spawnRotation) { - var islandPlayer = Instantiate(GameManager.Inst.InIslandPlayer, spawnPos, spawnRotation); + var islandPlayer = Instantiate(GameManager.Inst.InIslandPlayerPrefab, spawnPos, spawnRotation); islandPlayer.name = IN_ISLAND_PLAYER_NAME; islandPlayer.gameObject.SetActive(true); var playerInput = islandPlayer.GetComponent(); if (playerInput == null) { - playerInput = islandPlayer.AddComponent(); + playerInput = islandPlayer.transform.AddComponent(); } playerInput.actions = GameManager.Inst.PlayerAction; @@ -73,6 +87,37 @@ namespace BlueWaterProject cinemachineVirtualCamera.Follow = islandPlayer.transform; cinemachineVirtualCamera.LookAt = islandPlayer.transform; + + GameManager.Inst.InIslandPlayer = inIslandPlayer; + } + + private void AddCrewmate() + { + if (!GameManager.Inst.InIslandPlayer) return; + + if (crewmateIndex >= GameManager.Inst.CrewmatePrefabList.Count) + { + print("존재하지 않는 인덱스입니다."); + return; + } + + for (var i = 0; i < 30; i++) + { + var randomDirection = Random.insideUnitSphere.normalized; + var spawnPos = GameManager.Inst.InIslandPlayer.transform.position + (randomDirection * Random.Range(2, checkRadius)); + + Array.Clear(colliders, 0, MAX_COLLIDER); + var size = Physics.OverlapSphereNonAlloc(spawnPos, instantiationRadius, colliders, checkLayer); + + if (size != 0) continue; + + var crewmate = Instantiate(GameManager.Inst.CrewmatePrefabList[crewmateIndex], spawnPos, + GameManager.Inst.CrewmatePrefabList[crewmateIndex].transform.rotation); + crewmate.gameObject.SetActive(true); + + GameManager.Inst.InIslandPlayer.CrewmateList.Add(crewmate); + return; + } } } } \ No newline at end of file diff --git a/BlueWater/Assets/02.Scripts/Utility/GlobalValue.cs b/BlueWater/Assets/02.Scripts/Utility/GlobalValue.cs index 9f4f3cb96..b54e566e9 100644 --- a/BlueWater/Assets/02.Scripts/Utility/GlobalValue.cs +++ b/BlueWater/Assets/02.Scripts/Utility/GlobalValue.cs @@ -17,7 +17,7 @@ namespace BlueWaterProject public const int MAX_CANON_COUNT = 5; public const float MINIMUM_STOP_DISTANCE = 0.05f; - public const float MAXIMUM_STOP_DISTANCE = 1f; + public const float MAXIMUM_STOP_DISTANCE = 1.5f; /// Radar 바늘이 레이더에 겹치는 허용 범위 public const float RADAR_OVERLAP_TOLERANCE = 5f; diff --git a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc1.prefab b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc1.prefab index 242aeaee9..03f4bd18a 100644 --- a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc1.prefab +++ b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc1.prefab @@ -3151,7 +3151,7 @@ NavMeshAgent: m_GameObject: {fileID: 6294429197787252722} m_Enabled: 1 m_AgentTypeID: 0 - m_Radius: 0.15 + m_Radius: 0.3 m_Speed: 3.5 m_Acceleration: 20 avoidancePriority: 50 diff --git a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc2.prefab b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc2.prefab index 4c072345f..d00610beb 100644 --- a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc2.prefab +++ b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc2.prefab @@ -3342,7 +3342,7 @@ NavMeshAgent: m_GameObject: {fileID: 7305287201485691239} m_Enabled: 1 m_AgentTypeID: 0 - m_Radius: 0.15 + m_Radius: 0.3 m_Speed: 3.5 m_Acceleration: 20 avoidancePriority: 50 diff --git a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc3.prefab b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc3.prefab index 36acade25..c8332f7e7 100644 --- a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc3.prefab +++ b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc3.prefab @@ -866,7 +866,7 @@ NavMeshAgent: m_GameObject: {fileID: 2527913158230619112} m_Enabled: 1 m_AgentTypeID: 0 - m_Radius: 0.15 + m_Radius: 0.3 m_Speed: 3.5 m_Acceleration: 20 avoidancePriority: 50 diff --git a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc4.prefab b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc4.prefab index e887d307b..56a78e5d2 100644 --- a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc4.prefab +++ b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc4.prefab @@ -3595,7 +3595,7 @@ NavMeshAgent: m_GameObject: {fileID: 8324368761444068393} m_Enabled: 1 m_AgentTypeID: 0 - m_Radius: 0.15 + m_Radius: 0.3 m_Speed: 3.5 m_Acceleration: 20 avoidancePriority: 50 diff --git a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc5.prefab b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc5.prefab index c16d42a8e..c1e4e7e8d 100644 --- a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc5.prefab +++ b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc5.prefab @@ -518,7 +518,7 @@ NavMeshAgent: m_GameObject: {fileID: 795613200604023475} m_Enabled: 1 m_AgentTypeID: 0 - m_Radius: 0.15 + m_Radius: 0.3 m_Speed: 3.5 m_Acceleration: 20 avoidancePriority: 50 diff --git a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc6.prefab b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc6.prefab index b56d6d9b4..acdd8d523 100644 --- a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc6.prefab +++ b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc6.prefab @@ -1461,7 +1461,7 @@ NavMeshAgent: m_GameObject: {fileID: 4240854641551087113} m_Enabled: 1 m_AgentTypeID: 0 - m_Radius: 0.15 + m_Radius: 0.3 m_Speed: 3.5 m_Acceleration: 20 avoidancePriority: 50 diff --git a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc7.prefab b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc7.prefab index 990ed18bb..709d83979 100644 --- a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc7.prefab +++ b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc7.prefab @@ -1017,7 +1017,7 @@ NavMeshAgent: m_GameObject: {fileID: 2239584764280768861} m_Enabled: 1 m_AgentTypeID: 0 - m_Radius: 0.15 + m_Radius: 0.3 m_Speed: 3.5 m_Acceleration: 20 avoidancePriority: 50 diff --git a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc8.prefab b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc8.prefab index 75d59f31e..1fdc9615d 100644 --- a/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc8.prefab +++ b/BlueWater/Assets/05.Prefabs/Characters/Enemies/RedOrc8.prefab @@ -1248,7 +1248,7 @@ NavMeshAgent: m_GameObject: {fileID: 3778215956730531554} m_Enabled: 1 m_AgentTypeID: 0 - m_Radius: 0.15 + m_Radius: 0.3 m_Speed: 3.5 m_Acceleration: 20 avoidancePriority: 50 diff --git a/BlueWater/Assets/05.Prefabs/Characters/Players/Skull_King.prefab b/BlueWater/Assets/05.Prefabs/Characters/Players/Skull_King.prefab index 526f98a09..493028f55 100644 --- a/BlueWater/Assets/05.Prefabs/Characters/Players/Skull_King.prefab +++ b/BlueWater/Assets/05.Prefabs/Characters/Players/Skull_King.prefab @@ -3232,7 +3232,7 @@ NavMeshAgent: m_GameObject: {fileID: 7671700086832248929} m_Enabled: 1 m_AgentTypeID: 0 - m_Radius: 0.15 + m_Radius: 0.3 m_Speed: 3.5 m_Acceleration: 20 avoidancePriority: 10 diff --git a/BlueWater/Assets/05.Prefabs/Characters/Players/TenTen.prefab b/BlueWater/Assets/05.Prefabs/Characters/Players/TenTen.prefab index 7660f9224..8b9165b48 100644 --- a/BlueWater/Assets/05.Prefabs/Characters/Players/TenTen.prefab +++ b/BlueWater/Assets/05.Prefabs/Characters/Players/TenTen.prefab @@ -3310,7 +3310,7 @@ NavMeshAgent: m_GameObject: {fileID: 7216996033527228451} m_Enabled: 1 m_AgentTypeID: 0 - m_Radius: 0.15 + m_Radius: 0.3 m_Speed: 3.5 m_Acceleration: 20 avoidancePriority: 10 diff --git a/BlueWater/Assets/05.Prefabs/Characters/Players/Viking.prefab b/BlueWater/Assets/05.Prefabs/Characters/Players/Viking.prefab index 843de0d03..1f24dfe16 100644 --- a/BlueWater/Assets/05.Prefabs/Characters/Players/Viking.prefab +++ b/BlueWater/Assets/05.Prefabs/Characters/Players/Viking.prefab @@ -1796,7 +1796,7 @@ NavMeshAgent: m_GameObject: {fileID: 4681418249284042988} m_Enabled: 1 m_AgentTypeID: 0 - m_Radius: 0.15 + m_Radius: 0.3 m_Speed: 3.5 m_Acceleration: 20 avoidancePriority: 10 diff --git a/BlueWater/Assets/09.BehaviorTree/Enemy/Crewmate.asset b/BlueWater/Assets/09.BehaviorTree/Enemy/Crewmate.asset new file mode 100644 index 000000000..51117f686 --- /dev/null +++ b/BlueWater/Assets/09.BehaviorTree/Enemy/Crewmate.asset @@ -0,0 +1,68 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b23f08d2ae4cba14087c1ed36193d82b, type: 3} + m_Name: Crewmate + m_EditorClassIdentifier: + mBehaviorSource: + behaviorName: Crewmate + behaviorDescription: + mTaskData: + types: [] + parentIndex: + startIndex: + variableStartIndex: + JSONSerialization: '{"EntryTask":{"Type":"BehaviorDesigner.Runtime.Tasks.EntryTask","NodeData":{"Offset":"(697.6564,155.842773)"},"ID":0,"Name":"Entry","Instant":true},"RootTask":{"Type":"BehaviorDesigner.Runtime.Tasks.Repeater","NodeData":{"Offset":"(0,140)"},"ID":1,"Name":"Repeater","Instant":true,"SharedIntcount":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolrepeatForever":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true},"SharedBoolendOnFailure":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(-3.44348145,154.9137)"},"ID":2,"Name":"Die + Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-556.874146,148.989136)"},"ID":3,"Name":"Die + Sequence","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedFloat","NodeData":{"Offset":"(-332.261353,151.369934)","Comment":"CurrentHp + == 0"},"ID":4,"Name":"Compare Shared Float","Instant":true,"SharedFloatvariable":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"CurrentHp","IsShared":true,"SinglemValue":0},"SharedFloatcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":0}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityAnimator.SetTrigger","NodeData":{"Offset":"(-153.593628,153.342773)","Comment":"Die"},"ID":5,"Name":"Set + Trigger","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"AnimatorObj","IsShared":true},"SharedStringparamaterName":{"Type":"BehaviorDesigner.Runtime.SharedString","Name":null,"StringmValue":"Die"}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.Collider.SetEnabled","NodeData":{"Offset":"(2.65640259,149.592773)","Comment":"collider"},"ID":6,"Name":"Set + Enabled","Instant":true,"SharedColliderspecifiedCollider":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"MyCollider","IsShared":true},"SharedBoolenabled":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityNavMeshAgent.Stop","NodeData":{"Offset":"(154.799408,150.128235)","Comment":"agent.isStopped + = true\nagent.enable = false"},"ID":7,"Name":"Stop","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityGameObject.Destroy","NodeData":{"Offset":"(297.235962,148.672363)","Comment":"2\ucd08 + \ud6c4 \ud30c\uad34"},"ID":8,"Name":"Destroy","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"Singletime":2}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-0.360473633,154.425232)"},"ID":9,"Name":"Sequence","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedBool","NodeData":{"Offset":"(0,150)","Comment":"UseRidigbody + == true"},"ID":10,"Name":"Compare Shared Bool","Instant":true,"SharedBoolvariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"UseRigidbody","IsShared":true,"BooleanmValue":false},"SharedBoolcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Parallel","NodeData":{"Offset":"(640,300)"},"ID":11,"Name":"Parallel","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Repeater","NodeData":{"Offset":"(-1337.95764,153.439392)"},"ID":12,"Name":"Repeater","Instant":true,"SharedIntcount":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolrepeatForever":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true},"SharedBoolendOnFailure":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-3.271881,149.977844)"},"ID":13,"Name":"FindTarget + Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWaterProject.BehaviorAsset.Enemy.FindNearestTarget","NodeData":{"Offset":"(-76.34883,149.593262)"},"ID":14,"Name":"Find + Nearest Target","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(55.1896667,149.593262)"},"ID":15,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":0.5},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Repeater","NodeData":{"Offset":"(-787.7235,147.730652)"},"ID":16,"Name":"Repeater","Instant":true,"SharedIntcount":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolrepeatForever":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true},"SharedBoolendOnFailure":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(0,150)"},"ID":17,"Name":"Move + Sequence","Instant":true,"AbortTypeabortType":"Self","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Inverter","NodeData":{"Offset":"(-189.090958,152.940674)"},"ID":18,"Name":"Inverter","Instant":true,"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedCollider","NodeData":{"Offset":"(0,150)","Comment":"Target + != null"},"ID":19,"Name":"Compare Shared Collider","Instant":true,"SharedCollidervariable":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},"SharedCollidercompareTo":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(118.636337,150.562012)"},"ID":20,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-95.48871,148.5675)"},"ID":21,"Name":"Sequence","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BlueWaterProject.BehaviorAsset.Enemy.IsTargetWithinRange","NodeData":{"Offset":"(-155.961533,147.5)","Comment":"Is + Target Within Range == true"},"ID":22,"Name":"Is Target Within Range","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityNavMeshAgent.SetIsStopped","NodeData":{"Offset":"(108.343018,154.24353)","Comment":"isStopped + = true"},"ID":23,"Name":"Set Is Stopped","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"SharedBoolisStopped":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true}}]},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(168.788086,151.5149)","Comment":"Target + Move(Default)\nreturn true"},"ID":24,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":null,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"DEFAULT","EStopTypestopType":"ATK_RANGE","BooleanisArrivedReturnSuccess":false}]}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Repeater","NodeData":{"Offset":"(1114.03149,149.316284)"},"ID":25,"Name":"Repeater","Instant":true,"SharedIntcount":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolrepeatForever":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true},"SharedBoolendOnFailure":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(0,300)"},"ID":26,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-1371.45886,150.000244)"},"ID":27,"Name":"BeAttacked + Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.HasReceivedEvent","NodeData":{"Offset":"(-104.7641,148.421387)","Comment":"BeAttacked + Event"},"ID":28,"Name":"Has Received Event","Instant":true,"SharedStringeventName":{"Type":"BehaviorDesigner.Runtime.SharedString","Name":null,"StringmValue":"BeAttackedInIdle"},"SharedVariablestoredValue1":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"AttackPos","IsShared":true,"Vector3mValue":"(0,0,0)"}},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(65.65216,150)","Comment":"Target + Move(DEFAULT)\nreturn false"},"ID":29,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"AttackPos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"DEFAULT","EStopTypestopType":"ATK_RANGE","BooleanisArrivedReturnSuccess":false}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(-532.353,150)"},"ID":30,"Name":"Comeback + Selector","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-485.7771,147.14563)"},"ID":31,"Name":"Go + Out Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWaterProject.BehaviorAsset.Enemy.GoOutOfBounds","NodeData":{"Offset":"(-297.9041,150)","Comment":"Go + Out Of Bounds == true"},"ID":32,"Name":"Go Out Of Bounds","Instant":true},{"Type":"BlueWaterProject.SetTarget","NodeData":{"Offset":"(-100,150)","Comment":"Target + = null"},"ID":33,"Name":"Set Target","Instant":true},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(90.9448242,150)","Comment":"Target + Move(FAST)\nreturn true"},"ID":34,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"FAST","EStopTypestopType":"MINIMUM","BooleanisArrivedReturnSuccess":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedBool","NodeData":{"Offset":"(265.113647,149.967529)","Comment":"IsCombated + = false"},"ID":35,"Name":"Set Shared Bool","Instant":true,"SharedBooltargetValue":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedBooltargetVariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"BooleanmValue":false}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(456.0724,153.845825)"},"ID":36,"Name":"Comeback + Sequence","Instant":true,"AbortTypeabortType":"Self","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedCollider","NodeData":{"Offset":"(-467.13443,150)","Comment":"Target + == null"},"ID":37,"Name":"Compare Shared Collider","Instant":true,"SharedCollidervariable":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},"SharedCollidercompareTo":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedBool","NodeData":{"Offset":"(-252.028122,145.4104)","Comment":"IsCombated + == true"},"ID":38,"Name":"Compare Shared Bool","Instant":true,"SharedBoolvariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"BooleanmValue":false},"SharedBoolcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedBool","NodeData":{"Offset":"(-75.26315,146.842163)","Comment":"BeAttacked + == false"},"ID":39,"Name":"Compare Shared Bool","Instant":true,"SharedBoolvariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"BeAttackedInIdle","IsShared":true,"BooleanmValue":false},"SharedBoolcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false}},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(61.0610847,149.344238)"},"ID":40,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":0.1},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(185.022949,146.189819)","Comment":"Target + Move(Default)\nreturn true"},"ID":41,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"DEFAULT","EStopTypestopType":"MINIMUM","BooleanisArrivedReturnSuccess":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedBool","NodeData":{"Offset":"(335,147.5)","Comment":"IsCombated + = false"},"ID":42,"Name":"Set Shared Bool","Instant":true,"SharedBooltargetValue":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedBooltargetVariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"BooleanmValue":false}}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(658.652,154.838745)"},"ID":43,"Name":"Attack + Sequence","Instant":true,"AbortTypeabortType":"Both","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-161.277924,151.643555)"},"ID":44,"Name":"CanAttack + Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Inverter","NodeData":{"Offset":"(-90,150)"},"ID":45,"Name":"Inverter","Instant":true,"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedCollider","NodeData":{"Offset":"(0,150)","Comment":"Target + != null"},"ID":46,"Name":"Compare Shared Collider","Instant":true,"SharedCollidervariable":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},"SharedCollidercompareTo":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null}}]},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.IsTargetWithinRange","NodeData":{"Offset":"(90,150)","Comment":"Is + Target Within Range == true"},"ID":47,"Name":"Is Target Within Range","Instant":true}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityNavMeshAgent.SetIsStopped","NodeData":{"Offset":"(-2.794386,148.954468)","Comment":"isStopped + = true"},"ID":48,"Name":"Set Is Stopped","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"SharedBoolisStopped":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true}},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.NormalAttack","NodeData":{"Offset":"(138.6486,150)","Comment":"Normal + Attack"},"ID":49,"Name":"Normal Attack","Instant":true}]}]}]}]}]}]},"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"AnimatorObj","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"MyCollider","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"CurrentHp","IsShared":true,"SinglemValue":0},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"AttackPos","IsShared":true,"Vector3mValue":"(0,0,0)"},{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"BeAttackedInIdle","IsShared":true,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"UseRigidbody","IsShared":true,"BooleanmValue":false}]}' + fieldSerializationData: + typeName: [] + fieldNameHash: + startIndex: + dataPosition: + unityObjects: [] + byteData: + byteDataArray: + Version: 1.7.7 diff --git a/BlueWater/Assets/09.BehaviorTree/Enemy/Crewmate.asset.meta b/BlueWater/Assets/09.BehaviorTree/Enemy/Crewmate.asset.meta new file mode 100644 index 000000000..e76f4dedc --- /dev/null +++ b/BlueWater/Assets/09.BehaviorTree/Enemy/Crewmate.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 761de4bcb599be64c9754c8cccf70452 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/BlueWater/Assets/09.BehaviorTree/Enemy/InIslandPlayer.asset b/BlueWater/Assets/09.BehaviorTree/Enemy/InIslandPlayer.asset index a59138e7b..6731cc5ce 100644 --- a/BlueWater/Assets/09.BehaviorTree/Enemy/InIslandPlayer.asset +++ b/BlueWater/Assets/09.BehaviorTree/Enemy/InIslandPlayer.asset @@ -35,21 +35,21 @@ MonoBehaviour: != null"},"ID":19,"Name":"Compare Shared Collider","Instant":true,"SharedCollidervariable":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},"SharedCollidercompareTo":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(118.636337,150.562012)"},"ID":20,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-95.48871,148.5675)"},"ID":21,"Name":"Sequence","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BlueWaterProject.BehaviorAsset.Enemy.IsTargetWithinRange","NodeData":{"Offset":"(-155.961533,147.5)","Comment":"Is Target Within Range == true"},"ID":22,"Name":"Is Target Within Range","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityNavMeshAgent.SetIsStopped","NodeData":{"Offset":"(108.343018,154.24353)","Comment":"isStopped = true"},"ID":23,"Name":"Set Is Stopped","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"SharedBoolisStopped":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true}}]},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(168.788086,151.5149)","Comment":"Target - Move(Default)\nreturn true"},"ID":24,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":null,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"DEFAULT","BooleanisArrivedReturnSuccess":true}]}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Repeater","NodeData":{"Offset":"(1114.03149,149.316284)"},"ID":25,"Name":"Repeater","Instant":true,"SharedIntcount":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolrepeatForever":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true},"SharedBoolendOnFailure":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(0,300)"},"ID":26,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-1371.45886,150.000244)"},"ID":27,"Name":"BeAttacked + Move(Default)\nreturn true"},"ID":24,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":null,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"DEFAULT","EStopTypestopType":"ATK_RANGE","BooleanisArrivedReturnSuccess":false}]}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Repeater","NodeData":{"Offset":"(1114.03149,149.316284)"},"ID":25,"Name":"Repeater","Instant":true,"SharedIntcount":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolrepeatForever":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true},"SharedBoolendOnFailure":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(0,300)"},"ID":26,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-1371.45886,150.000244)"},"ID":27,"Name":"BeAttacked Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.HasReceivedEvent","NodeData":{"Offset":"(-104.7641,148.421387)","Comment":"BeAttacked Event"},"ID":28,"Name":"Has Received Event","Instant":true,"SharedStringeventName":{"Type":"BehaviorDesigner.Runtime.SharedString","Name":null,"StringmValue":"BeAttackedInIdle"},"SharedVariablestoredValue1":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"AttackPos","IsShared":true,"Vector3mValue":"(0,0,0)"}},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(65.65216,150)","Comment":"Target - Move(DEFAULT)\nreturn false"},"ID":29,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"AttackPos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"DEFAULT","BooleanisArrivedReturnSuccess":false}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(-532.353,150)"},"ID":30,"Name":"Comeback + Move(DEFAULT)\nreturn false"},"ID":29,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"AttackPos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"DEFAULT","EStopTypestopType":"ATK_RANGE","BooleanisArrivedReturnSuccess":false}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(-532.353,150)"},"ID":30,"Name":"Comeback Selector","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-485.7771,147.14563)"},"ID":31,"Name":"Go Out Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWaterProject.BehaviorAsset.Enemy.GoOutOfBounds","NodeData":{"Offset":"(-297.9041,150)","Comment":"Go Out Of Bounds == true"},"ID":32,"Name":"Go Out Of Bounds","Instant":true},{"Type":"BlueWaterProject.SetTarget","NodeData":{"Offset":"(-100,150)","Comment":"Target = null"},"ID":33,"Name":"Set Target","Instant":true},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(90.9448242,150)","Comment":"Target - Move(FAST)\nreturn true"},"ID":34,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"FAST","BooleanisArrivedReturnSuccess":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedBool","NodeData":{"Offset":"(265.113647,149.967529)","Comment":"IsCombated + Move(FAST)\nreturn true"},"ID":34,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"FAST","EStopTypestopType":"MINIMUM","BooleanisArrivedReturnSuccess":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedBool","NodeData":{"Offset":"(265.113647,149.967529)","Comment":"IsCombated = false"},"ID":35,"Name":"Set Shared Bool","Instant":true,"SharedBooltargetValue":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedBooltargetVariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"BooleanmValue":false}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(456.0724,153.845825)"},"ID":36,"Name":"Comeback Sequence","Instant":true,"AbortTypeabortType":"Self","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedCollider","NodeData":{"Offset":"(-467.13443,150)","Comment":"Target == null"},"ID":37,"Name":"Compare Shared Collider","Instant":true,"SharedCollidervariable":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},"SharedCollidercompareTo":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedBool","NodeData":{"Offset":"(-252.028122,145.4104)","Comment":"IsCombated == true"},"ID":38,"Name":"Compare Shared Bool","Instant":true,"SharedBoolvariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"BooleanmValue":false},"SharedBoolcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedBool","NodeData":{"Offset":"(-75.26315,146.842163)","Comment":"BeAttacked - == false"},"ID":39,"Name":"Compare Shared Bool","Instant":true,"SharedBoolvariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"BeAttackedInIdle","IsShared":true,"BooleanmValue":false},"SharedBoolcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false}},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(61.0610847,149.344238)"},"ID":40,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":3},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(185.022949,146.189819)","Comment":"Target - Move(Fast)\nreturn true"},"ID":41,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"FAST","BooleanisArrivedReturnSuccess":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedBool","NodeData":{"Offset":"(335,147.5)","Comment":"IsCombated + == false"},"ID":39,"Name":"Compare Shared Bool","Instant":true,"SharedBoolvariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"BeAttackedInIdle","IsShared":true,"BooleanmValue":false},"SharedBoolcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false}},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(61.0610847,149.344238)"},"ID":40,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":0.1},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(185.022949,146.189819)","Comment":"Target + Move(Default)\nreturn true"},"ID":41,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"DEFAULT","EStopTypestopType":"MINIMUM","BooleanisArrivedReturnSuccess":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedBool","NodeData":{"Offset":"(335,147.5)","Comment":"IsCombated = false"},"ID":42,"Name":"Set Shared Bool","Instant":true,"SharedBooltargetValue":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedBooltargetVariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"BooleanmValue":false}}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(658.652,154.838745)"},"ID":43,"Name":"Attack Sequence","Instant":true,"AbortTypeabortType":"Both","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-161.277924,151.643555)"},"ID":44,"Name":"CanAttack Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Inverter","NodeData":{"Offset":"(-90,150)"},"ID":45,"Name":"Inverter","Instant":true,"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedCollider","NodeData":{"Offset":"(0,150)","Comment":"Target diff --git a/BlueWater/Assets/09.BehaviorTree/Enemy/Minion.asset b/BlueWater/Assets/09.BehaviorTree/Enemy/Minion.asset index d33c8a92d..f571dfe00 100644 --- a/BlueWater/Assets/09.BehaviorTree/Enemy/Minion.asset +++ b/BlueWater/Assets/09.BehaviorTree/Enemy/Minion.asset @@ -34,21 +34,21 @@ MonoBehaviour: != null"},"ID":17,"Name":"Compare Shared Collider","Instant":true,"SharedCollidervariable":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},"SharedCollidercompareTo":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(152.766052,152.079224)"},"ID":18,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-126.400574,154.162415)"},"ID":19,"Name":"Sequence","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BlueWaterProject.BehaviorAsset.Enemy.IsTargetWithinRange","NodeData":{"Offset":"(-203.067139,147.912415)","Comment":"Is Target Within Range == true"},"ID":20,"Name":"Is Target Within Range","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityNavMeshAgent.SetIsStopped","NodeData":{"Offset":"(145.682739,147.912415)","Comment":"isStopped = true"},"ID":21,"Name":"Set Is Stopped","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"SharedBoolisStopped":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true}}]},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(222.349365,154.162415)","Comment":"Target - Move(Default)\nreturn true"},"ID":22,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":null,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"DEFAULT","BooleanisArrivedReturnSuccess":true}]}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Repeater","NodeData":{"Offset":"(1111.22632,149.316284)"},"ID":23,"Name":"Repeater","Instant":true,"SharedIntcount":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolrepeatForever":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true},"SharedBoolendOnFailure":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(0,300)"},"ID":24,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-1371.45886,150.000244)"},"ID":25,"Name":"BeAttacked + Move(Default)\nreturn true"},"ID":22,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":null,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"DEFAULT","EStopTypestopType":"ATK_RANGE","BooleanisArrivedReturnSuccess":true}]}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Repeater","NodeData":{"Offset":"(1111.22632,149.316284)"},"ID":23,"Name":"Repeater","Instant":true,"SharedIntcount":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolrepeatForever":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true},"SharedBoolendOnFailure":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(0,300)"},"ID":24,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-1371.45886,150.000244)"},"ID":25,"Name":"BeAttacked Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.HasReceivedEvent","NodeData":{"Offset":"(-104.7641,148.421387)","Comment":"BeAttacked Event"},"ID":26,"Name":"Has Received Event","Instant":true,"SharedStringeventName":{"Type":"BehaviorDesigner.Runtime.SharedString","Name":null,"StringmValue":"BeAttackedInIdle"},"SharedVariablestoredValue1":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"AttackPos","IsShared":true,"Vector3mValue":"(0,0,0)"}},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(65.65216,150)","Comment":"Target - Move(DEFAULT)\nreturn false"},"ID":27,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"AttackPos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"DEFAULT","BooleanisArrivedReturnSuccess":false}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(-532.353,150)"},"ID":28,"Name":"Comeback + Move(DEFAULT)\nreturn false"},"ID":27,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"AttackPos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"DEFAULT","EStopTypestopType":"ATK_RANGE","BooleanisArrivedReturnSuccess":false}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(-532.353,150)"},"ID":28,"Name":"Comeback Selector","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-485.7771,147.14563)"},"ID":29,"Name":"Go Out Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWaterProject.BehaviorAsset.Enemy.GoOutOfBounds","NodeData":{"Offset":"(-297.9041,150)","Comment":"Go Out Of Bounds == true"},"ID":30,"Name":"Go Out Of Bounds","Instant":true},{"Type":"BlueWaterProject.SetTarget","NodeData":{"Offset":"(-100,150)","Comment":"Target = null"},"ID":31,"Name":"Set Target","Instant":true},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(90.9448242,150)","Comment":"Target - Move(FAST)\nreturn true"},"ID":32,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"FAST","BooleanisArrivedReturnSuccess":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedBool","NodeData":{"Offset":"(265.113647,149.967529)","Comment":"IsCombated + Move(FAST)\nreturn true"},"ID":32,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"FAST","EStopTypestopType":"MINIMUM","BooleanisArrivedReturnSuccess":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedBool","NodeData":{"Offset":"(265.113647,149.967529)","Comment":"IsCombated = false"},"ID":33,"Name":"Set Shared Bool","Instant":true,"SharedBooltargetValue":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedBooltargetVariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"BooleanmValue":false}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(456.0724,153.845825)"},"ID":34,"Name":"Comeback Sequence","Instant":true,"AbortTypeabortType":"Self","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedCollider","NodeData":{"Offset":"(-467.13443,150)","Comment":"Target == null"},"ID":35,"Name":"Compare Shared Collider","Instant":true,"SharedCollidervariable":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},"SharedCollidercompareTo":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedBool","NodeData":{"Offset":"(-252.028122,145.4104)","Comment":"IsCombated == true"},"ID":36,"Name":"Compare Shared Bool","Instant":true,"SharedBoolvariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"BooleanmValue":false},"SharedBoolcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedBool","NodeData":{"Offset":"(-75.26315,146.842163)","Comment":"BeAttacked == false"},"ID":37,"Name":"Compare Shared Bool","Instant":true,"SharedBoolvariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"BeAttackedInIdle","IsShared":true,"BooleanmValue":false},"SharedBoolcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false}},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(61.0610847,149.344238)"},"ID":38,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":3},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(185.022949,146.189819)","Comment":"Target - Move(Fast)\nreturn true"},"ID":39,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"FAST","BooleanisArrivedReturnSuccess":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedBool","NodeData":{"Offset":"(335,147.5)","Comment":"IsCombated + Move(Fast)\nreturn true"},"ID":39,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":false,"ESpeedTypespeedType":"FAST","EStopTypestopType":"MINIMUM","BooleanisArrivedReturnSuccess":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedBool","NodeData":{"Offset":"(335,147.5)","Comment":"IsCombated = false"},"ID":40,"Name":"Set Shared Bool","Instant":true,"SharedBooltargetValue":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedBooltargetVariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"BooleanmValue":false}}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(658.652,154.838745)"},"ID":41,"Name":"Attack Sequence","Instant":true,"AbortTypeabortType":"Both","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-161.277924,151.643555)"},"ID":42,"Name":"CanAttack Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Inverter","NodeData":{"Offset":"(-90,150)"},"ID":43,"Name":"Inverter","Instant":true,"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedCollider","NodeData":{"Offset":"(0,150)","Comment":"Target @@ -60,7 +60,7 @@ MonoBehaviour: == null"},"ID":49,"Name":"Compare Shared Collider","Instant":true,"SharedCollidervariable":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},"SharedCollidercompareTo":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedBool","NodeData":{"Offset":"(-188.179886,148.636353)","Comment":"IsCombated == false"},"ID":50,"Name":"Compare Shared Bool","Instant":true,"SharedBoolvariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"BooleanmValue":false},"SharedBoolcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedBool","NodeData":{"Offset":"(-0.722427368,145.664551)","Comment":"BeAttacked == false"},"ID":51,"Name":"Compare Shared Bool","Instant":true,"SharedBoolvariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"BeAttackedInIdle","IsShared":true,"BooleanmValue":false},"SharedBoolcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false}},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(159.873154,146.842163)"},"ID":52,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":3},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}},{"Type":"BlueWaterProject.BehaviorAsset.Enemy.MoveTarget","NodeData":{"Offset":"(378.388855,150.379761)","Comment":"Target - Move(Slow)\nreturn true"},"ID":53,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":null,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":true,"ESpeedTypespeedType":"SLOW","BooleanisArrivedReturnSuccess":true}]}]}]}]}]}]},"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"AnimatiorObj","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"MyCollider","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"CurrentHp","IsShared":true,"SinglemValue":0},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"AttackPos","IsShared":true,"Vector3mValue":"(0,0,0)"},{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"BeAttackedInIdle","IsShared":true,"BooleanmValue":false}]}' + Move(Slow)\nreturn true"},"ID":53,"Name":"Move Target","Instant":true,"SharedCollidertarget":{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":null},"SharedVector3movePos":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":null,"Vector3mValue":"(0,0,0)"},"BooleanrandomMove":true,"ESpeedTypespeedType":"SLOW","EStopTypestopType":"MINIMUM","BooleanisArrivedReturnSuccess":true}]}]}]}]}]}]},"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"AnimatiorObj","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"MyCollider","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"CurrentHp","IsShared":true,"SinglemValue":0},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"AttackPos","IsShared":true,"Vector3mValue":"(0,0,0)"},{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsCombated","IsShared":true,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"BeAttackedInIdle","IsShared":true,"BooleanmValue":false}]}' fieldSerializationData: typeName: [] fieldNameHash: diff --git a/BlueWater/Assets/Behavior Designer Movement/Materials/marker.mat b/BlueWater/Assets/Behavior Designer Movement/Materials/marker.mat index dc39e4460..9417e5cdb 100644 --- a/BlueWater/Assets/Behavior Designer Movement/Materials/marker.mat +++ b/BlueWater/Assets/Behavior Designer Movement/Materials/marker.mat @@ -103,7 +103,7 @@ Material: - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 0, b: 0, a: 0.7} - - _Color: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 1, g: 0, b: 0, a: 0.7} - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} - _SpecColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] diff --git a/BlueWater/ProjectSettings/TagManager.asset b/BlueWater/ProjectSettings/TagManager.asset index 6dd84e8d7..b488fb054 100644 --- a/BlueWater/ProjectSettings/TagManager.asset +++ b/BlueWater/ProjectSettings/TagManager.asset @@ -24,7 +24,7 @@ TagManager: - Unit - Ship - Player - - Pirate + - Crewmate - Enemy - Weapon - HitBox