#23 디펜스 Ai 보완
This commit is contained in:
parent
b342cb3adf
commit
08233a9f1e
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,20 @@
|
|||||||
|
using BehaviorDesigner.Runtime.Tasks;
|
||||||
|
|
||||||
|
// ReSharper disable once CheckNamespace
|
||||||
|
namespace BlueWaterProject
|
||||||
|
{
|
||||||
|
[TaskCategory("Custom/EnemyAction")]
|
||||||
|
public class BeAttackedOfEnemy : EnemyAction
|
||||||
|
{
|
||||||
|
public override TaskStatus OnUpdate()
|
||||||
|
{
|
||||||
|
if (enemyAi.GetCombatAgent().pathPending || enemyAi.GetCombatAgent().remainingDistance > enemyAi.GetCombatAgent().stoppingDistance)
|
||||||
|
{
|
||||||
|
return TaskStatus.Running;
|
||||||
|
}
|
||||||
|
|
||||||
|
enemyAi.SetBeAttacked(false, true);
|
||||||
|
return TaskStatus.Success;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d11582d2ef4686a45b306c5a93d70bb6
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,19 @@
|
|||||||
|
using BehaviorDesigner.Runtime.Tasks;
|
||||||
|
|
||||||
|
// ReSharper disable once CheckNamespace
|
||||||
|
namespace BlueWaterProject
|
||||||
|
{
|
||||||
|
[TaskCategory("Custom/EnemyAction")]
|
||||||
|
public class ReturnDefensePosOfEnemy : EnemyAction
|
||||||
|
{
|
||||||
|
public override void OnStart()
|
||||||
|
{
|
||||||
|
enemyAi.ReturnDefensePos(enemyAi.GetDefensePos());
|
||||||
|
}
|
||||||
|
|
||||||
|
public override TaskStatus OnUpdate()
|
||||||
|
{
|
||||||
|
return TaskStatus.Success;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0984e3cb3464c4247922ba7d9eae2b71
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -8,7 +8,7 @@ namespace BlueWaterProject
|
|||||||
{
|
{
|
||||||
public override void OnStart()
|
public override void OnStart()
|
||||||
{
|
{
|
||||||
pirateAi.MoveTarget(pirateAi.GetTargetTransform().position);
|
pirateAi.MoveTarget(pirateAi.GetTargetTransform().position, GlobalValue.MAXIMUM_STOP_DISTANCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override TaskStatus OnUpdate()
|
public override TaskStatus OnUpdate()
|
||||||
|
@ -45,7 +45,7 @@ namespace BlueWaterProject
|
|||||||
#region Abstract methods
|
#region Abstract methods
|
||||||
|
|
||||||
protected abstract void SetLayer();
|
protected abstract void SetLayer();
|
||||||
protected abstract void SetCurrentHp(float value);
|
protected abstract void SetCurrentHp(float value, bool useBehaviorTreeVariable = false);
|
||||||
protected abstract void RemoveAiListElement();
|
protected abstract void RemoveAiListElement();
|
||||||
public abstract void FindTarget();
|
public abstract void FindTarget();
|
||||||
public abstract bool CanAttack();
|
public abstract bool CanAttack();
|
||||||
@ -122,10 +122,11 @@ namespace BlueWaterProject
|
|||||||
behaviorTree.EnableBehavior();
|
behaviorTree.EnableBehavior();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MoveTarget(Vector3 targetPos)
|
public void MoveTarget(Vector3 targetPos, float stopDistance)
|
||||||
{
|
{
|
||||||
if (Vector3.Distance(combatAgent.destination, targetPos) < 0.1f) return;
|
if (Vector3.Distance(combatAgent.destination, targetPos) < 0.1f) return;
|
||||||
|
|
||||||
|
combatAgent.stoppingDistance = stopDistance;
|
||||||
combatAgent.SetDestination(targetPos);
|
combatAgent.SetDestination(targetPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,12 +146,13 @@ namespace BlueWaterProject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetTargetTransform(Transform value)
|
public void SetTargetTransform(Transform value, bool useBehaviorTreeVariable = false)
|
||||||
{
|
{
|
||||||
targetTransform = value;
|
targetTransform = value;
|
||||||
|
|
||||||
var btTargetTransform = behaviorTree.GetVariable("TargetTransform");
|
if (!useBehaviorTreeVariable) return;
|
||||||
btTargetTransform?.SetValue(value);
|
|
||||||
|
Utils.SetBehaviorVariable(behaviorTree, "TargetTransform", value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Die()
|
public void Die()
|
||||||
@ -184,6 +186,7 @@ namespace BlueWaterProject
|
|||||||
public void SetDefendingIslandInfo(IslandInfo info) => defendingIslandInfo = info;
|
public void SetDefendingIslandInfo(IslandInfo info) => defendingIslandInfo = info;
|
||||||
public Transform GetTargetTransform() => targetTransform;
|
public Transform GetTargetTransform() => targetTransform;
|
||||||
public Vector3 GetDefensePos() => defensePos;
|
public Vector3 GetDefensePos() => defensePos;
|
||||||
|
public NavMeshAgent GetCombatAgent() => combatAgent;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ namespace BlueWaterProject
|
|||||||
[field: SerializeField] public EnemyStat EnemyStat { get; set; }
|
[field: SerializeField] public EnemyStat EnemyStat { get; set; }
|
||||||
|
|
||||||
protected bool isAttackCoroutine;
|
protected bool isAttackCoroutine;
|
||||||
|
private bool beAttacked;
|
||||||
private EnemyUnit enemyUnit;
|
private EnemyUnit enemyUnit;
|
||||||
private int childNum;
|
private int childNum;
|
||||||
|
|
||||||
@ -62,7 +63,7 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
public void TakeDamage(float attackerPower, float attackerShieldPenetrationRate, Vector3? attackPos = null)
|
public void TakeDamage(float attackerPower, float attackerShieldPenetrationRate, Vector3? attackPos = null)
|
||||||
{
|
{
|
||||||
if (attackPos != null && combatAgent.enabled && EnemyStat.AttackerType == EAttackerType.DEFENSE && !targetTransform)
|
if (attackPos != null && EnemyStat.AttackerType == EAttackerType.DEFENSE && !targetTransform)
|
||||||
{
|
{
|
||||||
BeAttackedMovement((Vector3)attackPos);
|
BeAttackedMovement((Vector3)attackPos);
|
||||||
}
|
}
|
||||||
@ -103,7 +104,7 @@ namespace BlueWaterProject
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var changeHp = Mathf.Max(EnemyStat.CurrentHp - finalDamage, 0);
|
var changeHp = Mathf.Max(EnemyStat.CurrentHp - finalDamage, 0);
|
||||||
SetCurrentHp(changeHp);
|
SetCurrentHp(changeHp, true);
|
||||||
|
|
||||||
// 죽었는지 체크
|
// 죽었는지 체크
|
||||||
if (changeHp == 0f) return;
|
if (changeHp == 0f) return;
|
||||||
@ -154,13 +155,14 @@ namespace BlueWaterProject
|
|||||||
InitViewModel(enemyViewData);
|
InitViewModel(enemyViewData);
|
||||||
SetBehaviorTree(UnitManager.Inst.EnemyBehaviorTree);
|
SetBehaviorTree(UnitManager.Inst.EnemyBehaviorTree);
|
||||||
|
|
||||||
SetCurrentHp(EnemyStat.MaxHp);
|
SetCurrentHp(EnemyStat.MaxHp, true);
|
||||||
SetMoveSpeed(EnemyStat.MoveSpd);
|
SetMoveSpeed(EnemyStat.MoveSpd);
|
||||||
|
|
||||||
childNum = enemyUnit.transform.GetSiblingIndex();
|
|
||||||
if (EnemyStat.AttackerType == EAttackerType.DEFENSE)
|
if (EnemyStat.AttackerType == EAttackerType.DEFENSE)
|
||||||
{
|
{
|
||||||
SetDefensePos(transform.position);
|
SetDefensePos(transform.position, true);
|
||||||
|
childNum = transform.GetSiblingIndex();
|
||||||
enemyUnit.SetDefensePos(defensePos, childNum);
|
enemyUnit.SetDefensePos(defensePos, childNum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -257,7 +259,7 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
if (nearestTarget == null) return;
|
if (nearestTarget == null) return;
|
||||||
|
|
||||||
SetTargetTransform(nearestTarget);
|
SetTargetTransform(nearestTarget, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FindTargetInDefense()
|
private void FindTargetInDefense()
|
||||||
@ -293,7 +295,7 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
if (maxColliderCount <= 0)
|
if (maxColliderCount <= 0)
|
||||||
{
|
{
|
||||||
SetTargetTransform(null);
|
SetTargetTransform(null, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -310,7 +312,7 @@ namespace BlueWaterProject
|
|||||||
nearestTargetTransform = colliderWithinRange[i].transform;
|
nearestTargetTransform = colliderWithinRange[i].transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetTargetTransform(nearestTargetTransform);
|
SetTargetTransform(nearestTargetTransform, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MoveTargetInDefense(Vector3 targetPos)
|
public void MoveTargetInDefense(Vector3 targetPos)
|
||||||
@ -324,7 +326,12 @@ namespace BlueWaterProject
|
|||||||
case EDefenseType.MIDFIELDER:
|
case EDefenseType.MIDFIELDER:
|
||||||
break;
|
break;
|
||||||
case EDefenseType.DEFENDER:
|
case EDefenseType.DEFENDER:
|
||||||
if (Vector3.Distance(targetPos, defensePos) > EnemyStat.DefenseRange) return;
|
if (Vector3.Distance(targetPos, defensePos) > EnemyStat.DefenseRange)
|
||||||
|
{
|
||||||
|
combatAgent.stoppingDistance = GlobalValue.MINIMUM_STOP_DISTANCE;
|
||||||
|
combatAgent.SetDestination(defensePos);
|
||||||
|
return;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case EDefenseType.KEEPER:
|
case EDefenseType.KEEPER:
|
||||||
return;
|
return;
|
||||||
@ -334,15 +341,25 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
if (Vector3.Distance(combatAgent.destination, targetPos) < 0.1f) return;
|
if (Vector3.Distance(combatAgent.destination, targetPos) < 0.1f) return;
|
||||||
|
|
||||||
|
combatAgent.stoppingDistance = GlobalValue.MAXIMUM_STOP_DISTANCE;
|
||||||
combatAgent.SetDestination(targetPos);
|
combatAgent.SetDestination(targetPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void SetCurrentHp(float value)
|
public void ReturnDefensePos(Vector3 targetPos)
|
||||||
|
{
|
||||||
|
if (Vector3.Distance(combatAgent.destination, targetPos) < 0.1f) return;
|
||||||
|
|
||||||
|
combatAgent.stoppingDistance = GlobalValue.MINIMUM_STOP_DISTANCE;
|
||||||
|
combatAgent.SetDestination(targetPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void SetCurrentHp(float value, bool useBehaviorTreeVariable = false)
|
||||||
{
|
{
|
||||||
EnemyStat.CurrentHp = value;
|
EnemyStat.CurrentHp = value;
|
||||||
|
|
||||||
var btCurrentHp = behaviorTree.GetVariable("CurrentHp");
|
if (!useBehaviorTreeVariable) return;
|
||||||
btCurrentHp?.SetValue(value);
|
|
||||||
|
Utils.SetBehaviorVariable(behaviorTree, "CurrentHp", value);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void RemoveAiListElement()
|
protected override void RemoveAiListElement()
|
||||||
@ -352,8 +369,7 @@ namespace BlueWaterProject
|
|||||||
enemyUnit.enemyUnitStat.EnemyAiList.Remove(this);
|
enemyUnit.enemyUnitStat.EnemyAiList.Remove(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
childNum = enemyUnit.transform.GetSiblingIndex();
|
enemyUnit.ResetDefensePos();
|
||||||
SetDefensePos(enemyUnit.GetDefensePos(childNum));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BeAttackedMovement(Vector3 attackPos)
|
private void BeAttackedMovement(Vector3 attackPos)
|
||||||
@ -379,16 +395,27 @@ namespace BlueWaterProject
|
|||||||
{
|
{
|
||||||
if (item.GetTargetTransform()) continue;
|
if (item.GetTargetTransform()) continue;
|
||||||
|
|
||||||
item.MoveTarget(attackPos);
|
item.SetBeAttacked(true, true);
|
||||||
|
item.MoveTarget(attackPos, GlobalValue.MAXIMUM_STOP_DISTANCE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetDefensePos(Vector3 value)
|
public void SetDefensePos(Vector3 value, bool useBehaviorTreeVariable = false)
|
||||||
{
|
{
|
||||||
defensePos = value;
|
defensePos = value;
|
||||||
|
|
||||||
var btDefensePos = behaviorTree.GetVariable("DefensePos");
|
if (!useBehaviorTreeVariable) return;
|
||||||
btDefensePos?.SetValue(value);
|
|
||||||
|
Utils.SetBehaviorVariable(behaviorTree, "DefensePos", value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetBeAttacked(bool value, bool useBehaviorTreeVariable = false)
|
||||||
|
{
|
||||||
|
beAttacked = value;
|
||||||
|
|
||||||
|
if (!useBehaviorTreeVariable) return;
|
||||||
|
|
||||||
|
Utils.SetBehaviorVariable(behaviorTree, "BeAttacked", value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool GetIsAttackCoroutine() => isAttackCoroutine;
|
public bool GetIsAttackCoroutine() => isAttackCoroutine;
|
||||||
|
@ -128,7 +128,7 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
if (nearestTarget == null) return;
|
if (nearestTarget == null) return;
|
||||||
|
|
||||||
SetTargetTransform(nearestTarget);
|
SetTargetTransform(nearestTarget, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void FindNearestTargetInRange(Vector3 centerPos, float range)
|
protected override void FindNearestTargetInRange(Vector3 centerPos, float range)
|
||||||
@ -140,7 +140,7 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
if (maxColliderCount <= 0)
|
if (maxColliderCount <= 0)
|
||||||
{
|
{
|
||||||
SetTargetTransform(null);
|
SetTargetTransform(null, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ namespace BlueWaterProject
|
|||||||
nearestTargetTransform = colliderWithinRange[i].transform;
|
nearestTargetTransform = colliderWithinRange[i].transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetTargetTransform(nearestTargetTransform);
|
SetTargetTransform(nearestTargetTransform, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool IsRaycastHitTarget(Vector3 myPos, Transform target)
|
private bool IsRaycastHitTarget(Vector3 myPos, Transform target)
|
||||||
|
@ -147,7 +147,7 @@ namespace BlueWaterProject
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var changeHp = Mathf.Max(PirateStat.CurrentHp - finalDamage, 0);
|
var changeHp = Mathf.Max(PirateStat.CurrentHp - finalDamage, 0);
|
||||||
SetCurrentHp(changeHp);
|
SetCurrentHp(changeHp, true);
|
||||||
|
|
||||||
// 죽었는지 체크
|
// 죽었는지 체크
|
||||||
if (changeHp == 0f) return;
|
if (changeHp == 0f) return;
|
||||||
@ -189,7 +189,7 @@ namespace BlueWaterProject
|
|||||||
FindMaterial();
|
FindMaterial();
|
||||||
SetBehaviorTree(UnitManager.Inst.PirateBehaviorTree);
|
SetBehaviorTree(UnitManager.Inst.PirateBehaviorTree);
|
||||||
|
|
||||||
SetCurrentHp(PirateStat.MaxHp);
|
SetCurrentHp(PirateStat.MaxHp, true);
|
||||||
SetMoveSpeed(PirateStat.MoveSpd);
|
SetMoveSpeed(PirateStat.MoveSpd);
|
||||||
|
|
||||||
if (PirateStat.AttackerType == EAttackerType.DEFENSE)
|
if (PirateStat.AttackerType == EAttackerType.DEFENSE)
|
||||||
@ -242,15 +242,16 @@ namespace BlueWaterProject
|
|||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
combatAgent.stoppingDistance = GlobalValue.MAXIMUM_STOP_DISTANCE;
|
||||||
combatAgent.SetDestination(movePos);
|
combatAgent.SetDestination(movePos);
|
||||||
SetIsCommanded(true);
|
SetIsCommanded(true, true);
|
||||||
|
|
||||||
while (combatAgent.pathPending || combatAgent.remainingDistance > combatAgent.stoppingDistance)
|
while (combatAgent.pathPending || combatAgent.remainingDistance > combatAgent.stoppingDistance)
|
||||||
{
|
{
|
||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetIsCommanded(false);
|
SetIsCommanded(false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void FindTarget()
|
public override void FindTarget()
|
||||||
@ -334,7 +335,7 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
if (nearestTarget == null) return;
|
if (nearestTarget == null) return;
|
||||||
|
|
||||||
SetTargetTransform(nearestTarget);
|
SetTargetTransform(nearestTarget, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FindTargetInDefense()
|
private void FindTargetInDefense()
|
||||||
@ -370,7 +371,7 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
if (maxColliderCount <= 0)
|
if (maxColliderCount <= 0)
|
||||||
{
|
{
|
||||||
SetTargetTransform(null);
|
SetTargetTransform(null, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -387,7 +388,7 @@ namespace BlueWaterProject
|
|||||||
nearestTargetTransform = colliderWithinRange[i].transform;
|
nearestTargetTransform = colliderWithinRange[i].transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetTargetTransform(nearestTargetTransform);
|
SetTargetTransform(nearestTargetTransform, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetOutlineColor(Color color)
|
private void SetOutlineColor(Color color)
|
||||||
@ -398,20 +399,22 @@ namespace BlueWaterProject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetIsCommanded(bool value)
|
public void SetIsCommanded(bool value, bool useBehaviorTreeVariable = false)
|
||||||
{
|
{
|
||||||
isCommanded = value;
|
isCommanded = value;
|
||||||
|
|
||||||
var btIsCommanded = behaviorTree.GetVariable("IsCommanded");
|
if (!useBehaviorTreeVariable) return;
|
||||||
btIsCommanded?.SetValue(value);
|
|
||||||
|
Utils.SetBehaviorVariable(behaviorTree, "IsCommanded", value);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void SetCurrentHp(float value)
|
protected override void SetCurrentHp(float value, bool useBehaviorTreeVariable = false)
|
||||||
{
|
{
|
||||||
PirateStat.CurrentHp = value;
|
PirateStat.CurrentHp = value;
|
||||||
|
|
||||||
var btCurrentHp = behaviorTree.GetVariable("CurrentHp");
|
if (!useBehaviorTreeVariable) return;
|
||||||
btCurrentHp?.SetValue(value);
|
|
||||||
|
Utils.SetBehaviorVariable(behaviorTree, "CurrentHp", value);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void RemoveAiListElement()
|
protected override void RemoveAiListElement()
|
||||||
|
@ -127,7 +127,7 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
if (nearestTarget == null) return;
|
if (nearestTarget == null) return;
|
||||||
|
|
||||||
SetTargetTransform(nearestTarget);
|
SetTargetTransform(nearestTarget, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void FindNearestTargetInRange(Vector3 centerPos, float range)
|
protected override void FindNearestTargetInRange(Vector3 centerPos, float range)
|
||||||
@ -139,7 +139,7 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
if (maxColliderCount <= 0)
|
if (maxColliderCount <= 0)
|
||||||
{
|
{
|
||||||
SetTargetTransform(null);
|
SetTargetTransform(null, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,7 +156,7 @@ namespace BlueWaterProject
|
|||||||
nearestTargetTransform = colliderWithinRange[i].transform;
|
nearestTargetTransform = colliderWithinRange[i].transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetTargetTransform(nearestTargetTransform);
|
SetTargetTransform(nearestTargetTransform, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool IsRaycastHitTarget(Vector3 myPos, Transform target)
|
private bool IsRaycastHitTarget(Vector3 myPos, Transform target)
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
using System;
|
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -12,7 +11,7 @@ namespace BlueWaterProject
|
|||||||
[PropertyOrder(-10)]
|
[PropertyOrder(-10)]
|
||||||
public EnemyUnitStat enemyUnitStat;
|
public EnemyUnitStat enemyUnitStat;
|
||||||
|
|
||||||
private Vector3[] defensePos;
|
[SerializeField] private Vector3[] defensePos;
|
||||||
private bool isClickedTypeAllButton;
|
private bool isClickedTypeAllButton;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -87,7 +86,7 @@ namespace BlueWaterProject
|
|||||||
{
|
{
|
||||||
for (var i = 0; i < enemyUnitStat.EnemyAiList.Count; i++)
|
for (var i = 0; i < enemyUnitStat.EnemyAiList.Count; i++)
|
||||||
{
|
{
|
||||||
enemyUnitStat.EnemyAiList[i].SetDefensePos(defensePos[i]);
|
enemyUnitStat.EnemyAiList[i].SetDefensePos(defensePos[i], true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,6 +16,9 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
public const int MAX_CANON_COUNT = 5;
|
public const int MAX_CANON_COUNT = 5;
|
||||||
|
|
||||||
|
public const float MINIMUM_STOP_DISTANCE = 0f;
|
||||||
|
public const float MAXIMUM_STOP_DISTANCE = 3f;
|
||||||
|
|
||||||
/// <summary> Radar 바늘이 레이더에 겹치는 허용 범위 </summary>
|
/// <summary> Radar 바늘이 레이더에 겹치는 허용 범위 </summary>
|
||||||
public const float RADAR_OVERLAP_TOLERANCE = 5f;
|
public const float RADAR_OVERLAP_TOLERANCE = 5f;
|
||||||
public const float RADAR_RANGE = 100f;
|
public const float RADAR_RANGE = 100f;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using BehaviorDesigner.Runtime;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEditor.Animations;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.AI;
|
using UnityEngine.AI;
|
||||||
using UnityEngine.Assertions;
|
using UnityEngine.Assertions;
|
||||||
@ -140,6 +140,12 @@ namespace BlueWaterProject
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void SetBehaviorVariable<T>(Behavior behaviorTreeComponent, string behaviorVariableName, T value)
|
||||||
|
{
|
||||||
|
var sharedVariable = behaviorTreeComponent.GetVariable(behaviorVariableName);
|
||||||
|
sharedVariable?.SetValue(value);
|
||||||
|
}
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
public static T LoadFromFolder<T>(string folderPath, string name, string extension) where T : Object
|
public static T LoadFromFolder<T>(string folderPath, string name, string extension) where T : Object
|
||||||
{
|
{
|
||||||
|
@ -28,25 +28,27 @@ MonoBehaviour:
|
|||||||
Shared Float","Instant":true,"SharedFloatvariable":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"CurrentHp","IsShared":true,"SinglemValue":0},"SharedFloatcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":0}},{"Type":"BlueWaterProject.DieOfCombat","NodeData":{"Offset":"(-77.26136,151.369934)"},"ID":7,"Name":"Die
|
Shared Float","Instant":true,"SharedFloatvariable":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"CurrentHp","IsShared":true,"SinglemValue":0},"SharedFloatcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":0}},{"Type":"BlueWaterProject.DieOfCombat","NodeData":{"Offset":"(-77.26136,151.369934)"},"ID":7,"Name":"Die
|
||||||
Of Combat","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(57.2359619,148.672363)"},"ID":8,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":3},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityGameObject.Destroy","NodeData":{"Offset":"(197.235962,148.672363)"},"ID":9,"Name":"Destroy","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"Singletime":0}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(259.285675,150)"},"ID":10,"Name":"Find
|
Of Combat","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(57.2359619,148.672363)"},"ID":8,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":3},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityGameObject.Destroy","NodeData":{"Offset":"(197.235962,148.672363)"},"ID":9,"Name":"Destroy","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"Singletime":0}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(259.285675,150)"},"ID":10,"Name":"Find
|
||||||
Target Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWaterProject.FindTargetOfEnemy","NodeData":{"Offset":"(-132.406738,148.091431)"},"ID":11,"Name":"Find
|
Target Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWaterProject.FindTargetOfEnemy","NodeData":{"Offset":"(-132.406738,148.091431)"},"ID":11,"Name":"Find
|
||||||
Target Of Enemy","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(140.2998,153.643066)"},"ID":12,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-633.8519,153.138184)"},"ID":13,"Name":"Comeback
|
Target Of Enemy","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(140.2998,153.643066)"},"ID":12,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-1107.87732,153.138184)"},"ID":13,"Name":"Comeback
|
||||||
DefensePos Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedTransform","NodeData":{"Offset":"(-327.5169,146.846512)","Comment":"TargetTransform
|
DefensePos Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedTransform","NodeData":{"Offset":"(-214.613708,146.846512)","Comment":"TargetTransform
|
||||||
== null"},"ID":14,"Name":"Compare Shared Transform","Instant":true,"SharedTransformvariable":{"Type":"BehaviorDesigner.Runtime.SharedTransform","Name":"TargetTransform","IsShared":true},"SharedTransformcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedTransform","Name":null}},{"Type":"BlueWaterProject.CanComebackDefensePosOfEnemy","NodeData":{"Offset":"(-107.697006,150)"},"ID":15,"Name":"Can
|
== null"},"ID":14,"Name":"Compare Shared Transform","Instant":true,"SharedTransformvariable":{"Type":"BehaviorDesigner.Runtime.SharedTransform","Name":"TargetTransform","IsShared":true},"SharedTransformcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedTransform","Name":null}},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(154.442932,151.637573)"},"ID":15,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-382.760773,150)"},"ID":16,"Name":"Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedBool","NodeData":{"Offset":"(-136.8067,148.564941)","Comment":"BeAttacked
|
||||||
Comeback Defense Pos Of Enemy","Instant":true},{"Type":"BlueWaterProject.IncreaseSharedInt","NodeData":{"Offset":"(105.676559,147.274521)"},"ID":16,"Name":"Increase
|
== true"},"ID":17,"Name":"Compare Shared Bool","Instant":true,"SharedBoolvariable":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"BeAttacked","IsShared":true,"BooleanmValue":false},"SharedBoolcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true}},{"Type":"BlueWaterProject.BeAttackedOfEnemy","NodeData":{"Offset":"(123.1254,153.531)"},"ID":18,"Name":"Be
|
||||||
Shared Int","Instant":true,"SharedInttargetInt":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"FailCount","IsShared":true,"Int32mValue":0}},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(245.33844,154.789917)"},"ID":17,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-87.7636948,149.236938)"},"ID":18,"Name":"Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedInt","NodeData":{"Offset":"(-265.106171,150)"},"ID":19,"Name":"Compare
|
Attacked Of Enemy","Instant":true}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(258.7465,154.556519)"},"ID":19,"Name":"Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWaterProject.CanComebackDefensePosOfEnemy","NodeData":{"Offset":"(-219.48703,136.922852)"},"ID":20,"Name":"Can
|
||||||
Shared Int","Instant":true,"SharedIntvariable":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"FailCount","IsShared":true,"Int32mValue":0},"SharedIntcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":6}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityNavMeshAgent.SetIsStopped","NodeData":{"Offset":"(-119.574951,148.297974)"},"ID":20,"Name":"Set
|
Comeback Defense Pos Of Enemy","Instant":true},{"Type":"BlueWaterProject.IncreaseSharedInt","NodeData":{"Offset":"(0.512756348,136.922852)"},"ID":21,"Name":"Increase
|
||||||
Is Stopped","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"SharedBoolisStopped":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityNavMeshAgent.SetDestination","NodeData":{"Offset":"(2.55319023,150)"},"ID":21,"Name":"Set
|
Shared Int","Instant":true,"SharedInttargetInt":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"FailCount","IsShared":true,"Int32mValue":0}},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(140.512756,136.922852)"},"ID":22,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-120.434143,149.236938)"},"ID":23,"Name":"Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedInt","NodeData":{"Offset":"(-327.606171,150)"},"ID":24,"Name":"Compare
|
||||||
Destination","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"SharedVector3destination":{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedInt","NodeData":{"Offset":"(122.553185,150)"},"ID":22,"Name":"Set
|
Shared Int","Instant":true,"SharedIntvariable":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"FailCount","IsShared":true,"Int32mValue":0},"SharedIntcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":6}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityNavMeshAgent.SetIsStopped","NodeData":{"Offset":"(-182.07489,148.297974)"},"ID":25,"Name":"Set
|
||||||
Shared Int","Instant":true,"SharedInttargetValue":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedInttargetVariable":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"FailCount","IsShared":true,"Int32mValue":0}},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(242.553162,150)"},"ID":23,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":0.5},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(104.242462,150)"},"ID":24,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":0.5},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(368.432861,147.142334)"},"ID":25,"Name":"Can
|
Is Stopped","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"SharedBoolisStopped":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false}},{"Type":"BlueWaterProject.ReturnDefensePosOfEnemy","NodeData":{"Offset":"(0,150)"},"ID":26,"Name":"Return
|
||||||
Attack Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-230,150)"},"ID":26,"Name":"Move
|
Defense Pos Of Enemy","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedInt","NodeData":{"Offset":"(169.428146,150)"},"ID":27,"Name":"Set
|
||||||
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Inverter","NodeData":{"Offset":"(-211.24556,149.7959)"},"ID":27,"Name":"Inverter","Instant":true,"Children":[{"Type":"BlueWaterProject.CanAttackOfEnemy","NodeData":{"Offset":"(0,150)"},"ID":28,"Name":"Can
|
Shared Int","Instant":true,"SharedInttargetValue":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedInttargetVariable":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"FailCount","IsShared":true,"Int32mValue":0}},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(289.428162,150)"},"ID":28,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":0.5},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(126.969711,150)"},"ID":29,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":0.5},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(368.432861,147.142334)"},"ID":30,"Name":"Can
|
||||||
Attack Of Enemy","Instant":true}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityNavMeshAgent.SetIsStopped","NodeData":{"Offset":"(-84.35962,147.179443)"},"ID":29,"Name":"Set
|
Attack Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-230,150)"},"ID":31,"Name":"Move
|
||||||
Is Stopped","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"SharedBoolisStopped":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false}},{"Type":"BlueWaterProject.MoveTargetOfEnemy","NodeData":{"Offset":"(77.3227158,145.83252)"},"ID":30,"Name":"Move
|
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Inverter","NodeData":{"Offset":"(-211.24556,149.7959)"},"ID":32,"Name":"Inverter","Instant":true,"Children":[{"Type":"BlueWaterProject.CanAttackOfEnemy","NodeData":{"Offset":"(0,150)"},"ID":33,"Name":"Can
|
||||||
Target Of Enemy","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(226.923065,150)"},"ID":31,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":0.5},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedInt","NodeData":{"Offset":"(356.6842,147.223755)"},"ID":32,"Name":"Set
|
Attack Of Enemy","Instant":true}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityNavMeshAgent.SetIsStopped","NodeData":{"Offset":"(-84.35962,147.179443)"},"ID":34,"Name":"Set
|
||||||
Shared Int","Instant":true,"SharedInttargetValue":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedInttargetVariable":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"FailCount","IsShared":true,"Int32mValue":0}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(426.8182,150)"},"ID":33,"Name":"Attack
|
Is Stopped","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"SharedBoolisStopped":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false}},{"Type":"BlueWaterProject.MoveTargetOfEnemy","NodeData":{"Offset":"(77.3227158,145.83252)"},"ID":35,"Name":"Move
|
||||||
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityNavMeshAgent.SetIsStopped","NodeData":{"Offset":"(-141.443,148.954468)"},"ID":34,"Name":"Set
|
Target Of Enemy","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(226.923065,150)"},"ID":36,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":0.5},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedInt","NodeData":{"Offset":"(356.6842,147.223755)"},"ID":37,"Name":"Set
|
||||||
Is Stopped","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"SharedBoolisStopped":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true}},{"Type":"BlueWaterProject.AttackOfEnemy","NodeData":{"Offset":"(-3.29175377,147.723267)"},"ID":35,"Name":"Attack
|
Shared Int","Instant":true,"SharedInttargetValue":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedInttargetVariable":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"FailCount","IsShared":true,"Int32mValue":0}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(426.8182,150)"},"ID":38,"Name":"Attack
|
||||||
Of Enemy","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedInt","NodeData":{"Offset":"(153.181641,148.636353)"},"ID":36,"Name":"Set
|
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.UnityNavMeshAgent.SetIsStopped","NodeData":{"Offset":"(-141.443,148.954468)"},"ID":39,"Name":"Set
|
||||||
Shared Int","Instant":true,"SharedInttargetValue":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedInttargetVariable":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"FailCount","IsShared":true,"Int32mValue":0}}]}]}]}]}]}]}]},"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedTransform","Name":"TargetTransform","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"CurrentHp","IsShared":true,"SinglemValue":0},{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"FailCount","IsShared":true,"Int32mValue":0}]}'
|
Is Stopped","Instant":true,"SharedGameObjecttargetGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"SharedBoolisStopped":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true}},{"Type":"BlueWaterProject.AttackOfEnemy","NodeData":{"Offset":"(-3.29175377,147.723267)"},"ID":40,"Name":"Attack
|
||||||
|
Of Enemy","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.SetSharedInt","NodeData":{"Offset":"(153.181641,148.636353)"},"ID":41,"Name":"Set
|
||||||
|
Shared Int","Instant":true,"SharedInttargetValue":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedInttargetVariable":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"FailCount","IsShared":true,"Int32mValue":0}}]}]}]}]}]}]}]},"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedTransform","Name":"TargetTransform","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"CurrentHp","IsShared":true,"SinglemValue":0},{"Type":"BehaviorDesigner.Runtime.SharedVector3","Name":"DefensePos","IsShared":true,"Vector3mValue":"(0,0,0)"},{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"FailCount","IsShared":true,"Int32mValue":0},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"BeAttacked","IsShared":true,"BooleanmValue":false}]}'
|
||||||
fieldSerializationData:
|
fieldSerializationData:
|
||||||
typeName: []
|
typeName: []
|
||||||
fieldNameHash:
|
fieldNameHash:
|
||||||
|
Loading…
Reference in New Issue
Block a user