From 2b846a54e0e78a59e43d3138811baf87ecc4a76d Mon Sep 17 00:00:00 2001 From: NTG_Lenovo Date: Wed, 13 Sep 2023 12:23:27 +0900 Subject: [PATCH] =?UTF-8?q?Ai=20=EC=83=81=EC=86=8D=20=ED=8B=80=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BlueWater/Assets/01.Scenes/02.Main_TG.unity | 37 +------- .../Assets/02.Scripts/Ai/Human/Combat.meta | 8 ++ .../02.Scripts/Ai/Human/Combat/CombatAi.cs | 87 +++++++++++++++++++ .../Ai/Human/Combat/CombatAi.cs.meta | 11 +++ .../Ai/Human/{ => Combat}/Enemy.meta | 0 .../Ai/Human/{ => Combat}/Enemy/EnemyAi.cs | 2 +- .../Human/{ => Combat}/Enemy/EnemyAi.cs.meta | 0 .../Ai/Human/{ => Combat}/Enemy/EnemyStat.cs | 0 .../{ => Combat}/Enemy/EnemyStat.cs.meta | 0 .../Ai/Human/{ => Combat}/Enemy/EnemyView.cs | 0 .../{ => Combat}/Enemy/EnemyView.cs.meta | 0 .../Ai/Human/{ => Combat}/Enemy/Type.meta | 0 .../{ => Combat}/Enemy/Type/EnemyArcher.cs | 0 .../Enemy/Type/EnemyArcher.cs.meta | 0 .../Enemy/Type/EnemySpearKnight.cs | 0 .../Enemy/Type/EnemySpearKnight.cs.meta | 0 .../{ => Combat}/Enemy/Type/EnemySpearman.cs | 0 .../Enemy/Type/EnemySpearman.cs.meta | 0 .../Enemy/Type/EnemySwordKnight.cs | 0 .../Enemy/Type/EnemySwordKnight.cs.meta | 0 .../{ => Combat}/Enemy/Type/EnemySwordman.cs | 0 .../Enemy/Type/EnemySwordman.cs.meta | 0 .../Ai/Human/{ => Combat}/Pirate.meta | 0 .../Ai/Human/{ => Combat}/Pirate/PirateAi.cs | 2 +- .../{ => Combat}/Pirate/PirateAi.cs.meta | 0 .../Human/{ => Combat}/Pirate/PirateStat.cs | 0 .../{ => Combat}/Pirate/PirateStat.cs.meta | 0 .../Human/{ => Combat}/Pirate/PirateView.cs | 0 .../{ => Combat}/Pirate/PirateView.cs.meta | 0 .../Ai/Human/{ => Combat}/Pirate/Type.meta | 0 .../{ => Combat}/Pirate/Type/PirateArcher.cs | 0 .../Pirate/Type/PirateArcher.cs.meta | 0 .../{ => Combat}/Pirate/Type/PirateAxeman.cs | 0 .../Pirate/Type/PirateAxeman.cs.meta | 0 .../Pirate/Type/PirateSpearman.cs | 0 .../Pirate/Type/PirateSpearman.cs.meta | 0 .../Pirate/Type/PirateSwordKnight.cs | 0 .../Pirate/Type/PirateSwordKnight.cs.meta | 0 .../Pirate/Type/PirateSwordman.cs | 0 .../Pirate/Type/PirateSwordman.cs.meta | 0 .../Assets/02.Scripts/Ai/Human/HumanAi.cs | 59 +------------ 41 files changed, 112 insertions(+), 94 deletions(-) create mode 100644 BlueWater/Assets/02.Scripts/Ai/Human/Combat.meta create mode 100644 BlueWater/Assets/02.Scripts/Ai/Human/Combat/CombatAi.cs create mode 100644 BlueWater/Assets/02.Scripts/Ai/Human/Combat/CombatAi.cs.meta rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/EnemyAi.cs (98%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/EnemyAi.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/EnemyStat.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/EnemyStat.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/EnemyView.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/EnemyView.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/Type.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/Type/EnemyArcher.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/Type/EnemyArcher.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/Type/EnemySpearKnight.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/Type/EnemySpearKnight.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/Type/EnemySpearman.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/Type/EnemySpearman.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/Type/EnemySwordKnight.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/Type/EnemySwordKnight.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/Type/EnemySwordman.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Enemy/Type/EnemySwordman.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/PirateAi.cs (99%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/PirateAi.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/PirateStat.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/PirateStat.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/PirateView.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/PirateView.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/Type.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/Type/PirateArcher.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/Type/PirateArcher.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/Type/PirateAxeman.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/Type/PirateAxeman.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/Type/PirateSpearman.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/Type/PirateSpearman.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/Type/PirateSwordKnight.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/Type/PirateSwordKnight.cs.meta (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/Type/PirateSwordman.cs (100%) rename BlueWater/Assets/02.Scripts/Ai/Human/{ => Combat}/Pirate/Type/PirateSwordman.cs.meta (100%) diff --git a/BlueWater/Assets/01.Scenes/02.Main_TG.unity b/BlueWater/Assets/01.Scenes/02.Main_TG.unity index dea8f9b21..9bc40759d 100644 --- a/BlueWater/Assets/01.Scenes/02.Main_TG.unity +++ b/BlueWater/Assets/01.Scenes/02.Main_TG.unity @@ -34188,7 +34188,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 91032034} serializedVersion: 2 - m_LocalRotation: {x: -0.019106599, y: 0.4995399, z: 0.011021243, w: 0.86601007} + m_LocalRotation: {x: -0.019106599, y: 0.49953982, z: 0.011021242, w: 0.8660101} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 @@ -37121,37 +37121,6 @@ Transform: - {fileID: 1765855842} m_Father: {fileID: 712552067} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &99817018 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 99817019} - m_Layer: 0 - m_Name: PlayerUnits - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &99817019 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 99817018} - 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: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &100142392 GameObject: m_ObjectHideFlags: 0 @@ -704808,7 +704777,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1871370245} serializedVersion: 2 - m_LocalRotation: {x: 0.67640686, y: 0.00000023841855, z: -0.0000002980232, w: 0.7365282} + m_LocalRotation: {x: 0.6764068, y: -0, z: -0, w: 0.7365283} m_LocalPosition: {x: -0.0000002384187, y: 120, z: -10.000001} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 @@ -794900,7 +794869,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 06c19c0e062e84c169aca3af92060883, type: 3} m_Name: m_EditorClassIdentifier: - _persistent: 0 --- !u!1 &2105554825 GameObject: m_ObjectHideFlags: 0 @@ -811519,5 +811487,4 @@ SceneRoots: - {fileID: 222471351} - {fileID: 1994033914} - {fileID: 342641572} - - {fileID: 99817019} - {fileID: 1574668128} diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Combat.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat.meta new file mode 100644 index 000000000..924e22d7d --- /dev/null +++ b/BlueWater/Assets/02.Scripts/Ai/Human/Combat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c610fa776fedd914683a0ad074480544 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Combat/CombatAi.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/CombatAi.cs new file mode 100644 index 000000000..883a9da7d --- /dev/null +++ b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/CombatAi.cs @@ -0,0 +1,87 @@ +using System; +using UnityEngine; +using UnityEngine.AI; +using UnityEngine.Animations; + +// ReSharper disable once CheckNamespace +namespace BlueWaterProject +{ + public abstract class CombatAi : HumanAi + { + #region Properties and variables + + // 일반 변수 + protected LayerMask targetLayer; + protected Vector3 defensePos; + + // 컴포넌트 관련 변수 + protected Animator humanAnimator; + protected NavMeshAgent humanAgent; + protected CapsuleCollider myCollider; + protected CapsuleCollider hitBoxCollider; + protected LookAtConstraint lookAtConstraint; + + // 애니메이션 관련 변수 + protected static readonly int SpeedHash = Animator.StringToHash("Speed"); + protected static readonly int AttackHash = Animator.StringToHash("Attack"); + protected static readonly int DamageHash = Animator.StringToHash("TakeDamage"); + protected static readonly int DeathTypeHash = Animator.StringToHash("DeathType"); + protected static readonly int DeathHash = Animator.StringToHash("Death"); + protected static readonly int ShieldHash = Animator.StringToHash("Shield"); + protected static readonly int OutlineColorHash = Shader.PropertyToID("_OutlineColor"); + + #endregion + + #region Abstract methods + + protected abstract void SetLayer(); + + protected abstract void SetCurrentHp(float value); + + #endregion + + #region Unity built-in methods + + protected override void Awake() + { + base.InitComponent(); + + FlagLookAtCamera(); + SetLayer(); + } + + #endregion + + #region Custom methods + + protected override void InitComponent() + { + base.InitComponent(); + + humanAnimator = Utils.GetComponentAndAssert(transform); + humanAgent = Utils.GetComponentAndAssert(transform); + myCollider = Utils.GetComponentAndAssert(transform); + hitBoxCollider = Utils.GetComponentAndAssert(transform.Find("HitBox")); + lookAtConstraint = Utils.GetComponentAndAssert(flagContainer); + } + + private void FlagLookAtCamera() + { + if (Camera.main != null) + { + var source = new ConstraintSource + { + sourceTransform = Camera.main.transform, + weight = 1f + }; + lookAtConstraint.AddSource(source); + } + + lookAtConstraint.constraintActive = true; + } + + protected void SetMoveSpeed(float value) => humanAgent.speed = value; + + #endregion + } +} \ No newline at end of file diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Combat/CombatAi.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/CombatAi.cs.meta new file mode 100644 index 000000000..4edea88b7 --- /dev/null +++ b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/CombatAi.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7d395879fb0a0d740910a879261f7383 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/EnemyAi.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/EnemyAi.cs similarity index 98% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/EnemyAi.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/EnemyAi.cs index e6c70d3c4..2304865a3 100644 --- a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/EnemyAi.cs +++ b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/EnemyAi.cs @@ -3,7 +3,7 @@ using UnityEngine; // ReSharper disable once CheckNamespace namespace BlueWaterProject { - public class EnemyAi : HumanAi + public class EnemyAi : CombatAi { #region Properties and variables diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/EnemyAi.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/EnemyAi.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/EnemyAi.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/EnemyAi.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/EnemyStat.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/EnemyStat.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/EnemyStat.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/EnemyStat.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/EnemyStat.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/EnemyStat.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/EnemyStat.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/EnemyStat.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/EnemyView.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/EnemyView.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/EnemyView.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/EnemyView.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/EnemyView.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/EnemyView.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/EnemyView.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/EnemyView.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemyArcher.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemyArcher.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemyArcher.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemyArcher.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemyArcher.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemyArcher.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemyArcher.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemyArcher.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySpearKnight.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySpearKnight.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySpearKnight.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySpearKnight.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySpearKnight.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySpearKnight.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySpearKnight.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySpearKnight.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySpearman.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySpearman.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySpearman.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySpearman.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySpearman.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySpearman.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySpearman.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySpearman.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySwordKnight.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySwordKnight.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySwordKnight.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySwordKnight.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySwordKnight.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySwordKnight.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySwordKnight.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySwordKnight.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySwordman.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySwordman.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySwordman.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySwordman.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySwordman.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySwordman.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Enemy/Type/EnemySwordman.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Enemy/Type/EnemySwordman.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/PirateAi.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/PirateAi.cs similarity index 99% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/PirateAi.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/PirateAi.cs index 310f22993..0cca9ccf4 100644 --- a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/PirateAi.cs +++ b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/PirateAi.cs @@ -6,7 +6,7 @@ using UnityEngine; // ReSharper disable once CheckNamespace namespace BlueWaterProject { - public class PirateAi : HumanAi + public class PirateAi : CombatAi { #region Properties and variables diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/PirateAi.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/PirateAi.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/PirateAi.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/PirateAi.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/PirateStat.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/PirateStat.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/PirateStat.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/PirateStat.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/PirateStat.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/PirateStat.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/PirateStat.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/PirateStat.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/PirateView.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/PirateView.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/PirateView.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/PirateView.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/PirateView.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/PirateView.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/PirateView.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/PirateView.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateArcher.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateArcher.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateArcher.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateArcher.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateArcher.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateArcher.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateArcher.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateArcher.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateAxeman.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateAxeman.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateAxeman.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateAxeman.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateAxeman.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateAxeman.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateAxeman.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateAxeman.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateSpearman.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateSpearman.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateSpearman.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateSpearman.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateSpearman.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateSpearman.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateSpearman.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateSpearman.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateSwordKnight.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateSwordKnight.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateSwordKnight.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateSwordKnight.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateSwordKnight.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateSwordKnight.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateSwordKnight.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateSwordKnight.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateSwordman.cs b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateSwordman.cs similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateSwordman.cs rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateSwordman.cs diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateSwordman.cs.meta b/BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateSwordman.cs.meta similarity index 100% rename from BlueWater/Assets/02.Scripts/Ai/Human/Pirate/Type/PirateSwordman.cs.meta rename to BlueWater/Assets/02.Scripts/Ai/Human/Combat/Pirate/Type/PirateSwordman.cs.meta diff --git a/BlueWater/Assets/02.Scripts/Ai/Human/HumanAi.cs b/BlueWater/Assets/02.Scripts/Ai/Human/HumanAi.cs index 61d00c488..88f76284e 100644 --- a/BlueWater/Assets/02.Scripts/Ai/Human/HumanAi.cs +++ b/BlueWater/Assets/02.Scripts/Ai/Human/HumanAi.cs @@ -1,18 +1,12 @@ using UnityEngine; -using UnityEngine.AI; -using UnityEngine.Animations; // ReSharper disable once CheckNamespace namespace BlueWaterProject { - public abstract class HumanAi : BaseAi + public class HumanAi : BaseAi { #region Properties and variables - // 일반 변수 - protected LayerMask targetLayer; - protected Vector3 defensePos; - // 모델링 관련 변수 protected Transform backpackContainer; protected Transform leftWeaponContainer; @@ -22,30 +16,6 @@ namespace BlueWaterProject protected Transform bodyContainer; protected Transform flagContainer; - // 컴포넌트 관련 변수 - protected Animator humanAnimator; - protected NavMeshAgent humanAgent; - protected CapsuleCollider myCollider; - protected CapsuleCollider hitBoxCollider; - protected LookAtConstraint lookAtConstraint; - - // 애니메이션 관련 변수 - protected static readonly int SpeedHash = Animator.StringToHash("Speed"); - protected static readonly int AttackHash = Animator.StringToHash("Attack"); - protected static readonly int DamageHash = Animator.StringToHash("TakeDamage"); - protected static readonly int DeathTypeHash = Animator.StringToHash("DeathType"); - protected static readonly int DeathHash = Animator.StringToHash("Death"); - protected static readonly int ShieldHash = Animator.StringToHash("Shield"); - protected static readonly int OutlineColorHash = Shader.PropertyToID("_OutlineColor"); - - #endregion - - #region Abstract methods - - protected abstract void SetLayer(); - - protected abstract void SetCurrentHp(float value); - #endregion #region Unity built-in methods @@ -53,15 +23,13 @@ namespace BlueWaterProject protected virtual void Awake() { InitComponent(); - FlagLookAtFlag(); - SetLayer(); } #endregion #region Custom methods - private void InitComponent() + protected virtual void InitComponent() { backpackContainer = Utils.GetComponentAndAssert(transform. Find("Bip001/Bip001 Pelvis/Bip001 Spine/Backpack_container")); @@ -77,27 +45,6 @@ namespace BlueWaterProject Find("Body_container")); flagContainer = Utils.GetComponentAndAssert(transform. Find("Flag_container")); - - humanAnimator = Utils.GetComponentAndAssert(transform); - humanAgent = Utils.GetComponentAndAssert(transform); - myCollider = Utils.GetComponentAndAssert(transform); - hitBoxCollider = Utils.GetComponentAndAssert(transform.Find("HitBox")); - lookAtConstraint = Utils.GetComponentAndAssert(flagContainer); - } - - private void FlagLookAtFlag() - { - if (Camera.main != null) - { - var source = new ConstraintSource - { - sourceTransform = Camera.main.transform, - weight = 1f - }; - lookAtConstraint.AddSource(source); - } - - lookAtConstraint.constraintActive = true; } protected void SetActiveViewModel(Transform container, int model) @@ -115,8 +62,6 @@ namespace BlueWaterProject } } - protected void SetMoveSpeed(float value) => humanAgent.speed = value; - #endregion } } \ No newline at end of file