#7 FieldOfView, AiMover 삭제 후 AiController의 인터페이스화

Ai 프리팹 구성요소 변경
This commit is contained in:
NTG_Lenovo 2023-08-16 08:34:55 +09:00
parent 42f15c5a6e
commit fb7893d0f5
17 changed files with 147 additions and 409 deletions

View File

@ -4,6 +4,7 @@ using System.Collections.Generic;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;
using UnityEngine.AI; using UnityEngine.AI;
using UnityEngine.Serialization;
using Random = UnityEngine.Random; using Random = UnityEngine.Random;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
@ -18,27 +19,37 @@ namespace BlueWaterProject
} }
[Serializable] [Serializable]
public abstract class AiController : MonoBehaviour, IDamageable, IFieldOfView public abstract class AiController : MonoBehaviour, IDamageable, IFieldOfView, IAiMover
{ {
#region Property and variable #region Property and variable
[Title("Skin")]
[Tooltip("SkinnedMeshRenderer, MeshRenderer의 Material을 모두 담고 있는 리스트")]
[SerializeField] protected List<Material> 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 bool isAttacking;
protected AttackerType attackerType; protected AttackerType attackerType;
[SerializeField] protected List<Material> skinMaterial = new(10);
protected Animator aiAnimator; protected Animator aiAnimator;
protected AiMover aiMover;
protected NavMeshAgent navMeshAgent; protected NavMeshAgent navMeshAgent;
private UnitController mouseEnterUnitController; private UnitController mouseEnterUnitController;
private UnitSelection unitSelection; private UnitSelection unitSelection;
public static readonly int SpeedHash = Animator.StringToHash("Speed"); private static readonly int SpeedHash = Animator.StringToHash("Speed");
public static readonly int AttackHash = Animator.StringToHash("Attack"); protected static readonly int AttackHash = Animator.StringToHash("Attack");
public static readonly int DamageHash = Animator.StringToHash("TakeDamage"); private static readonly int DamageHash = Animator.StringToHash("TakeDamage");
public static readonly int DeathTypeHash = Animator.StringToHash("DeathType"); private static readonly int DeathTypeHash = Animator.StringToHash("DeathType");
public static readonly int DeathHash = Animator.StringToHash("Death"); private static readonly int DeathHash = Animator.StringToHash("Death");
public static readonly int OutlineColorHash = Shader.PropertyToID("_OutlineColor"); private static readonly int OutlineColorHash = Shader.PropertyToID("_OutlineColor");
private static readonly WaitForSeconds FindTargetWaitTime = new(0.5f); private static readonly WaitForSeconds FindTargetWaitTime = new(0.5f);
@ -61,7 +72,6 @@ namespace BlueWaterProject
{ {
FindMaterial(); FindMaterial();
aiAnimator = Utils.GetComponentAndAssert<Animator>(transform); aiAnimator = Utils.GetComponentAndAssert<Animator>(transform);
aiMover = Utils.GetComponentAndAssert<AiMover>(transform);
navMeshAgent = Utils.GetComponentAndAssert<NavMeshAgent>(transform); navMeshAgent = Utils.GetComponentAndAssert<NavMeshAgent>(transform);
unitSelection = FindObjectOfType<UnitSelection>(); unitSelection = FindObjectOfType<UnitSelection>();
@ -92,6 +102,7 @@ namespace BlueWaterProject
private void FixedUpdate() private void FixedUpdate()
{ {
UpdateLookAtTarget(); UpdateLookAtTarget();
UpdateMovement();
} }
private void OnMouseEnter() private void OnMouseEnter()
@ -293,9 +304,42 @@ namespace BlueWaterProject
#endregion #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 #endregion
#region Custom function #region Custom function
private void FindMaterial() private void FindMaterial()
{ {
var skinnedMeshRenderers = GetComponentsInChildren<SkinnedMeshRenderer>(); var skinnedMeshRenderers = GetComponentsInChildren<SkinnedMeshRenderer>();
@ -305,40 +349,28 @@ namespace BlueWaterProject
{ {
if (!skin.gameObject.activeSelf) continue; if (!skin.gameObject.activeSelf) continue;
skinMaterial.Add(skin.material); skinMaterialList.Add(skin.material);
} }
foreach (var skin in meshRenderers) foreach (var skin in meshRenderers)
{ {
if (!skin.gameObject.activeSelf) continue; 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()
{ public void ResetHighlight() => SetOutlineColor(Color.black);
foreach (var skin in skinMaterial) public void MouseEnterHighlight() => SetOutlineColor(Color.white);
{ public void SelectedHighlight() => SetOutlineColor(Color.blue);
skin.SetColor(OutlineColorHash, Color.white);
}
}
public void SelectedHighlight()
{
foreach (var skin in skinMaterial)
{
skin.SetColor(OutlineColorHash, Color.blue);
}
}
private void DestroyObject() => Destroy(gameObject); private void DestroyObject() => Destroy(gameObject);
public bool GetIsAttacking() => isAttacking; public bool GetIsAttacking() => isAttacking;
public NavMeshAgent GetNavMeshAgent() => navMeshAgent; public NavMeshAgent GetNavMeshAgent() => navMeshAgent;

View File

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

View File

@ -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<IAiStat>();
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<IAiStat>();
if (iAiStat.GetCurrentHp() <= 0) continue;
nearestDistance = distance;
nearestTargetTransform = colliderWithinRange[i].transform;
}
if (nearestTargetTransform)
{
targetCollider = nearestTargetTransform.GetComponent<Collider>();
iAiStat = nearestTargetTransform.GetComponent<IAiStat>();
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
}
}

View File

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

View File

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

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: b3815b2d4a7cc254e8141b8720fe6738 guid: 9b65a318a1f8f084696c3b965c723a3c
MonoImporter: MonoImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 2 serializedVersion: 2

View File

@ -1,3 +1,4 @@
using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
@ -5,6 +6,42 @@ using UnityEngine;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
namespace BlueWaterProject 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 public interface IFieldOfView : IAiStat
{ {
// Properties // Properties

View File

@ -8842,7 +8842,6 @@ GameObject:
- component: {fileID: 5573013734212559145} - component: {fileID: 5573013734212559145}
- component: {fileID: 7168357575438651213} - component: {fileID: 7168357575438651213}
- component: {fileID: 7791165217067826530} - component: {fileID: 7791165217067826530}
- component: {fileID: 7718871607120422351}
- component: {fileID: 7907774551260894579} - component: {fileID: 7907774551260894579}
m_Layer: 10 m_Layer: 10
m_Name: Archer_E m_Name: Archer_E
@ -9022,19 +9021,6 @@ CapsuleCollider:
m_Height: 1.6 m_Height: 1.6
m_Direction: 1 m_Direction: 1
m_Center: {x: 0, y: 0.8, z: 0} 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 --- !u!114 &7907774551260894579
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -9100,6 +9086,8 @@ MonoBehaviour:
<TargetInfo>k__BackingField: <TargetInfo>k__BackingField:
transform: {fileID: 0} transform: {fileID: 0}
collider: {fileID: 0} collider: {fileID: 0}
<MoveType>k__BackingField: 1
<IsCommanded>k__BackingField: 0
arrowPrefab: {fileID: 3190292116200820221, guid: 09f461c60481dea4b975222675a2682f, arrowPrefab: {fileID: 3190292116200820221, guid: 09f461c60481dea4b975222675a2682f,
type: 3} type: 3}
arrowMaxSize: 100 arrowMaxSize: 100

View File

@ -8842,7 +8842,6 @@ GameObject:
- component: {fileID: 1585740381921473437} - component: {fileID: 1585740381921473437}
- component: {fileID: 6873184234425177088} - component: {fileID: 6873184234425177088}
- component: {fileID: 3683547817894632574} - component: {fileID: 3683547817894632574}
- component: {fileID: -1311775106345794486}
- component: {fileID: 7182214291447694529} - component: {fileID: 7182214291447694529}
m_Layer: 10 m_Layer: 10
m_Name: SpearKnight_E m_Name: SpearKnight_E
@ -9022,19 +9021,6 @@ CapsuleCollider:
m_Height: 1.6 m_Height: 1.6
m_Direction: 1 m_Direction: 1
m_Center: {x: 0, y: 0.8, z: 0} 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 --- !u!114 &7182214291447694529
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -9100,6 +9086,8 @@ MonoBehaviour:
<TargetInfo>k__BackingField: <TargetInfo>k__BackingField:
transform: {fileID: 0} transform: {fileID: 0}
collider: {fileID: 0} collider: {fileID: 0}
<MoveType>k__BackingField: 2
<IsCommanded>k__BackingField: 0
--- !u!1 &156456 --- !u!1 &156456
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -8842,7 +8842,6 @@ GameObject:
- component: {fileID: -5432587835745218081} - component: {fileID: -5432587835745218081}
- component: {fileID: 3624658373763787491} - component: {fileID: 3624658373763787491}
- component: {fileID: 4122610663137176938} - component: {fileID: 4122610663137176938}
- component: {fileID: -9119350118846133839}
- component: {fileID: 7704073908654393070} - component: {fileID: 7704073908654393070}
m_Layer: 10 m_Layer: 10
m_Name: Spearman_E m_Name: Spearman_E
@ -9022,19 +9021,6 @@ CapsuleCollider:
m_Height: 1.6 m_Height: 1.6
m_Direction: 1 m_Direction: 1
m_Center: {x: 0, y: 0.8, z: 0} 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 --- !u!114 &7704073908654393070
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -9100,6 +9086,8 @@ MonoBehaviour:
<TargetInfo>k__BackingField: <TargetInfo>k__BackingField:
transform: {fileID: 0} transform: {fileID: 0}
collider: {fileID: 0} collider: {fileID: 0}
<MoveType>k__BackingField: 2
<IsCommanded>k__BackingField: 0
--- !u!1 &156456 --- !u!1 &156456
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -8842,7 +8842,6 @@ GameObject:
- component: {fileID: -6969909005288574405} - component: {fileID: -6969909005288574405}
- component: {fileID: 1866651242933062860} - component: {fileID: 1866651242933062860}
- component: {fileID: 1995768815968683845} - component: {fileID: 1995768815968683845}
- component: {fileID: 6770120175933505588}
- component: {fileID: 6047348452593534959} - component: {fileID: 6047348452593534959}
m_Layer: 10 m_Layer: 10
m_Name: SwordKnight_E m_Name: SwordKnight_E
@ -9022,19 +9021,6 @@ CapsuleCollider:
m_Height: 1.6 m_Height: 1.6
m_Direction: 1 m_Direction: 1
m_Center: {x: 0, y: 0.8, z: 0} 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 --- !u!114 &6047348452593534959
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -9100,6 +9086,8 @@ MonoBehaviour:
<TargetInfo>k__BackingField: <TargetInfo>k__BackingField:
transform: {fileID: 0} transform: {fileID: 0}
collider: {fileID: 0} collider: {fileID: 0}
<MoveType>k__BackingField: 2
<IsCommanded>k__BackingField: 0
--- !u!1 &156456 --- !u!1 &156456
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -8842,7 +8842,6 @@ GameObject:
- component: {fileID: 2465164759345150209} - component: {fileID: 2465164759345150209}
- component: {fileID: 5315314452492636260} - component: {fileID: 5315314452492636260}
- component: {fileID: 4374537182398505653} - component: {fileID: 4374537182398505653}
- component: {fileID: -6091092864301247192}
- component: {fileID: 1001412064052513076} - component: {fileID: 1001412064052513076}
m_Layer: 10 m_Layer: 10
m_Name: Swordman_E m_Name: Swordman_E
@ -9022,19 +9021,6 @@ CapsuleCollider:
m_Height: 1.6 m_Height: 1.6
m_Direction: 1 m_Direction: 1
m_Center: {x: 0, y: 0.8, z: 0} 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 --- !u!114 &1001412064052513076
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -9100,6 +9086,8 @@ MonoBehaviour:
<TargetInfo>k__BackingField: <TargetInfo>k__BackingField:
transform: {fileID: 0} transform: {fileID: 0}
collider: {fileID: 0} collider: {fileID: 0}
<MoveType>k__BackingField: 2
<IsCommanded>k__BackingField: 0
--- !u!1 &156456 --- !u!1 &156456
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -8842,7 +8842,6 @@ GameObject:
- component: {fileID: -1452054039192376132} - component: {fileID: -1452054039192376132}
- component: {fileID: 7512442584761959655} - component: {fileID: 7512442584761959655}
- component: {fileID: 1485348745952943168} - component: {fileID: 1485348745952943168}
- component: {fileID: -4856147847642951458}
- component: {fileID: 5368244484501432161} - component: {fileID: 5368244484501432161}
m_Layer: 9 m_Layer: 9
m_Name: Archer_P m_Name: Archer_P
@ -9022,19 +9021,6 @@ CapsuleCollider:
m_Height: 1.6 m_Height: 1.6
m_Direction: 1 m_Direction: 1
m_Center: {x: 0, y: 0.8, z: 0} 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 --- !u!114 &5368244484501432161
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -9100,6 +9086,8 @@ MonoBehaviour:
<TargetInfo>k__BackingField: <TargetInfo>k__BackingField:
transform: {fileID: 0} transform: {fileID: 0}
collider: {fileID: 0} collider: {fileID: 0}
<MoveType>k__BackingField: 1
<IsCommanded>k__BackingField: 0
arrowPrefab: {fileID: 3190292116200820221, guid: 09f461c60481dea4b975222675a2682f, arrowPrefab: {fileID: 3190292116200820221, guid: 09f461c60481dea4b975222675a2682f,
type: 3} type: 3}
arrowMaxSize: 100 arrowMaxSize: 100

View File

@ -8842,7 +8842,6 @@ GameObject:
- component: {fileID: 5092290984078098781} - component: {fileID: 5092290984078098781}
- component: {fileID: 2614437605201190422} - component: {fileID: 2614437605201190422}
- component: {fileID: 2219967035923003510} - component: {fileID: 2219967035923003510}
- component: {fileID: 7784077776967129375}
- component: {fileID: 6907943215527842660} - component: {fileID: 6907943215527842660}
m_Layer: 9 m_Layer: 9
m_Name: Axeman_P m_Name: Axeman_P
@ -9022,19 +9021,6 @@ CapsuleCollider:
m_Height: 1.6 m_Height: 1.6
m_Direction: 1 m_Direction: 1
m_Center: {x: 0, y: 0.8, z: 0} 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 --- !u!114 &6907943215527842660
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -9100,6 +9086,8 @@ MonoBehaviour:
<TargetInfo>k__BackingField: <TargetInfo>k__BackingField:
transform: {fileID: 0} transform: {fileID: 0}
collider: {fileID: 0} collider: {fileID: 0}
<MoveType>k__BackingField: 2
<IsCommanded>k__BackingField: 0
--- !u!1 &156456 --- !u!1 &156456
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -8842,7 +8842,6 @@ GameObject:
- component: {fileID: 3215129809532427712} - component: {fileID: 3215129809532427712}
- component: {fileID: 8718300241156730733} - component: {fileID: 8718300241156730733}
- component: {fileID: 13124744015303705} - component: {fileID: 13124744015303705}
- component: {fileID: 7794032711994907147}
- component: {fileID: 5358608732463309424} - component: {fileID: 5358608732463309424}
m_Layer: 9 m_Layer: 9
m_Name: Spearman_P m_Name: Spearman_P
@ -9022,19 +9021,6 @@ CapsuleCollider:
m_Height: 1.6 m_Height: 1.6
m_Direction: 1 m_Direction: 1
m_Center: {x: 0, y: 0.8, z: 0} 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 --- !u!114 &5358608732463309424
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -9100,6 +9086,8 @@ MonoBehaviour:
<TargetInfo>k__BackingField: <TargetInfo>k__BackingField:
transform: {fileID: 0} transform: {fileID: 0}
collider: {fileID: 0} collider: {fileID: 0}
<MoveType>k__BackingField: 2
<IsCommanded>k__BackingField: 0
--- !u!1 &156456 --- !u!1 &156456
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -8842,7 +8842,6 @@ GameObject:
- component: {fileID: 5757796364526883762} - component: {fileID: 5757796364526883762}
- component: {fileID: 4974866494169781262} - component: {fileID: 4974866494169781262}
- component: {fileID: 9121247047284190495} - component: {fileID: 9121247047284190495}
- component: {fileID: -5759407904415877482}
- component: {fileID: 577732947051587098} - component: {fileID: 577732947051587098}
m_Layer: 9 m_Layer: 9
m_Name: SwordKnight_P m_Name: SwordKnight_P
@ -9022,19 +9021,6 @@ CapsuleCollider:
m_Height: 1.6 m_Height: 1.6
m_Direction: 1 m_Direction: 1
m_Center: {x: 0, y: 0.8, z: 0} 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 --- !u!114 &577732947051587098
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -9100,6 +9086,8 @@ MonoBehaviour:
<TargetInfo>k__BackingField: <TargetInfo>k__BackingField:
transform: {fileID: 0} transform: {fileID: 0}
collider: {fileID: 0} collider: {fileID: 0}
<MoveType>k__BackingField: 2
<IsCommanded>k__BackingField: 0
--- !u!1 &156456 --- !u!1 &156456
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -8842,7 +8842,6 @@ GameObject:
- component: {fileID: -7252639514611643757} - component: {fileID: -7252639514611643757}
- component: {fileID: 4344432134670323988} - component: {fileID: 4344432134670323988}
- component: {fileID: 6882424985411624636} - component: {fileID: 6882424985411624636}
- component: {fileID: 2583839811861868434}
- component: {fileID: 1136834195750313725} - component: {fileID: 1136834195750313725}
m_Layer: 9 m_Layer: 9
m_Name: Swordman_P m_Name: Swordman_P
@ -9022,19 +9021,6 @@ CapsuleCollider:
m_Height: 1.6 m_Height: 1.6
m_Direction: 1 m_Direction: 1
m_Center: {x: 0, y: 0.8, z: 0} 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 --- !u!114 &1136834195750313725
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -9100,6 +9086,8 @@ MonoBehaviour:
<TargetInfo>k__BackingField: <TargetInfo>k__BackingField:
transform: {fileID: 0} transform: {fileID: 0}
collider: {fileID: 0} collider: {fileID: 0}
<MoveType>k__BackingField: 2
<IsCommanded>k__BackingField: 0
--- !u!1 &156456 --- !u!1 &156456
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0