diff --git a/BlueWater/Assets/02.Scripts/Ai/AiController.cs b/BlueWater/Assets/02.Scripts/Ai/AiController.cs index f5c55df36..d2ca40a92 100644 --- a/BlueWater/Assets/02.Scripts/Ai/AiController.cs +++ b/BlueWater/Assets/02.Scripts/Ai/AiController.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.AI; +using UnityEngine.Serialization; using Random = UnityEngine.Random; // ReSharper disable once CheckNamespace @@ -18,27 +19,37 @@ namespace BlueWaterProject } [Serializable] - public abstract class AiController : MonoBehaviour, IDamageable, IFieldOfView + public abstract class AiController : MonoBehaviour, IDamageable, IFieldOfView, IAiMover { #region Property and variable + [Title("Skin")] + [Tooltip("SkinnedMeshRenderer, MeshRenderer의 Material을 모두 담고 있는 리스트")] + [SerializeField] protected List skinMaterialList = new(10); + + [Tooltip("캐릭터 외곽선의 기본 색상")] + [SerializeField] protected Color defaultSkinColor = Color.black; + + [Tooltip("캐릭터에 마우스 커서가 올라가 있을 때 색상")] + [SerializeField] protected Color mouseEnterHighlightSkinColor = Color.white; + + [Tooltip("캐릭터가 선택되었을 때 색상")] + [SerializeField] protected Color selectedSkinColor = Color.blue; + protected bool isAttacking; protected AttackerType attackerType; - [SerializeField] protected List skinMaterial = new(10); protected Animator aiAnimator; - protected AiMover aiMover; protected NavMeshAgent navMeshAgent; - private UnitController mouseEnterUnitController; private UnitSelection unitSelection; - public static readonly int SpeedHash = Animator.StringToHash("Speed"); - public static readonly int AttackHash = Animator.StringToHash("Attack"); - public static readonly int DamageHash = Animator.StringToHash("TakeDamage"); - public static readonly int DeathTypeHash = Animator.StringToHash("DeathType"); - public static readonly int DeathHash = Animator.StringToHash("Death"); - public static readonly int OutlineColorHash = Shader.PropertyToID("_OutlineColor"); + private static readonly int SpeedHash = Animator.StringToHash("Speed"); + protected static readonly int AttackHash = Animator.StringToHash("Attack"); + private static readonly int DamageHash = Animator.StringToHash("TakeDamage"); + private static readonly int DeathTypeHash = Animator.StringToHash("DeathType"); + private static readonly int DeathHash = Animator.StringToHash("Death"); + private static readonly int OutlineColorHash = Shader.PropertyToID("_OutlineColor"); private static readonly WaitForSeconds FindTargetWaitTime = new(0.5f); @@ -61,7 +72,6 @@ namespace BlueWaterProject { FindMaterial(); aiAnimator = Utils.GetComponentAndAssert(transform); - aiMover = Utils.GetComponentAndAssert(transform); navMeshAgent = Utils.GetComponentAndAssert(transform); unitSelection = FindObjectOfType(); @@ -92,6 +102,7 @@ namespace BlueWaterProject private void FixedUpdate() { UpdateLookAtTarget(); + UpdateMovement(); } private void OnMouseEnter() @@ -293,9 +304,42 @@ namespace BlueWaterProject #endregion + #region IAiMover + + [field: Space(10f)] + [field: Title("Mover")] + [field: SerializeField] public MoveType MoveType { get; set; } + + [field: SerializeField] public bool IsCommanded { get; set; } + + public void UpdateMovement() + { + aiAnimator.SetFloat(AiController.SpeedHash, navMeshAgent.velocity.normalized.magnitude); + + if (IsCommanded || isAttacking) + { + + } + else + { + if (!TargetInfo.transform || MoveType is MoveType.NONE or MoveType.FIXED) return; + + navMeshAgent.SetDestination(TargetInfo.transform.position); + } + } + + public void MoveTarget(Vector3 targetPos) + { + IsCommanded = true; + navMeshAgent.SetDestination(targetPos); + } + + #endregion + #endregion #region Custom function + private void FindMaterial() { var skinnedMeshRenderers = GetComponentsInChildren(); @@ -305,40 +349,28 @@ namespace BlueWaterProject { if (!skin.gameObject.activeSelf) continue; - skinMaterial.Add(skin.material); + skinMaterialList.Add(skin.material); } foreach (var skin in meshRenderers) { if (!skin.gameObject.activeSelf) continue; - skinMaterial.Add(skin.material); + skinMaterialList.Add(skin.material); } } - public void ResetHighlight() + private void SetOutlineColor(Color color) { - foreach (var skin in skinMaterial) + foreach (var skin in skinMaterialList) { - skin.SetColor(OutlineColorHash, Color.black); + skin.SetColor(OutlineColorHash, color); } } - public void MouseEnterHighlight() - { - foreach (var skin in skinMaterial) - { - skin.SetColor(OutlineColorHash, Color.white); - } - } - - public void SelectedHighlight() - { - foreach (var skin in skinMaterial) - { - skin.SetColor(OutlineColorHash, Color.blue); - } - } - + + public void ResetHighlight() => SetOutlineColor(Color.black); + public void MouseEnterHighlight() => SetOutlineColor(Color.white); + public void SelectedHighlight() => SetOutlineColor(Color.blue); private void DestroyObject() => Destroy(gameObject); public bool GetIsAttacking() => isAttacking; public NavMeshAgent GetNavMeshAgent() => navMeshAgent; diff --git a/BlueWater/Assets/02.Scripts/Ai/AiMover.cs b/BlueWater/Assets/02.Scripts/Ai/AiMover.cs deleted file mode 100644 index 35787d5d8..000000000 --- a/BlueWater/Assets/02.Scripts/Ai/AiMover.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using UnityEngine; -using UnityEngine.AI; - -// ReSharper disable once CheckNamespace -namespace BlueWaterProject -{ - public class AiMover : MonoBehaviour - { - private enum MoveType - { - NONE, // 미설정 - FIXED, // 자리를 지키는 AI - MOVE // 자리를 움직이는 AI - } - - #region Property and variable - - - [SerializeField] private MoveType moveType; - - private bool isCommanded; - private Vector3 movePos; - - private AiController aiController; - - #endregion - - #region Unity built-in function - - private void Awake() - { - aiController = Utils.GetComponentAndAssert(transform); - } - - private void LateUpdate() - { - aiController.GetAnimator().SetFloat(AiController.SpeedHash, aiController.GetNavMeshAgent().velocity.normalized.magnitude); - - if (isCommanded || aiController.GetIsAttacking()) - { - - } - else - { - if (!GetTargetInfo().transform || moveType is MoveType.NONE or MoveType.FIXED) return; - - GetNavMeshAgent().SetDestination(GetTargetInfo().transform.position); - } - } - - #endregion - - #region Custom function - - public void MoveTarget(Vector3 targetPos) - { - isCommanded = true; - GetNavMeshAgent().SetDestination(targetPos); - } - public bool GetIsCommanded() => isCommanded; - private TargetInfo GetTargetInfo() => aiController.TargetInfo; - private NavMeshAgent GetNavMeshAgent() => aiController.GetNavMeshAgent(); - - #endregion - } -} \ No newline at end of file diff --git a/BlueWater/Assets/02.Scripts/Ai/FieldOfView.cs b/BlueWater/Assets/02.Scripts/Ai/FieldOfView.cs deleted file mode 100644 index 3ac0a7f44..000000000 --- a/BlueWater/Assets/02.Scripts/Ai/FieldOfView.cs +++ /dev/null @@ -1,158 +0,0 @@ -using System; -using UnityEngine; - -// ReSharper disable once CheckNamespace -namespace BlueWaterProject -{ - [Serializable] - public class TargetInfo - { - public Transform transform; - public Collider collider; - public IAiStat iAiStat; - - public TargetInfo() - { - transform = null; - collider = null; - iAiStat = null; - } - - public TargetInfo(Transform transform, Collider collider, IAiStat iAiStat) - { - this.transform = transform; - this.collider = collider; - this.iAiStat = iAiStat; - } - - public void SetTargetInfo(Transform targetTransform, Collider collider, IAiStat targetIAiStat) - { - transform = targetTransform; - this.collider = collider; - iAiStat = targetIAiStat; - } - - public void DefaultSetting() - { - transform = null; - collider = null; - iAiStat = null; - } - } - - public class FieldOfView : MonoBehaviour - { - #region Property and variable - - [Header("타겟 및 시야 설정")] - [SerializeField] private bool drawGizmo = true; - - [SerializeField] private LayerMask targetLayer; - - [Tooltip("시야 각도\n상대를 감지하는 0~360도 사이의 시야각")] - [Range(0f, 360f)] - [SerializeField] private float viewAngle = 360f; - - [Tooltip("시야 길이\n상대를 감지하는 최대 길이, 부채꼴 혹은 원의 반지름 길이")] - [Range(0f, 50f)] - [SerializeField] private float viewRadius; - - [Header("시야 내 타겟 정보")] - [SerializeField] private Collider[] colliderWithinRange = new Collider[TARGET_MAX_SIZE]; - [SerializeField] private TargetInfo targetInfo = new(); - - private Collider targetCollider; - private IAiStat iAiStat; - - private const int TARGET_MAX_SIZE = 20; - - #endregion - - #region Unity built-in Function - -#if UNITY_EDITOR - public void OnDrawGizmosSelected() - { - if (!drawGizmo) return; - - var myPos = transform.position; - - Gizmos.color = Color.green; - Gizmos.DrawWireSphere(myPos, viewRadius); - - if (targetInfo.transform == null) return; - - Debug.DrawLine(myPos, targetInfo.transform.position, Color.red); - } -#endif - - private void LateUpdate() - { - Array.Clear(colliderWithinRange, 0, TARGET_MAX_SIZE); - - var myPos = transform.position; - var maxColliderCount = Physics.OverlapSphereNonAlloc(myPos, viewRadius, colliderWithinRange, - targetLayer, QueryTriggerInteraction.Collide); - - if (maxColliderCount <= 0) - { - targetInfo.DefaultSetting(); - return; - } - - iAiStat = colliderWithinRange[0].GetComponent(); - - float nearestDistance; - Transform nearestTargetTransform; - - if (iAiStat.GetCurrentHp() <= 0) - { - nearestDistance = float.PositiveInfinity; - nearestTargetTransform = null; - } - else - { - nearestDistance = Vector3.Distance(colliderWithinRange[0].transform.position, myPos); - nearestTargetTransform = colliderWithinRange[0].transform; - } - - for (var i = 1; i < maxColliderCount; i++) - { - var distance = Vector3.Distance(colliderWithinRange[i].transform.position, myPos); - - if (nearestDistance < distance) continue; - - iAiStat = colliderWithinRange[i].GetComponent(); - - if (iAiStat.GetCurrentHp() <= 0) continue; - - nearestDistance = distance; - nearestTargetTransform = colliderWithinRange[i].transform; - } - - if (nearestTargetTransform) - { - targetCollider = nearestTargetTransform.GetComponent(); - iAiStat = nearestTargetTransform.GetComponent(); - targetInfo.SetTargetInfo(nearestTargetTransform, targetCollider, iAiStat); - - var targetPos = targetInfo.transform.position; - targetPos.y = transform.position.y; - transform.LookAt(targetPos); - } - else - { - targetInfo.DefaultSetting(); - } - } - - #endregion - - #region Custom Function - - public int GetTargetLayer() => targetLayer; - public TargetInfo GetTargetInfo() => targetInfo; - - #endregion - } -} \ No newline at end of file diff --git a/BlueWater/Assets/02.Scripts/Ai/FieldOfView.cs.meta b/BlueWater/Assets/02.Scripts/Ai/FieldOfView.cs.meta deleted file mode 100644 index eba25dcb1..000000000 --- a/BlueWater/Assets/02.Scripts/Ai/FieldOfView.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0b788620b2cca0844a3b03748ada3423 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/BlueWater/Assets/02.Scripts/Interface/IAiMover.cs b/BlueWater/Assets/02.Scripts/Interface/IAiMover.cs new file mode 100644 index 000000000..d3d462a7f --- /dev/null +++ b/BlueWater/Assets/02.Scripts/Interface/IAiMover.cs @@ -0,0 +1,25 @@ +using UnityEngine; + +// ReSharper disable once CheckNamespace +namespace BlueWaterProject +{ + public enum MoveType + { + NONE, // 미설정 + FIXED, // 자리를 지키는 AI + MOVE // 자리를 움직이는 AI + } + + public interface IAiMover : IAiBase + { + // Properties + MoveType MoveType { get; set; } + + bool IsCommanded { get; set; } + + // Functions + void UpdateMovement(); + + void MoveTarget(Vector3 targetPos); + } +} diff --git a/BlueWater/Assets/02.Scripts/Ai/AiMover.cs.meta b/BlueWater/Assets/02.Scripts/Interface/IAiMover.cs.meta similarity index 83% rename from BlueWater/Assets/02.Scripts/Ai/AiMover.cs.meta rename to BlueWater/Assets/02.Scripts/Interface/IAiMover.cs.meta index aa064d0f4..db9b08737 100644 --- a/BlueWater/Assets/02.Scripts/Ai/AiMover.cs.meta +++ b/BlueWater/Assets/02.Scripts/Interface/IAiMover.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b3815b2d4a7cc254e8141b8720fe6738 +guid: 9b65a318a1f8f084696c3b965c723a3c MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/BlueWater/Assets/02.Scripts/Interface/IFieldOfView.cs b/BlueWater/Assets/02.Scripts/Interface/IFieldOfView.cs index 921d57365..d2753be08 100644 --- a/BlueWater/Assets/02.Scripts/Interface/IFieldOfView.cs +++ b/BlueWater/Assets/02.Scripts/Interface/IFieldOfView.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -5,6 +6,42 @@ using UnityEngine; // ReSharper disable once CheckNamespace namespace BlueWaterProject { + [Serializable] + public class TargetInfo + { + public Transform transform; + public Collider collider; + public IAiStat iAiStat; + + public TargetInfo() + { + transform = null; + collider = null; + iAiStat = null; + } + + public TargetInfo(Transform transform, Collider collider, IAiStat iAiStat) + { + this.transform = transform; + this.collider = collider; + this.iAiStat = iAiStat; + } + + public void SetTargetInfo(Transform targetTransform, Collider collider, IAiStat targetIAiStat) + { + transform = targetTransform; + this.collider = collider; + iAiStat = targetIAiStat; + } + + public void DefaultSetting() + { + transform = null; + collider = null; + iAiStat = null; + } + } + public interface IFieldOfView : IAiStat { // Properties diff --git a/BlueWater/Assets/05.Prefabs/Character/Enemy/Archer_E.prefab b/BlueWater/Assets/05.Prefabs/Character/Enemy/Archer_E.prefab index 8b332bda8..ddbd18ae4 100644 --- a/BlueWater/Assets/05.Prefabs/Character/Enemy/Archer_E.prefab +++ b/BlueWater/Assets/05.Prefabs/Character/Enemy/Archer_E.prefab @@ -8842,7 +8842,6 @@ GameObject: - component: {fileID: 5573013734212559145} - component: {fileID: 7168357575438651213} - component: {fileID: 7791165217067826530} - - component: {fileID: 7718871607120422351} - component: {fileID: 7907774551260894579} m_Layer: 10 m_Name: Archer_E @@ -9022,19 +9021,6 @@ CapsuleCollider: m_Height: 1.6 m_Direction: 1 m_Center: {x: 0, y: 0.8, z: 0} ---- !u!114 &7718871607120422351 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 155132} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3} - m_Name: - m_EditorClassIdentifier: - moveType: 1 --- !u!114 &7907774551260894579 MonoBehaviour: m_ObjectHideFlags: 0 @@ -9100,6 +9086,8 @@ MonoBehaviour: k__BackingField: transform: {fileID: 0} collider: {fileID: 0} + k__BackingField: 1 + k__BackingField: 0 arrowPrefab: {fileID: 3190292116200820221, guid: 09f461c60481dea4b975222675a2682f, type: 3} arrowMaxSize: 100 diff --git a/BlueWater/Assets/05.Prefabs/Character/Enemy/SpearKnight_E.prefab b/BlueWater/Assets/05.Prefabs/Character/Enemy/SpearKnight_E.prefab index 81d51bc1b..7b6b0d25f 100644 --- a/BlueWater/Assets/05.Prefabs/Character/Enemy/SpearKnight_E.prefab +++ b/BlueWater/Assets/05.Prefabs/Character/Enemy/SpearKnight_E.prefab @@ -8842,7 +8842,6 @@ GameObject: - component: {fileID: 1585740381921473437} - component: {fileID: 6873184234425177088} - component: {fileID: 3683547817894632574} - - component: {fileID: -1311775106345794486} - component: {fileID: 7182214291447694529} m_Layer: 10 m_Name: SpearKnight_E @@ -9022,19 +9021,6 @@ CapsuleCollider: m_Height: 1.6 m_Direction: 1 m_Center: {x: 0, y: 0.8, z: 0} ---- !u!114 &-1311775106345794486 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 155132} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3} - m_Name: - m_EditorClassIdentifier: - moveType: 2 --- !u!114 &7182214291447694529 MonoBehaviour: m_ObjectHideFlags: 0 @@ -9100,6 +9086,8 @@ MonoBehaviour: k__BackingField: transform: {fileID: 0} collider: {fileID: 0} + k__BackingField: 2 + k__BackingField: 0 --- !u!1 &156456 GameObject: m_ObjectHideFlags: 0 diff --git a/BlueWater/Assets/05.Prefabs/Character/Enemy/Spearman_E.prefab b/BlueWater/Assets/05.Prefabs/Character/Enemy/Spearman_E.prefab index 64d5087e8..6ddeeacf7 100644 --- a/BlueWater/Assets/05.Prefabs/Character/Enemy/Spearman_E.prefab +++ b/BlueWater/Assets/05.Prefabs/Character/Enemy/Spearman_E.prefab @@ -8842,7 +8842,6 @@ GameObject: - component: {fileID: -5432587835745218081} - component: {fileID: 3624658373763787491} - component: {fileID: 4122610663137176938} - - component: {fileID: -9119350118846133839} - component: {fileID: 7704073908654393070} m_Layer: 10 m_Name: Spearman_E @@ -9022,19 +9021,6 @@ CapsuleCollider: m_Height: 1.6 m_Direction: 1 m_Center: {x: 0, y: 0.8, z: 0} ---- !u!114 &-9119350118846133839 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 155132} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3} - m_Name: - m_EditorClassIdentifier: - moveType: 2 --- !u!114 &7704073908654393070 MonoBehaviour: m_ObjectHideFlags: 0 @@ -9100,6 +9086,8 @@ MonoBehaviour: k__BackingField: transform: {fileID: 0} collider: {fileID: 0} + k__BackingField: 2 + k__BackingField: 0 --- !u!1 &156456 GameObject: m_ObjectHideFlags: 0 diff --git a/BlueWater/Assets/05.Prefabs/Character/Enemy/SwordKnight_E.prefab b/BlueWater/Assets/05.Prefabs/Character/Enemy/SwordKnight_E.prefab index d5bf849c9..93a3c5927 100644 --- a/BlueWater/Assets/05.Prefabs/Character/Enemy/SwordKnight_E.prefab +++ b/BlueWater/Assets/05.Prefabs/Character/Enemy/SwordKnight_E.prefab @@ -8842,7 +8842,6 @@ GameObject: - component: {fileID: -6969909005288574405} - component: {fileID: 1866651242933062860} - component: {fileID: 1995768815968683845} - - component: {fileID: 6770120175933505588} - component: {fileID: 6047348452593534959} m_Layer: 10 m_Name: SwordKnight_E @@ -9022,19 +9021,6 @@ CapsuleCollider: m_Height: 1.6 m_Direction: 1 m_Center: {x: 0, y: 0.8, z: 0} ---- !u!114 &6770120175933505588 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 155132} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3} - m_Name: - m_EditorClassIdentifier: - moveType: 2 --- !u!114 &6047348452593534959 MonoBehaviour: m_ObjectHideFlags: 0 @@ -9100,6 +9086,8 @@ MonoBehaviour: k__BackingField: transform: {fileID: 0} collider: {fileID: 0} + k__BackingField: 2 + k__BackingField: 0 --- !u!1 &156456 GameObject: m_ObjectHideFlags: 0 diff --git a/BlueWater/Assets/05.Prefabs/Character/Enemy/Swordman_E.prefab b/BlueWater/Assets/05.Prefabs/Character/Enemy/Swordman_E.prefab index 1c670e0a1..fdea0ccb4 100644 --- a/BlueWater/Assets/05.Prefabs/Character/Enemy/Swordman_E.prefab +++ b/BlueWater/Assets/05.Prefabs/Character/Enemy/Swordman_E.prefab @@ -8842,7 +8842,6 @@ GameObject: - component: {fileID: 2465164759345150209} - component: {fileID: 5315314452492636260} - component: {fileID: 4374537182398505653} - - component: {fileID: -6091092864301247192} - component: {fileID: 1001412064052513076} m_Layer: 10 m_Name: Swordman_E @@ -9022,19 +9021,6 @@ CapsuleCollider: m_Height: 1.6 m_Direction: 1 m_Center: {x: 0, y: 0.8, z: 0} ---- !u!114 &-6091092864301247192 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 155132} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3} - m_Name: - m_EditorClassIdentifier: - moveType: 2 --- !u!114 &1001412064052513076 MonoBehaviour: m_ObjectHideFlags: 0 @@ -9100,6 +9086,8 @@ MonoBehaviour: k__BackingField: transform: {fileID: 0} collider: {fileID: 0} + k__BackingField: 2 + k__BackingField: 0 --- !u!1 &156456 GameObject: m_ObjectHideFlags: 0 diff --git a/BlueWater/Assets/05.Prefabs/Character/Pirate/Archer_P.prefab b/BlueWater/Assets/05.Prefabs/Character/Pirate/Archer_P.prefab index de9f42881..b916b6301 100644 --- a/BlueWater/Assets/05.Prefabs/Character/Pirate/Archer_P.prefab +++ b/BlueWater/Assets/05.Prefabs/Character/Pirate/Archer_P.prefab @@ -8842,7 +8842,6 @@ GameObject: - component: {fileID: -1452054039192376132} - component: {fileID: 7512442584761959655} - component: {fileID: 1485348745952943168} - - component: {fileID: -4856147847642951458} - component: {fileID: 5368244484501432161} m_Layer: 9 m_Name: Archer_P @@ -9022,19 +9021,6 @@ CapsuleCollider: m_Height: 1.6 m_Direction: 1 m_Center: {x: 0, y: 0.8, z: 0} ---- !u!114 &-4856147847642951458 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 155132} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3} - m_Name: - m_EditorClassIdentifier: - moveType: 1 --- !u!114 &5368244484501432161 MonoBehaviour: m_ObjectHideFlags: 0 @@ -9100,6 +9086,8 @@ MonoBehaviour: k__BackingField: transform: {fileID: 0} collider: {fileID: 0} + k__BackingField: 1 + k__BackingField: 0 arrowPrefab: {fileID: 3190292116200820221, guid: 09f461c60481dea4b975222675a2682f, type: 3} arrowMaxSize: 100 diff --git a/BlueWater/Assets/05.Prefabs/Character/Pirate/Axeman_P.prefab b/BlueWater/Assets/05.Prefabs/Character/Pirate/Axeman_P.prefab index 06536150c..9461d4ae5 100644 --- a/BlueWater/Assets/05.Prefabs/Character/Pirate/Axeman_P.prefab +++ b/BlueWater/Assets/05.Prefabs/Character/Pirate/Axeman_P.prefab @@ -8842,7 +8842,6 @@ GameObject: - component: {fileID: 5092290984078098781} - component: {fileID: 2614437605201190422} - component: {fileID: 2219967035923003510} - - component: {fileID: 7784077776967129375} - component: {fileID: 6907943215527842660} m_Layer: 9 m_Name: Axeman_P @@ -9022,19 +9021,6 @@ CapsuleCollider: m_Height: 1.6 m_Direction: 1 m_Center: {x: 0, y: 0.8, z: 0} ---- !u!114 &7784077776967129375 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 155132} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3} - m_Name: - m_EditorClassIdentifier: - moveType: 2 --- !u!114 &6907943215527842660 MonoBehaviour: m_ObjectHideFlags: 0 @@ -9100,6 +9086,8 @@ MonoBehaviour: k__BackingField: transform: {fileID: 0} collider: {fileID: 0} + k__BackingField: 2 + k__BackingField: 0 --- !u!1 &156456 GameObject: m_ObjectHideFlags: 0 diff --git a/BlueWater/Assets/05.Prefabs/Character/Pirate/Spearman_P.prefab b/BlueWater/Assets/05.Prefabs/Character/Pirate/Spearman_P.prefab index 5c1650925..8f023746f 100644 --- a/BlueWater/Assets/05.Prefabs/Character/Pirate/Spearman_P.prefab +++ b/BlueWater/Assets/05.Prefabs/Character/Pirate/Spearman_P.prefab @@ -8842,7 +8842,6 @@ GameObject: - component: {fileID: 3215129809532427712} - component: {fileID: 8718300241156730733} - component: {fileID: 13124744015303705} - - component: {fileID: 7794032711994907147} - component: {fileID: 5358608732463309424} m_Layer: 9 m_Name: Spearman_P @@ -9022,19 +9021,6 @@ CapsuleCollider: m_Height: 1.6 m_Direction: 1 m_Center: {x: 0, y: 0.8, z: 0} ---- !u!114 &7794032711994907147 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 155132} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3} - m_Name: - m_EditorClassIdentifier: - moveType: 2 --- !u!114 &5358608732463309424 MonoBehaviour: m_ObjectHideFlags: 0 @@ -9100,6 +9086,8 @@ MonoBehaviour: k__BackingField: transform: {fileID: 0} collider: {fileID: 0} + k__BackingField: 2 + k__BackingField: 0 --- !u!1 &156456 GameObject: m_ObjectHideFlags: 0 diff --git a/BlueWater/Assets/05.Prefabs/Character/Pirate/SwordKnight_P.prefab b/BlueWater/Assets/05.Prefabs/Character/Pirate/SwordKnight_P.prefab index a62f5687b..7108d91ab 100644 --- a/BlueWater/Assets/05.Prefabs/Character/Pirate/SwordKnight_P.prefab +++ b/BlueWater/Assets/05.Prefabs/Character/Pirate/SwordKnight_P.prefab @@ -8842,7 +8842,6 @@ GameObject: - component: {fileID: 5757796364526883762} - component: {fileID: 4974866494169781262} - component: {fileID: 9121247047284190495} - - component: {fileID: -5759407904415877482} - component: {fileID: 577732947051587098} m_Layer: 9 m_Name: SwordKnight_P @@ -9022,19 +9021,6 @@ CapsuleCollider: m_Height: 1.6 m_Direction: 1 m_Center: {x: 0, y: 0.8, z: 0} ---- !u!114 &-5759407904415877482 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 155132} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3} - m_Name: - m_EditorClassIdentifier: - moveType: 2 --- !u!114 &577732947051587098 MonoBehaviour: m_ObjectHideFlags: 0 @@ -9100,6 +9086,8 @@ MonoBehaviour: k__BackingField: transform: {fileID: 0} collider: {fileID: 0} + k__BackingField: 2 + k__BackingField: 0 --- !u!1 &156456 GameObject: m_ObjectHideFlags: 0 diff --git a/BlueWater/Assets/05.Prefabs/Character/Pirate/Swordman_P.prefab b/BlueWater/Assets/05.Prefabs/Character/Pirate/Swordman_P.prefab index 11280b1e8..5fe8dd4cd 100644 --- a/BlueWater/Assets/05.Prefabs/Character/Pirate/Swordman_P.prefab +++ b/BlueWater/Assets/05.Prefabs/Character/Pirate/Swordman_P.prefab @@ -8842,7 +8842,6 @@ GameObject: - component: {fileID: -7252639514611643757} - component: {fileID: 4344432134670323988} - component: {fileID: 6882424985411624636} - - component: {fileID: 2583839811861868434} - component: {fileID: 1136834195750313725} m_Layer: 9 m_Name: Swordman_P @@ -9022,19 +9021,6 @@ CapsuleCollider: m_Height: 1.6 m_Direction: 1 m_Center: {x: 0, y: 0.8, z: 0} ---- !u!114 &2583839811861868434 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 155132} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3815b2d4a7cc254e8141b8720fe6738, type: 3} - m_Name: - m_EditorClassIdentifier: - moveType: 2 --- !u!114 &1136834195750313725 MonoBehaviour: m_ObjectHideFlags: 0 @@ -9100,6 +9086,8 @@ MonoBehaviour: k__BackingField: transform: {fileID: 0} collider: {fileID: 0} + k__BackingField: 2 + k__BackingField: 0 --- !u!1 &156456 GameObject: m_ObjectHideFlags: 0