#8 유닛 이동, 공격 테스트 중
- Ai프리팹 이동속도 변경, 애니메이션 및 애니메이션 이벤트 추가 및 변경 - Enemy의 화살이 안맞는 오류 수정 - 유닛 생성시 UnitName이 아무 값도 안들어있으면 자동 이름변경 - 인터페이스(IAiMover, IFieldOfView, IDamageable) 구조 변경 - 유닛 선택 구조 변경(여러 유닛 겹쳐서 선택하던 오류 수정)
This commit is contained in:
parent
6ba9aed9f9
commit
7fa593f6ee
File diff suppressed because it is too large
Load Diff
@ -35,13 +35,17 @@ namespace BlueWaterProject
|
||||
[Tooltip("캐릭터가 선택되었을 때 색상")]
|
||||
[SerializeField] protected Color selectedSkinColor = Color.blue;
|
||||
|
||||
protected bool isAttacking;
|
||||
protected AttackerType attackerType;
|
||||
[SerializeField] protected bool isAttacking;
|
||||
[SerializeField] protected AttackerType attackerType;
|
||||
private Vector3 commandedPos;
|
||||
|
||||
protected Animator aiAnimator;
|
||||
protected NavMeshAgent navMeshAgent;
|
||||
private UnitController myUnitController;
|
||||
private UnitController mouseEnterUnitController;
|
||||
private UnitSelection unitSelection;
|
||||
private CapsuleCollider myCollider;
|
||||
private CapsuleCollider hitBoxCollider;
|
||||
|
||||
private static readonly int SpeedHash = Animator.StringToHash("Speed");
|
||||
protected static readonly int AttackHash = Animator.StringToHash("Attack");
|
||||
@ -75,6 +79,9 @@ namespace BlueWaterProject
|
||||
FindMaterial();
|
||||
aiAnimator = Utils.GetComponentAndAssert<Animator>(transform);
|
||||
navMeshAgent = Utils.GetComponentAndAssert<NavMeshAgent>(transform);
|
||||
myUnitController = Utils.GetComponentAndAssert<UnitController>(transform.parent);
|
||||
myCollider = Utils.GetComponentAndAssert<CapsuleCollider>(transform);
|
||||
hitBoxCollider = Utils.GetComponentAndAssert<CapsuleCollider>(transform.Find("HitBox"));
|
||||
|
||||
unitSelection = FindObjectOfType<UnitSelection>();
|
||||
|
||||
@ -143,8 +150,13 @@ namespace BlueWaterProject
|
||||
|
||||
public float GetCurrentHp() => AiStat.currentHp;
|
||||
|
||||
public void TakeDamage(AiStat attacker, AiStat defender)
|
||||
public void TakeDamage(AiStat attacker, AiStat defender, Vector3? attackPos = null)
|
||||
{
|
||||
if (!TargetTransform && attackPos != null)
|
||||
{
|
||||
BeAttackedMovement((Vector3)attackPos);
|
||||
}
|
||||
|
||||
// 회피 성공 체크
|
||||
if (Random.Range(0, 100) < defender.avoidanceRate)
|
||||
{
|
||||
@ -166,13 +178,18 @@ namespace BlueWaterProject
|
||||
// 죽었는지 체크
|
||||
if (changeHp == 0f)
|
||||
{
|
||||
myCollider.enabled = false;
|
||||
hitBoxCollider.enabled = false;
|
||||
navMeshAgent.isStopped = true;
|
||||
navMeshAgent.velocity = Vector3.zero;
|
||||
|
||||
var randomValue = Random.Range(0, 2);
|
||||
aiAnimator.SetInteger(DeathTypeHash, randomValue);
|
||||
|
||||
// TODO : 죽었을 때 처리(죽는 애니메이션 이후 사라지는 효과 등)
|
||||
aiAnimator.SetTrigger(DeathHash);
|
||||
|
||||
Invoke(nameof(DestroyObject), 5f);
|
||||
Invoke(nameof(DestroyObject), 3f);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -193,11 +210,13 @@ namespace BlueWaterProject
|
||||
|
||||
[field: SerializeField] public Collider[] ColliderWithinRange { get; set; } = new Collider[TARGET_MAX_SIZE];
|
||||
|
||||
[field: SerializeField] public List<TargetInfo> TargetInfoList { get; set; } = new(TARGET_MAX_SIZE);
|
||||
//[field: SerializeField] public List<TargetInfo> TargetInfoList { get; set; } = new(TARGET_MAX_SIZE);
|
||||
|
||||
[field: SerializeField] public IAiStat IaiStat { get; set; }
|
||||
|
||||
[field: SerializeField] public TargetInfo TargetInfo { get; set; } = new();
|
||||
[field: SerializeField] public Transform TargetTransform { get; set; }
|
||||
|
||||
//[field: SerializeField] public TargetInfo TargetInfo { get; set; } = new();
|
||||
|
||||
private const int TARGET_MAX_SIZE = 30;
|
||||
|
||||
@ -210,9 +229,9 @@ namespace BlueWaterProject
|
||||
Gizmos.color = Color.green;
|
||||
Gizmos.DrawWireSphere(myPos, ViewRadius);
|
||||
|
||||
if (TargetInfo.transform == null) return;
|
||||
if (!TargetTransform) return;
|
||||
|
||||
Debug.DrawLine(myPos, TargetInfo.transform.position, Color.red);
|
||||
Debug.DrawLine(myPos, TargetTransform.position, Color.red);
|
||||
}
|
||||
|
||||
public IEnumerator FindTarget()
|
||||
@ -220,7 +239,6 @@ namespace BlueWaterProject
|
||||
while (true)
|
||||
{
|
||||
Array.Clear(ColliderWithinRange, 0, TARGET_MAX_SIZE);
|
||||
TargetInfoList.Clear();
|
||||
|
||||
var myPos = transform.position;
|
||||
var maxColliderCount = Physics.OverlapSphereNonAlloc(myPos, ViewRadius, ColliderWithinRange,
|
||||
@ -228,71 +246,37 @@ namespace BlueWaterProject
|
||||
|
||||
if (maxColliderCount <= 0)
|
||||
{
|
||||
TargetInfo.DefaultSetting();
|
||||
TargetTransform = null;
|
||||
yield return FindTargetWaitTime;
|
||||
continue;
|
||||
}
|
||||
|
||||
var nearestDistance = Mathf.Infinity;
|
||||
Transform nearestTargetTransform = null;
|
||||
|
||||
for (var i = 0; i < maxColliderCount; i++)
|
||||
{
|
||||
IaiStat = ColliderWithinRange[i].GetComponent<IAiStat>();
|
||||
if (IaiStat != null)
|
||||
{
|
||||
TargetInfoList.Add(new TargetInfo(ColliderWithinRange[i].transform, ColliderWithinRange[i], IaiStat));
|
||||
}
|
||||
var distanceToTarget = Vector3.Distance(transform.position, ColliderWithinRange[i].transform.position);
|
||||
|
||||
if (distanceToTarget >= nearestDistance) continue;
|
||||
|
||||
nearestDistance = distanceToTarget;
|
||||
nearestTargetTransform = ColliderWithinRange[i].transform;
|
||||
}
|
||||
|
||||
if (TargetInfoList.Count <= 0)
|
||||
{
|
||||
TargetInfo.DefaultSetting();
|
||||
yield return FindTargetWaitTime;
|
||||
continue;
|
||||
}
|
||||
|
||||
int nearestIndex;
|
||||
float nearestDistance;
|
||||
TargetTransform = nearestTargetTransform;
|
||||
|
||||
if (TargetInfoList[0].iAiStat.GetCurrentHp() <= 0)
|
||||
{
|
||||
nearestIndex = 0;
|
||||
nearestDistance = float.PositiveInfinity;
|
||||
}
|
||||
else
|
||||
{
|
||||
nearestIndex = 0;
|
||||
nearestDistance = Vector3.Distance(TargetInfoList[0].transform.position, myPos);
|
||||
}
|
||||
|
||||
for (var i = 1; i < TargetInfoList.Count; i++)
|
||||
{
|
||||
var distance = Vector3.Distance(TargetInfoList[i].transform.position, myPos);
|
||||
|
||||
if (nearestDistance < distance || TargetInfoList[i].iAiStat.GetCurrentHp() <= 0) continue;
|
||||
|
||||
nearestIndex = i;
|
||||
nearestDistance = distance;
|
||||
}
|
||||
|
||||
if (TargetInfoList[nearestIndex].transform)
|
||||
{
|
||||
TargetInfo.SetTargetInfo(TargetInfoList[nearestIndex].transform, TargetInfoList[nearestIndex].collider, TargetInfoList[nearestIndex].iAiStat);
|
||||
}
|
||||
else
|
||||
{
|
||||
TargetInfo.DefaultSetting();
|
||||
}
|
||||
|
||||
yield return FindTargetWaitTime;
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateLookAtTarget()
|
||||
{
|
||||
if (TargetInfo.transform)
|
||||
if (TargetTransform)
|
||||
{
|
||||
navMeshAgent.updateRotation = false;
|
||||
|
||||
var targetPos = TargetInfo.transform.position;
|
||||
var targetPos = TargetTransform.position;
|
||||
targetPos.y = transform.position.y;
|
||||
transform.LookAt(targetPos);
|
||||
}
|
||||
@ -308,7 +292,9 @@ namespace BlueWaterProject
|
||||
|
||||
[field: Space(10f)]
|
||||
[field: Title("AiMover")]
|
||||
[field: SerializeField] public MoveType MoveType { get; set; }
|
||||
[field: SerializeField] public MoveType AttackMoveType { get; set; }
|
||||
|
||||
[field: SerializeField] public MoveType BeAttackedMoveType { get; set; }
|
||||
|
||||
[field: SerializeField] public bool IsCommanded { get; set; }
|
||||
|
||||
@ -316,22 +302,69 @@ namespace BlueWaterProject
|
||||
{
|
||||
aiAnimator.SetFloat(SpeedHash, navMeshAgent.velocity.normalized.magnitude);
|
||||
|
||||
if (IsCommanded || isAttacking)
|
||||
if (IsCommanded)
|
||||
{
|
||||
if (navMeshAgent.destination == commandedPos)
|
||||
{
|
||||
if (navMeshAgent.remainingDistance <= navMeshAgent.stoppingDistance)
|
||||
{
|
||||
IsCommanded = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isAttacking) return;
|
||||
|
||||
navMeshAgent.SetDestination(commandedPos);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!TargetInfo.transform || MoveType is MoveType.NONE or MoveType.FIXED) return;
|
||||
|
||||
navMeshAgent.SetDestination(TargetInfo.transform.position);
|
||||
if (!TargetTransform) return;
|
||||
|
||||
switch (AttackMoveType)
|
||||
{
|
||||
case MoveType.NONE:
|
||||
break;
|
||||
case MoveType.FIXED:
|
||||
break;
|
||||
case MoveType.MOVE:
|
||||
if (Vector3.Distance(transform.position, TargetTransform.position) > AiStat.atkRange)
|
||||
{
|
||||
navMeshAgent.SetDestination(TargetTransform.position);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void BeAttackedMovement(Vector3 attackPos)
|
||||
{
|
||||
if (TargetTransform) return;
|
||||
|
||||
switch (BeAttackedMoveType)
|
||||
{
|
||||
case MoveType.NONE:
|
||||
break;
|
||||
case MoveType.FIXED:
|
||||
break;
|
||||
case MoveType.MOVE:
|
||||
if (Vector3.Distance(transform.position, attackPos) > AiStat.atkRange)
|
||||
{
|
||||
myUnitController.MoveCommand(attackPos);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
}
|
||||
|
||||
public void MoveTarget(Vector3 targetPos)
|
||||
{
|
||||
IsCommanded = true;
|
||||
navMeshAgent.SetDestination(targetPos);
|
||||
commandedPos = targetPos;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@ -368,11 +401,11 @@ namespace BlueWaterProject
|
||||
}
|
||||
}
|
||||
|
||||
public void ResetHighlight() => SetOutlineColor(Color.black);
|
||||
public void MouseEnterHighlight() => SetOutlineColor(Color.white);
|
||||
public void SelectedHighlight() => SetOutlineColor(Color.blue);
|
||||
public void ResetHighlight() => SetOutlineColor(defaultSkinColor);
|
||||
public void MouseEnterHighlight() => SetOutlineColor(mouseEnterHighlightSkinColor);
|
||||
public void SelectedHighlight() => SetOutlineColor(selectedSkinColor);
|
||||
private void DestroyObject() => Destroy(gameObject);
|
||||
public bool GetIsAttacking() => isAttacking;
|
||||
public void OnAttacking(int boolValue) => isAttacking = boolValue == 1;
|
||||
public NavMeshAgent GetNavMeshAgent() => navMeshAgent;
|
||||
public Animator GetAnimator() => aiAnimator;
|
||||
public void SetCurrentHp(float value) => AiStat.currentHp = value;
|
||||
|
@ -29,6 +29,8 @@ namespace BlueWaterProject
|
||||
private IEnumerator shootArrowCoroutine;
|
||||
|
||||
private IObjectPool<Arrow> arrowPool;
|
||||
|
||||
[SerializeField] private Vector3 shootOffset = new(0f, 0.8f, 0);
|
||||
|
||||
#endregion
|
||||
|
||||
@ -50,23 +52,6 @@ namespace BlueWaterProject
|
||||
|
||||
protected override void Attack()
|
||||
{
|
||||
// if (aiMover.GetIsCommanded())
|
||||
// {
|
||||
// if (shootArrowCoroutine == null) return;
|
||||
//
|
||||
// StopCoroutine(shootArrowCoroutine);
|
||||
// shootArrowCoroutine = null;
|
||||
// isAttacking = false;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// if (shootArrowCoroutine != null || !TargetInfo.transform ||
|
||||
// AiStat.atkRange < Vector3.Distance(transform.position, TargetInfo.transform.position)) return;
|
||||
//
|
||||
// isAttacking = true;
|
||||
// shootArrowCoroutine = ShootArrowAnimation();
|
||||
// StartCoroutine(shootArrowCoroutine);
|
||||
// }
|
||||
StartCoroutine(nameof(ShootArrowAnimation));
|
||||
}
|
||||
|
||||
@ -74,13 +59,18 @@ namespace BlueWaterProject
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
if (!TargetInfo.transform)
|
||||
if (!TargetTransform)
|
||||
{
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
continue;
|
||||
}
|
||||
|
||||
aiAnimator.SetTrigger(AttackHash);
|
||||
isAttacking = true;
|
||||
while (isAttacking)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
|
||||
yield return new WaitForSeconds(AiStat.atkCooldown);
|
||||
}
|
||||
@ -89,17 +79,19 @@ namespace BlueWaterProject
|
||||
/// <summary>
|
||||
/// Archer attack 애니메이션에 event 부착용 함수
|
||||
/// </summary>
|
||||
public void ShootArrow()
|
||||
public void OnShootArrow()
|
||||
{
|
||||
var arrow = arrowPool.Get();
|
||||
arrow.SetShootingArrow(shootLocation.position,
|
||||
TargetInfo.collider.bounds.center, AiStat, attackerType, inaccuracy);
|
||||
arrow.SetShootingArrow(shootLocation.position, transform.position,
|
||||
TargetTransform.position + shootOffset, AiStat, attackerType, inaccuracy);
|
||||
arrow.ShootArrowCoroutine();
|
||||
}
|
||||
|
||||
public void StopMove() => navMeshAgent.isStopped = true;
|
||||
public void StartMove() => navMeshAgent.isStopped = false;
|
||||
|
||||
/// <summary>
|
||||
/// Archer attack 애니메이션에 event 부착용 함수
|
||||
/// </summary>
|
||||
public void OnStoppedMove(int boolValue) => navMeshAgent.isStopped = boolValue == 1;
|
||||
|
||||
#endregion
|
||||
|
||||
#region ObjectPool Function
|
||||
|
@ -42,13 +42,13 @@ namespace BlueWaterProject
|
||||
public class UnitController : MonoBehaviour
|
||||
{
|
||||
public Unit unit;
|
||||
|
||||
#if UNITY_EDITOR
|
||||
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
if (unit == null || unit.soliderCount <= 0) return;
|
||||
|
||||
var matrix = UnitManager.Inst.UnitMatrices.Find(um => um.soldiers == unit.soliderCount);
|
||||
var unitManager = UnitManager.Inst != null ? UnitManager.Inst : FindObjectOfType<UnitManager>();
|
||||
var matrix = unitManager.UnitMatrices.Find(um => um.soldiers == unit.soliderCount);
|
||||
if (matrix == null) return;
|
||||
|
||||
for (var i = 0; i < unit.soliderCount; i++)
|
||||
@ -61,11 +61,10 @@ namespace BlueWaterProject
|
||||
var spawnPosition = transform.position + new Vector3(xOffset, 0, zOffset);
|
||||
|
||||
var ray = new Ray(spawnPosition, Vector3.down);
|
||||
Gizmos.color = Physics.Raycast(ray, UnitManager.Inst.MaxGroundDistance, UnitManager.Inst.GroundLayer) ? Color.blue : Color.red;
|
||||
Gizmos.DrawRay(ray.origin, ray.direction * UnitManager.Inst.MaxGroundDistance);
|
||||
Gizmos.color = Physics.Raycast(ray, unitManager.MaxGroundDistance, unitManager.GroundLayer) ? Color.blue : Color.red;
|
||||
Gizmos.DrawRay(ray.origin, ray.direction * unitManager.MaxGroundDistance);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
[ContextMenu("유닛 생성")]
|
||||
public void CreateUnit()
|
||||
@ -73,18 +72,18 @@ namespace BlueWaterProject
|
||||
if (!Application.isPlaying)
|
||||
{
|
||||
var unitManager = FindObjectOfType<UnitManager>();
|
||||
unitManager.CreateUnit(this, unit);
|
||||
unitManager.CreateUnit(this);
|
||||
return;
|
||||
}
|
||||
|
||||
UnitManager.Inst.CreateUnit(this, unit);
|
||||
UnitManager.Inst.CreateUnit(this);
|
||||
}
|
||||
|
||||
public void MoveCommand(Vector3 targetPos)
|
||||
{
|
||||
foreach (var soldier in unit.soldierList)
|
||||
{
|
||||
soldier.GetNavMeshAgent().SetDestination(targetPos);
|
||||
soldier.MoveTarget(targetPos);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -88,22 +88,47 @@ namespace BlueWaterProject
|
||||
/// <summary>
|
||||
/// 부대 생성 함수
|
||||
/// </summary>
|
||||
public void CreateUnit(UnitController unitController, Unit unit)
|
||||
public void CreateUnit(UnitController unitController)
|
||||
{
|
||||
DestroyDeployedSoldiers(unitController);
|
||||
|
||||
unitController.gameObject.name = unit.unitName;
|
||||
var baseName = soliderPrefabList[(int)unitController.unit.unitType - 1].name;
|
||||
|
||||
if (string.IsNullOrEmpty(unitController.unit.unitName))
|
||||
{
|
||||
const int maxIterations = 100;
|
||||
var namingNum = 0;
|
||||
|
||||
while (namingNum < maxIterations)
|
||||
{
|
||||
var newUnitName = $"{baseName}_Unit_{namingNum + 1:00}";
|
||||
var checkGameObject = GameObject.Find(newUnitName);
|
||||
if (checkGameObject && checkGameObject != unitController.gameObject)
|
||||
{
|
||||
namingNum++;
|
||||
}
|
||||
else
|
||||
{
|
||||
unitController.gameObject.name = newUnitName;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
unitController.gameObject.name = unitController.unit.unitName;
|
||||
}
|
||||
|
||||
unitController.gameObject.layer = LayerMask.NameToLayer("Unit");
|
||||
unit.soldierList = new List<AiController>(unit.soliderCount);
|
||||
var objectNameBuilder = new StringBuilder();
|
||||
var matrix = UnitMatrices.Find(um => um.soldiers == unit.soliderCount);
|
||||
unitController.unit.soldierList = new List<AiController>(unitController.unit.soliderCount);
|
||||
var matrix = UnitMatrices.Find(um => um.soldiers == unitController.unit.soliderCount);
|
||||
if (matrix == null)
|
||||
{
|
||||
Debug.LogError("사용할 수 없는 병력의 숫자입니다. UnitManager의 UnitMatrices를 확인해주세요.");
|
||||
return;
|
||||
}
|
||||
|
||||
for (var i = 0; i < unit.soliderCount; i++)
|
||||
for (var i = 0; i < unitController.unit.soliderCount; i++)
|
||||
{
|
||||
var row = i / matrix.columns;
|
||||
var column = i % matrix.columns;
|
||||
@ -124,21 +149,15 @@ namespace BlueWaterProject
|
||||
return;
|
||||
}
|
||||
|
||||
var soldierObject = Instantiate(soliderPrefabList[(int)unit.unitType - 1], spawnPosition, Quaternion.identity, unitController.transform).GetComponent<AiController>();
|
||||
var soldierObject = Instantiate(soliderPrefabList[(int)unitController.unit.unitType - 1], spawnPosition,
|
||||
Quaternion.identity, unitController.transform).GetComponent<AiController>();
|
||||
soldierObject.transform.localRotation = Quaternion.identity;
|
||||
|
||||
objectNameBuilder.Clear();
|
||||
objectNameBuilder.Append(soliderPrefabList[(int)unit.unitType - 1].name);
|
||||
objectNameBuilder.Append("_");
|
||||
objectNameBuilder.AppendFormat("{0:00}", i + 1);
|
||||
|
||||
soldierObject.name = objectNameBuilder.ToString();
|
||||
unit.soldierList.Add(soldierObject);
|
||||
var newSoldierName = $"{baseName}_{i + 1:00}";
|
||||
|
||||
soldierObject.name = newSoldierName;
|
||||
unitController.unit.soldierList.Add(soldierObject);
|
||||
}
|
||||
|
||||
// var boxCollider = unitController.gameObject.AddComponent<BoxCollider>();
|
||||
// boxCollider.isTrigger = true;
|
||||
// boxCollider.center = new Vector3(0f, 0.3f, 0f);
|
||||
// boxCollider.size = new Vector3(matrix.columns * 0.5f, 1f, matrix.rows * 0.5f);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -159,19 +178,6 @@ namespace BlueWaterProject
|
||||
DestroyImmediate(unitController.transform.GetChild(i).gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
// var boxColliders = unitController.GetComponents<BoxCollider>();
|
||||
// foreach (var boxCollider in boxColliders)
|
||||
// {
|
||||
// if (Application.isPlaying)
|
||||
// {
|
||||
// Destroy(boxCollider);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// DestroyImmediate(boxCollider);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace BlueWaterProject
|
||||
@ -8,41 +9,14 @@ namespace BlueWaterProject
|
||||
public class UnitSelection : MonoBehaviour
|
||||
{
|
||||
#region Property and variable
|
||||
|
||||
|
||||
[Tooltip("선택된 부대")]
|
||||
[SerializeField] private UnitController selectedUnitController;
|
||||
public UnitController SelectedUnitController
|
||||
{
|
||||
get => selectedUnitController;
|
||||
set
|
||||
{
|
||||
tempUnitController = selectedUnitController;
|
||||
selectedUnitController = value;
|
||||
|
||||
if (selectedUnitController == null)
|
||||
{
|
||||
if (tempUnitController != null)
|
||||
{
|
||||
foreach (var soldier in tempUnitController.unit.soldierList)
|
||||
{
|
||||
soldier.ResetHighlight();
|
||||
}
|
||||
tempUnitController = null;
|
||||
}
|
||||
|
||||
GameManager.Inst.DefaultSpeedMode();
|
||||
}
|
||||
else
|
||||
{
|
||||
GameManager.Inst.SlowSpeedMode();
|
||||
}
|
||||
}
|
||||
}
|
||||
[field: SerializeField] public UnitController SelectedUnitController { get; private set; }
|
||||
|
||||
[SerializeField] private LayerMask unitLayer;
|
||||
[SerializeField] private LayerMask groundLayer;
|
||||
|
||||
private UnitController tempUnitController;
|
||||
private UnitController previousUnitController;
|
||||
private Camera mainCamera;
|
||||
|
||||
#endregion
|
||||
@ -79,22 +53,64 @@ namespace BlueWaterProject
|
||||
|
||||
var ray = mainCamera.ScreenPointToRay(Mouse.current.position.ReadValue());
|
||||
|
||||
// 부대를 클릭 했을 때,
|
||||
if (Physics.Raycast(ray, out var hit, Mathf.Infinity, unitLayer))
|
||||
{
|
||||
var unitController = hit.collider.transform.parent.GetComponent<UnitController>();
|
||||
if (unitController != null)
|
||||
{
|
||||
SelectedUnitController = unitController;
|
||||
if (unitController == null) return;
|
||||
|
||||
foreach (var soldier in selectedUnitController.unit.soldierList)
|
||||
// 선택된 부대가 없었을 때,
|
||||
if (SelectedUnitController == null)
|
||||
{
|
||||
foreach (var soldier in unitController.unit.soldierList)
|
||||
{
|
||||
soldier.SelectedHighlight();
|
||||
}
|
||||
|
||||
SelectedUnitController = unitController;
|
||||
GameManager.Inst.SlowSpeedMode();
|
||||
}
|
||||
// 선택된 부대가 이미 선택된 부대일 때,
|
||||
else if (SelectedUnitController == unitController)
|
||||
{
|
||||
foreach (var soldier in SelectedUnitController.unit.soldierList)
|
||||
{
|
||||
soldier.ResetHighlight();
|
||||
}
|
||||
|
||||
SelectedUnitController = null;
|
||||
GameManager.Inst.DefaultSpeedMode();
|
||||
}
|
||||
// 다른 부대가 선택될 때,
|
||||
else
|
||||
{
|
||||
foreach (var soldier in unitController.unit.soldierList)
|
||||
{
|
||||
soldier.SelectedHighlight();
|
||||
}
|
||||
|
||||
foreach (var soldier in SelectedUnitController.unit.soldierList)
|
||||
{
|
||||
soldier.ResetHighlight();
|
||||
}
|
||||
|
||||
SelectedUnitController = unitController;
|
||||
}
|
||||
}
|
||||
// 부대를 클릭하지 않았을 때,
|
||||
else
|
||||
{
|
||||
// 선택된 부대가 없었을 때,
|
||||
if (SelectedUnitController == null) return;
|
||||
|
||||
// 선택된 부대가 있었을 때,
|
||||
foreach (var soldier in SelectedUnitController.unit.soldierList)
|
||||
{
|
||||
soldier.ResetHighlight();
|
||||
}
|
||||
|
||||
SelectedUnitController = null;
|
||||
GameManager.Inst.DefaultSpeedMode();
|
||||
}
|
||||
}
|
||||
|
||||
@ -108,12 +124,15 @@ namespace BlueWaterProject
|
||||
{
|
||||
var targetPos = hit.point;
|
||||
SelectedUnitController.MoveCommand(targetPos);
|
||||
SelectedUnitController = null;
|
||||
}
|
||||
else
|
||||
|
||||
foreach (var soldier in SelectedUnitController.unit.soldierList)
|
||||
{
|
||||
SelectedUnitController = null;
|
||||
soldier.ResetHighlight();
|
||||
}
|
||||
|
||||
SelectedUnitController = null;
|
||||
GameManager.Inst.DefaultSpeedMode();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -20,6 +20,7 @@ namespace BlueWaterProject
|
||||
[SerializeField] private bool isAttacked;
|
||||
private float g = Mathf.Abs(Physics.gravity.y);
|
||||
private float inaccuracy;
|
||||
private Vector3? attackerPos;
|
||||
private Vector3 targetPos;
|
||||
private AttackerType attackerType;
|
||||
|
||||
@ -48,13 +49,17 @@ namespace BlueWaterProject
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (isAttacked) return;
|
||||
|
||||
if (other.gameObject.layer == LayerMask.NameToLayer("Ground") ||
|
||||
other.gameObject.layer == LayerMask.NameToLayer("Water"))
|
||||
{
|
||||
isAttacked = true;
|
||||
DestroyObject();
|
||||
}
|
||||
else if (other.gameObject.layer == LayerMask.NameToLayer("HitBox"))
|
||||
{
|
||||
print(other.gameObject);
|
||||
switch (attackerType)
|
||||
{
|
||||
case AttackerType.NONE:
|
||||
@ -72,7 +77,7 @@ namespace BlueWaterProject
|
||||
}
|
||||
break;
|
||||
case AttackerType.ENEMY:
|
||||
if (!other.gameObject.CompareTag("Player") || !other.gameObject.CompareTag("Pirate"))
|
||||
if (!other.gameObject.CompareTag("Player") && !other.gameObject.CompareTag("Pirate"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -81,8 +86,12 @@ namespace BlueWaterProject
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
var iDamageable = other.GetComponentInParent<IDamageable>();
|
||||
|
||||
iDamageable.TakeDamage(attackerStat, iDamageable.AiStat);
|
||||
|
||||
if (attackerPos != null)
|
||||
{
|
||||
iDamageable.TakeDamage(attackerStat, iDamageable.AiStat, (Vector3)attackerPos);
|
||||
}
|
||||
isAttacked = true;
|
||||
DestroyObject();
|
||||
}
|
||||
}
|
||||
@ -152,9 +161,14 @@ namespace BlueWaterProject
|
||||
/// <summary>
|
||||
/// 화살이 발사 되기 직전에 필요한 데이터들을 입력받는 함수
|
||||
/// </summary>
|
||||
public void SetShootingArrow(Vector3 shootPos, Vector3 targetPosition, AiStat attackerAiStat, AttackerType type, float inaccuracyValue)
|
||||
public void SetShootingArrow(Vector3 shootLocationPos, Vector3? attackPos, Vector3 targetPosition, AiStat attackerAiStat, AttackerType type, float inaccuracyValue)
|
||||
{
|
||||
transform.position = shootPos;
|
||||
isAttacked = false;
|
||||
transform.position = shootLocationPos;
|
||||
if (attackPos != null)
|
||||
{
|
||||
attackerPos = (Vector3)attackPos;
|
||||
}
|
||||
targetPos = targetPosition;
|
||||
attackerStat = attackerAiStat;
|
||||
attackerType = type;
|
||||
|
@ -13,7 +13,9 @@ namespace BlueWaterProject
|
||||
public interface IAiMover : IAiBase
|
||||
{
|
||||
// Properties
|
||||
MoveType MoveType { get; set; }
|
||||
MoveType AttackMoveType { get; set; }
|
||||
|
||||
MoveType BeAttackedMoveType { get; set; }
|
||||
|
||||
bool IsCommanded { get; set; }
|
||||
|
||||
|
@ -1,8 +1,10 @@
|
||||
using UnityEngine;
|
||||
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace BlueWaterProject
|
||||
{
|
||||
public interface IDamageable : IAiStat
|
||||
{
|
||||
public void TakeDamage(AiStat attacker, AiStat defender);
|
||||
public void TakeDamage(AiStat attacker, AiStat defender, Vector3? attackPos = null);
|
||||
}
|
||||
}
|
@ -1,47 +1,9 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
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
|
||||
@ -52,16 +14,16 @@ namespace BlueWaterProject
|
||||
float ViewRadius { get; set; }
|
||||
|
||||
Collider[] ColliderWithinRange { get; set; }
|
||||
|
||||
List<TargetInfo> TargetInfoList { get; set; }
|
||||
|
||||
|
||||
IAiStat IaiStat { get; set; }
|
||||
|
||||
TargetInfo TargetInfo { get; set; }
|
||||
Transform TargetTransform { get; set; }
|
||||
|
||||
// Functions
|
||||
void DrawGizmosInFieldOfView();
|
||||
|
||||
IEnumerator FindTarget();
|
||||
|
||||
void UpdateLookAtTarget();
|
||||
}
|
||||
}
|
@ -9033,13 +9033,17 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: b934a5073db193343a89fc4597056b68, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
skinMaterial: []
|
||||
skinMaterialList: []
|
||||
defaultSkinColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
mouseEnterHighlightSkinColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
selectedSkinColor: {r: 0, g: 0, b: 1, a: 1}
|
||||
isAttacking: 0
|
||||
<AiStat>k__BackingField:
|
||||
maxHp: 30
|
||||
currentHp: 0
|
||||
atk: 50
|
||||
def: 0
|
||||
moveSpd: 3
|
||||
moveSpd: 5
|
||||
atkCooldown: 3
|
||||
atkRange: 15
|
||||
usingShield: 0
|
||||
@ -9082,18 +9086,17 @@ MonoBehaviour:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
<TargetInfoList>k__BackingField: []
|
||||
<TargetInfo>k__BackingField:
|
||||
transform: {fileID: 0}
|
||||
collider: {fileID: 0}
|
||||
<MoveType>k__BackingField: 1
|
||||
<TargetTransform>k__BackingField: {fileID: 0}
|
||||
<AttackMoveType>k__BackingField: 1
|
||||
<BeAttackedMoveType>k__BackingField: 1
|
||||
<IsCommanded>k__BackingField: 0
|
||||
arrowPrefab: {fileID: 3190292116200820221, guid: 09f461c60481dea4b975222675a2682f,
|
||||
type: 3}
|
||||
arrowMaxSize: 100
|
||||
shootLocation: {fileID: 461634}
|
||||
arrowsPoolLocation: {fileID: 0}
|
||||
inaccuracy: 1
|
||||
inaccuracy: 0.5
|
||||
shootOffset: {x: 0, y: 0.8, z: 0}
|
||||
--- !u!1 &156456
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -9033,13 +9033,17 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 8aa9e82d64fb86549a75d2c51f97dd21, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
skinMaterial: []
|
||||
skinMaterialList: []
|
||||
defaultSkinColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
mouseEnterHighlightSkinColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
selectedSkinColor: {r: 0, g: 0, b: 1, a: 1}
|
||||
isAttacking: 0
|
||||
<AiStat>k__BackingField:
|
||||
maxHp: 60
|
||||
currentHp: 0
|
||||
atk: 40
|
||||
def: 10
|
||||
moveSpd: 2.5
|
||||
moveSpd: 4.5
|
||||
atkCooldown: 2
|
||||
atkRange: 3
|
||||
usingShield: 1
|
||||
@ -9082,11 +9086,9 @@ MonoBehaviour:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
<TargetInfoList>k__BackingField: []
|
||||
<TargetInfo>k__BackingField:
|
||||
transform: {fileID: 0}
|
||||
collider: {fileID: 0}
|
||||
<MoveType>k__BackingField: 2
|
||||
<TargetTransform>k__BackingField: {fileID: 0}
|
||||
<AttackMoveType>k__BackingField: 2
|
||||
<BeAttackedMoveType>k__BackingField: 1
|
||||
<IsCommanded>k__BackingField: 0
|
||||
--- !u!1 &156456
|
||||
GameObject:
|
||||
|
@ -9033,13 +9033,17 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: d17ac59ab4fe31846b058c6e1ca1cbb8, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
skinMaterial: []
|
||||
skinMaterialList: []
|
||||
defaultSkinColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
mouseEnterHighlightSkinColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
selectedSkinColor: {r: 0, g: 0, b: 1, a: 1}
|
||||
isAttacking: 0
|
||||
<AiStat>k__BackingField:
|
||||
maxHp: 40
|
||||
currentHp: 0
|
||||
atk: 50
|
||||
def: 5
|
||||
moveSpd: 3
|
||||
moveSpd: 5
|
||||
atkCooldown: 2
|
||||
atkRange: 3
|
||||
usingShield: 0
|
||||
@ -9082,11 +9086,9 @@ MonoBehaviour:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
<TargetInfoList>k__BackingField: []
|
||||
<TargetInfo>k__BackingField:
|
||||
transform: {fileID: 0}
|
||||
collider: {fileID: 0}
|
||||
<MoveType>k__BackingField: 2
|
||||
<TargetTransform>k__BackingField: {fileID: 0}
|
||||
<AttackMoveType>k__BackingField: 2
|
||||
<BeAttackedMoveType>k__BackingField: 2
|
||||
<IsCommanded>k__BackingField: 0
|
||||
--- !u!1 &156456
|
||||
GameObject:
|
||||
|
@ -9033,13 +9033,17 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 4363b722ccf9a2b49b7506fd355c6a4d, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
skinMaterial: []
|
||||
skinMaterialList: []
|
||||
defaultSkinColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
mouseEnterHighlightSkinColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
selectedSkinColor: {r: 0, g: 0, b: 1, a: 1}
|
||||
isAttacking: 0
|
||||
<AiStat>k__BackingField:
|
||||
maxHp: 60
|
||||
currentHp: 0
|
||||
atk: 30
|
||||
def: 10
|
||||
moveSpd: 2.5
|
||||
moveSpd: 5.5
|
||||
atkCooldown: 1.5
|
||||
atkRange: 1.5
|
||||
usingShield: 1
|
||||
@ -9082,11 +9086,9 @@ MonoBehaviour:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
<TargetInfoList>k__BackingField: []
|
||||
<TargetInfo>k__BackingField:
|
||||
transform: {fileID: 0}
|
||||
collider: {fileID: 0}
|
||||
<MoveType>k__BackingField: 2
|
||||
<TargetTransform>k__BackingField: {fileID: 0}
|
||||
<AttackMoveType>k__BackingField: 2
|
||||
<BeAttackedMoveType>k__BackingField: 1
|
||||
<IsCommanded>k__BackingField: 0
|
||||
--- !u!1 &156456
|
||||
GameObject:
|
||||
|
@ -9033,13 +9033,17 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: a7bb4d34880889448a03ef7d1b0ebee9, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
skinMaterial: []
|
||||
skinMaterialList: []
|
||||
defaultSkinColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
mouseEnterHighlightSkinColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
selectedSkinColor: {r: 0, g: 0, b: 1, a: 1}
|
||||
isAttacking: 0
|
||||
<AiStat>k__BackingField:
|
||||
maxHp: 45
|
||||
currentHp: 0
|
||||
atk: 35
|
||||
def: 5
|
||||
moveSpd: 3.5
|
||||
moveSpd: 6
|
||||
atkCooldown: 1.5
|
||||
atkRange: 1.5
|
||||
usingShield: 0
|
||||
@ -9082,11 +9086,9 @@ MonoBehaviour:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
<TargetInfoList>k__BackingField: []
|
||||
<TargetInfo>k__BackingField:
|
||||
transform: {fileID: 0}
|
||||
collider: {fileID: 0}
|
||||
<MoveType>k__BackingField: 2
|
||||
<TargetTransform>k__BackingField: {fileID: 0}
|
||||
<AttackMoveType>k__BackingField: 2
|
||||
<BeAttackedMoveType>k__BackingField: 2
|
||||
<IsCommanded>k__BackingField: 0
|
||||
--- !u!1 &156456
|
||||
GameObject:
|
||||
|
@ -9033,13 +9033,17 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: b934a5073db193343a89fc4597056b68, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
skinMaterial: []
|
||||
skinMaterialList: []
|
||||
defaultSkinColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
mouseEnterHighlightSkinColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
selectedSkinColor: {r: 0, g: 0, b: 1, a: 1}
|
||||
isAttacking: 0
|
||||
<AiStat>k__BackingField:
|
||||
maxHp: 30
|
||||
currentHp: 0
|
||||
atk: 50
|
||||
def: 0
|
||||
moveSpd: 3
|
||||
moveSpd: 5
|
||||
atkCooldown: 3
|
||||
atkRange: 15
|
||||
usingShield: 0
|
||||
@ -9082,18 +9086,17 @@ MonoBehaviour:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
<TargetInfoList>k__BackingField: []
|
||||
<TargetInfo>k__BackingField:
|
||||
transform: {fileID: 0}
|
||||
collider: {fileID: 0}
|
||||
<MoveType>k__BackingField: 1
|
||||
<TargetTransform>k__BackingField: {fileID: 0}
|
||||
<AttackMoveType>k__BackingField: 1
|
||||
<BeAttackedMoveType>k__BackingField: 1
|
||||
<IsCommanded>k__BackingField: 0
|
||||
arrowPrefab: {fileID: 3190292116200820221, guid: 09f461c60481dea4b975222675a2682f,
|
||||
type: 3}
|
||||
arrowMaxSize: 100
|
||||
shootLocation: {fileID: 449662}
|
||||
arrowsPoolLocation: {fileID: 0}
|
||||
inaccuracy: 1
|
||||
inaccuracy: 0.5
|
||||
shootOffset: {x: 0, y: 0.8, z: 0}
|
||||
--- !u!1 &156456
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -9033,13 +9033,17 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 62993cbcb58ab6845897f946bdcb90c6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
skinMaterial: []
|
||||
skinMaterialList: []
|
||||
defaultSkinColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
mouseEnterHighlightSkinColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
selectedSkinColor: {r: 0, g: 0, b: 1, a: 1}
|
||||
isAttacking: 0
|
||||
<AiStat>k__BackingField:
|
||||
maxHp: 50
|
||||
currentHp: 0
|
||||
atk: 50
|
||||
def: 0
|
||||
moveSpd: 2.5
|
||||
moveSpd: 4.5
|
||||
atkCooldown: 2.5
|
||||
atkRange: 3
|
||||
usingShield: 0
|
||||
@ -9082,11 +9086,9 @@ MonoBehaviour:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
<TargetInfoList>k__BackingField: []
|
||||
<TargetInfo>k__BackingField:
|
||||
transform: {fileID: 0}
|
||||
collider: {fileID: 0}
|
||||
<MoveType>k__BackingField: 2
|
||||
<TargetTransform>k__BackingField: {fileID: 0}
|
||||
<AttackMoveType>k__BackingField: 2
|
||||
<BeAttackedMoveType>k__BackingField: 2
|
||||
<IsCommanded>k__BackingField: 0
|
||||
--- !u!1 &156456
|
||||
GameObject:
|
||||
|
@ -9033,13 +9033,17 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: d17ac59ab4fe31846b058c6e1ca1cbb8, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
skinMaterial: []
|
||||
skinMaterialList: []
|
||||
defaultSkinColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
mouseEnterHighlightSkinColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
selectedSkinColor: {r: 0, g: 0, b: 1, a: 1}
|
||||
isAttacking: 0
|
||||
<AiStat>k__BackingField:
|
||||
maxHp: 40
|
||||
currentHp: 0
|
||||
atk: 50
|
||||
def: 5
|
||||
moveSpd: 3
|
||||
moveSpd: 5
|
||||
atkCooldown: 2
|
||||
atkRange: 3
|
||||
usingShield: 0
|
||||
@ -9082,11 +9086,9 @@ MonoBehaviour:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
<TargetInfoList>k__BackingField: []
|
||||
<TargetInfo>k__BackingField:
|
||||
transform: {fileID: 0}
|
||||
collider: {fileID: 0}
|
||||
<MoveType>k__BackingField: 2
|
||||
<TargetTransform>k__BackingField: {fileID: 0}
|
||||
<AttackMoveType>k__BackingField: 2
|
||||
<BeAttackedMoveType>k__BackingField: 2
|
||||
<IsCommanded>k__BackingField: 0
|
||||
--- !u!1 &156456
|
||||
GameObject:
|
||||
|
@ -9033,13 +9033,17 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 4363b722ccf9a2b49b7506fd355c6a4d, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
skinMaterial: []
|
||||
skinMaterialList: []
|
||||
defaultSkinColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
mouseEnterHighlightSkinColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
selectedSkinColor: {r: 0, g: 0, b: 1, a: 1}
|
||||
isAttacking: 0
|
||||
<AiStat>k__BackingField:
|
||||
maxHp: 60
|
||||
currentHp: 0
|
||||
atk: 30
|
||||
def: 10
|
||||
moveSpd: 2.5
|
||||
moveSpd: 5.5
|
||||
atkCooldown: 1.5
|
||||
atkRange: 1.5
|
||||
usingShield: 1
|
||||
@ -9082,11 +9086,9 @@ MonoBehaviour:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
<TargetInfoList>k__BackingField: []
|
||||
<TargetInfo>k__BackingField:
|
||||
transform: {fileID: 0}
|
||||
collider: {fileID: 0}
|
||||
<MoveType>k__BackingField: 2
|
||||
<TargetTransform>k__BackingField: {fileID: 0}
|
||||
<AttackMoveType>k__BackingField: 2
|
||||
<BeAttackedMoveType>k__BackingField: 2
|
||||
<IsCommanded>k__BackingField: 0
|
||||
--- !u!1 &156456
|
||||
GameObject:
|
||||
|
@ -9033,13 +9033,17 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: a7bb4d34880889448a03ef7d1b0ebee9, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
skinMaterial: []
|
||||
skinMaterialList: []
|
||||
defaultSkinColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
mouseEnterHighlightSkinColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
selectedSkinColor: {r: 0, g: 0, b: 1, a: 1}
|
||||
isAttacking: 0
|
||||
<AiStat>k__BackingField:
|
||||
maxHp: 45
|
||||
currentHp: 0
|
||||
atk: 35
|
||||
def: 5
|
||||
moveSpd: 3.5
|
||||
moveSpd: 6
|
||||
atkCooldown: 1.5
|
||||
atkRange: 1.5
|
||||
usingShield: 0
|
||||
@ -9082,11 +9086,9 @@ MonoBehaviour:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
<TargetInfoList>k__BackingField: []
|
||||
<TargetInfo>k__BackingField:
|
||||
transform: {fileID: 0}
|
||||
collider: {fileID: 0}
|
||||
<MoveType>k__BackingField: 2
|
||||
<TargetTransform>k__BackingField: {fileID: 0}
|
||||
<AttackMoveType>k__BackingField: 2
|
||||
<BeAttackedMoveType>k__BackingField: 2
|
||||
<IsCommanded>k__BackingField: 0
|
||||
--- !u!1 &156456
|
||||
GameObject:
|
||||
|
@ -65,29 +65,7 @@ AnimatorState:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &-7854804674546960086
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 5304119996036113566}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.625
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &-7488432702046877422
|
||||
--- !u!1101 &-8913211705228774047
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@ -112,6 +90,28 @@ AnimatorStateTransition:
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &-7854804674546960086
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 5304119996036113566}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.625
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &-6677449554117134834
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
@ -257,9 +257,9 @@ AnimatorStateTransition:
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.625
|
||||
m_ExitTime: 0
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
@ -474,8 +474,7 @@ AnimatorStateMachine:
|
||||
m_State: {fileID: -4719989283223396458}
|
||||
m_Position: {x: 310, y: 10, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions:
|
||||
- {fileID: -7488432702046877422}
|
||||
m_AnyStateTransitions: []
|
||||
m_EntryTransitions: []
|
||||
m_StateMachineTransitions: {}
|
||||
m_StateMachineBehaviours: []
|
||||
@ -634,6 +633,7 @@ AnimatorState:
|
||||
m_Transitions:
|
||||
- {fileID: 301483702199899037}
|
||||
- {fileID: 7243255047482691604}
|
||||
- {fileID: -8913211705228774047}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
|
@ -87,31 +87,6 @@ AnimatorStateTransition:
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &-7488432702046877422
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: TakeDamage
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: -4719989283223396458}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &-6677449554117134834
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
@ -138,6 +113,31 @@ AnimatorState:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &-5683773777560662164
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: TakeDamage
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: -4719989283223396458}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &-5613045854842106462
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
@ -237,7 +237,7 @@ AnimatorState:
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 05a6266c6c1647f4b90ef5524fd4204e, type: 3}
|
||||
m_Motion: {fileID: 7400000, guid: e1de8a213ab85dd4e95261370bdc06f4, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
@ -257,9 +257,9 @@ AnimatorStateTransition:
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.625
|
||||
m_ExitTime: 0
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
@ -286,7 +286,7 @@ AnimatorState:
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 33bd65223d28b1c4cb76a7bebb02a099, type: 3}
|
||||
m_Motion: {fileID: 7400000, guid: 69f0aa5e93748024493d9bd7ffe5bc8c, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
@ -474,8 +474,7 @@ AnimatorStateMachine:
|
||||
m_State: {fileID: -4719989283223396458}
|
||||
m_Position: {x: 310, y: 10, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions:
|
||||
- {fileID: -7488432702046877422}
|
||||
m_AnyStateTransitions: []
|
||||
m_EntryTransitions: []
|
||||
m_StateMachineTransitions: {}
|
||||
m_StateMachineBehaviours: []
|
||||
@ -634,6 +633,7 @@ AnimatorState:
|
||||
m_Transitions:
|
||||
- {fileID: 301483702199899037}
|
||||
- {fileID: 7243255047482691604}
|
||||
- {fileID: -5683773777560662164}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
|
@ -262,7 +262,7 @@ AnimatorState:
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: b9def7c6da9201647b1bd65c6cafe6a8, type: 3}
|
||||
m_Motion: {fileID: 7400000, guid: bd85d70e29baa894492ba2d7535af14e, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
@ -311,7 +311,7 @@ AnimatorState:
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 1111ae1477d1e214c84401ea31ee3425, type: 3}
|
||||
m_Motion: {fileID: 7400000, guid: e631e6ac42f3e1143844a2240ea8642a, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
|
@ -87,31 +87,6 @@ AnimatorStateTransition:
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &-7488432702046877422
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: TakeDamage
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: -4719989283223396458}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &-6677449554117134834
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
@ -237,7 +212,7 @@ AnimatorState:
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: dabce5525f41e3b43b71afba5951f91a, type: 3}
|
||||
m_Motion: {fileID: 7400000, guid: 65944dbab9cf50a4093e88d8d4f21254, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
@ -257,9 +232,9 @@ AnimatorStateTransition:
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.625
|
||||
m_ExitTime: 0
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
@ -286,7 +261,7 @@ AnimatorState:
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 7ae56d5469e7f334abb22dd37f302bd6, type: 3}
|
||||
m_Motion: {fileID: 7400000, guid: 4efa1310402cc6546b855a22bedca9b1, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
@ -474,8 +449,7 @@ AnimatorStateMachine:
|
||||
m_State: {fileID: -4719989283223396458}
|
||||
m_Position: {x: 310, y: 10, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions:
|
||||
- {fileID: -7488432702046877422}
|
||||
m_AnyStateTransitions: []
|
||||
m_EntryTransitions: []
|
||||
m_StateMachineTransitions: {}
|
||||
m_StateMachineBehaviours: []
|
||||
@ -634,6 +608,7 @@ AnimatorState:
|
||||
m_Transitions:
|
||||
- {fileID: 301483702199899037}
|
||||
- {fileID: 7243255047482691604}
|
||||
- {fileID: 9013410974934723737}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
@ -649,3 +624,28 @@ AnimatorState:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &9013410974934723737
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: TakeDamage
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: -4719989283223396458}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
|
@ -87,31 +87,6 @@ AnimatorStateTransition:
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &-7488432702046877422
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: TakeDamage
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: -4719989283223396458}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &-6677449554117134834
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
@ -216,6 +191,31 @@ AnimatorStateTransition:
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &-3541330898277682399
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: TakeDamage
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: -4719989283223396458}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &-3262334696151519221
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
@ -237,7 +237,7 @@ AnimatorState:
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 2eff314cde206bb4eb0a5715561aa6fe, type: 3}
|
||||
m_Motion: {fileID: 7400000, guid: 3999b8e4563091241a545b63ca3639b8, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
@ -257,9 +257,9 @@ AnimatorStateTransition:
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.625
|
||||
m_ExitTime: 0
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
@ -286,7 +286,7 @@ AnimatorState:
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: f4554a6188f8a9147954e4d6c388d287, type: 3}
|
||||
m_Motion: {fileID: 7400000, guid: a623a26797d79474d92c3da42c99d470, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
@ -474,8 +474,7 @@ AnimatorStateMachine:
|
||||
m_State: {fileID: -4719989283223396458}
|
||||
m_Position: {x: 310, y: 10, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions:
|
||||
- {fileID: -7488432702046877422}
|
||||
m_AnyStateTransitions: []
|
||||
m_EntryTransitions: []
|
||||
m_StateMachineTransitions: {}
|
||||
m_StateMachineBehaviours: []
|
||||
@ -634,6 +633,7 @@ AnimatorState:
|
||||
m_Transitions:
|
||||
- {fileID: 301483702199899037}
|
||||
- {fileID: 7243255047482691604}
|
||||
- {fileID: -3541330898277682399}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
|
@ -36178,21 +36178,35 @@ AnimationClip:
|
||||
m_HasMotionFloatCurves: 0
|
||||
m_Events:
|
||||
- time: 0
|
||||
functionName: StopMove
|
||||
functionName: OnStoppedMove
|
||||
data:
|
||||
objectReferenceParameter: {fileID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
intParameter: 1
|
||||
messageOptions: 0
|
||||
- time: 0
|
||||
functionName: OnAttacking
|
||||
data:
|
||||
objectReferenceParameter: {fileID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 1
|
||||
messageOptions: 0
|
||||
- time: 0.36666667
|
||||
functionName: ShootArrow
|
||||
functionName: OnShootArrow
|
||||
data:
|
||||
objectReferenceParameter: {fileID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 1.5
|
||||
functionName: StartMove
|
||||
functionName: OnStoppedMove
|
||||
data:
|
||||
objectReferenceParameter: {fileID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 1.5
|
||||
functionName: OnAttacking
|
||||
data:
|
||||
objectReferenceParameter: {fileID: 0}
|
||||
floatParameter: 0
|
||||
|
@ -37528,21 +37528,35 @@ AnimationClip:
|
||||
m_HasMotionFloatCurves: 0
|
||||
m_Events:
|
||||
- time: 0
|
||||
functionName: StopMove
|
||||
functionName: OnStoppedMove
|
||||
data:
|
||||
objectReferenceParameter: {fileID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
intParameter: 1
|
||||
messageOptions: 0
|
||||
- time: 0
|
||||
functionName: OnAttacking
|
||||
data:
|
||||
objectReferenceParameter: {fileID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 1
|
||||
messageOptions: 0
|
||||
- time: 0.4
|
||||
functionName: ShootArrow
|
||||
functionName: OnShootArrow
|
||||
data:
|
||||
objectReferenceParameter: {fileID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 1.5
|
||||
functionName: StartMove
|
||||
functionName: OnStoppedMove
|
||||
data:
|
||||
objectReferenceParameter: {fileID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 1.5
|
||||
functionName: OnAttacking
|
||||
data:
|
||||
objectReferenceParameter: {fileID: 0}
|
||||
floatParameter: 0
|
||||
|
36553
BlueWater/Assets/07.Animation/infantry_04_attack_A.anim
Normal file
36553
BlueWater/Assets/07.Animation/infantry_04_attack_A.anim
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a55ee4efaad27d948ba5f03fc6d7bc80
|
||||
DefaultImporter:
|
||||
guid: a623a26797d79474d92c3da42c99d470
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
36481
BlueWater/Assets/07.Animation/infantry_04_attack_B.anim
Normal file
36481
BlueWater/Assets/07.Animation/infantry_04_attack_B.anim
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ed9b95dc6ed6d0647ad7f1a8f305385d
|
||||
DefaultImporter:
|
||||
guid: 3999b8e4563091241a545b63ca3639b8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
35089
BlueWater/Assets/07.Animation/spear_04_attack_A.anim
Normal file
35089
BlueWater/Assets/07.Animation/spear_04_attack_A.anim
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4ff1f29eab234cf4490d9bb383892c44
|
||||
DefaultImporter:
|
||||
guid: 4efa1310402cc6546b855a22bedca9b1
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
35809
BlueWater/Assets/07.Animation/spear_04_attack_B.anim
Normal file
35809
BlueWater/Assets/07.Animation/spear_04_attack_B.anim
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 697b6e7dea1fde146b7e3e5cf3ed9e9f
|
||||
DefaultImporter:
|
||||
guid: 65944dbab9cf50a4093e88d8d4f21254
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
35365
BlueWater/Assets/07.Animation/spearshield_04_attack_A.anim
Normal file
35365
BlueWater/Assets/07.Animation/spearshield_04_attack_A.anim
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e631e6ac42f3e1143844a2240ea8642a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
36787
BlueWater/Assets/07.Animation/spearshield_04_attack_B.anim
Normal file
36787
BlueWater/Assets/07.Animation/spearshield_04_attack_B.anim
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bd85d70e29baa894492ba2d7535af14e
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
35341
BlueWater/Assets/07.Animation/twohanded_04_attack_A.anim
Normal file
35341
BlueWater/Assets/07.Animation/twohanded_04_attack_A.anim
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 69f0aa5e93748024493d9bd7ffe5bc8c
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
40456
BlueWater/Assets/07.Animation/twohanded_04_attack_B.anim
Normal file
40456
BlueWater/Assets/07.Animation/twohanded_04_attack_B.anim
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e1de8a213ab85dd4e95261370bdc06f4
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 078b8f13a17171b49892ad10426d5af0
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f9406a33814af9c47b352e77f079d798
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9aacf6f3043624194bb6f6fe9a580786
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f4227764308e84f89a765fbf315e2945
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 41e59f562b69648719f2424c438758f3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b044a2387a61dac41bdf204adffdce9d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cd287c84e887ea24a8679e67aac7c074
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5f3f53ee059b45a4d9a5b9fc75e8aea9
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f211254f5bfad224ba88868f2c75432c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4368c9be31b3c174dbfd80f2caf98889
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f597f19f656ba56eae4f6a3a7cc528f4
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 48e08dc33330d11e9d4a1b246c52e4f6
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ed09910c0094cb27be8f3ca264680da3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cc355dd4cf1e6173beaeb22c2858cbe1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Reference in New Issue
Block a user