#20 미니 모래 두더지 소환 기능 추가
+ MiniSandMole 프리팹 추가 + BossConfiguration So에 MiniSandMole 추가 + MiniSandMoleData, MiniSingleRollData So 추가 + MiniSandMole BehaviorTree 추가 + SandMoleMapController 클래스 추가 + ITarget, ICurrentDirection 인터페이스 추가 + Bt Actions - CanSkill, ActivateSkill 로직 변경 + BossHealthPoint 로직 변경 + 미니 모래 두더지에 소환할 때, 죽을 때, 디졸브 효과 추가 Closes #20
This commit is contained in:
parent
4a33648e0f
commit
15bfe87a09
@ -3226,17 +3226,6 @@ CanvasRenderer:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 672714555}
|
m_GameObject: {fileID: 672714555}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
--- !u!114 &690823801 stripped
|
|
||||||
MonoBehaviour:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 6585123087190923213, guid: 39e32b91cc570794e9e843b39f89e400, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 1213070729}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 0}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 45ca5fc4b0d9415ca599aa7cd17f3370, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
--- !u!1 &704479487
|
--- !u!1 &704479487
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -5231,6 +5220,17 @@ PrefabInstance:
|
|||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
m_AddedComponents: []
|
m_AddedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 39e32b91cc570794e9e843b39f89e400, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: 39e32b91cc570794e9e843b39f89e400, type: 3}
|
||||||
|
--- !u!114 &1213070730 stripped
|
||||||
|
MonoBehaviour:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 4232848145969149048, guid: 39e32b91cc570794e9e843b39f89e400, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 1213070729}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: eb656087fe6c652469b29504a37df539, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &1243437081
|
--- !u!1 &1243437081
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -8527,7 +8527,7 @@ MonoBehaviour:
|
|||||||
<FirstTutorialMapController>k__BackingField: {fileID: 728440691}
|
<FirstTutorialMapController>k__BackingField: {fileID: 728440691}
|
||||||
<TitanSlimeMapController>k__BackingField: {fileID: 36953787}
|
<TitanSlimeMapController>k__BackingField: {fileID: 36953787}
|
||||||
<RhinocerosMapController>k__BackingField: {fileID: 1011270532}
|
<RhinocerosMapController>k__BackingField: {fileID: 1011270532}
|
||||||
<SandMoleMapController>k__BackingField: {fileID: 690823801}
|
<SandMoleMapController>k__BackingField: {fileID: 1213070730}
|
||||||
--- !u!4 &1597727070
|
--- !u!4 &1597727070
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -13,21 +13,21 @@ namespace BlueWater.BehaviorTrees.Enemies.Bosses.Actions
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private BossSkillName _bossSkillName;
|
private BossSkillName _bossSkillName;
|
||||||
|
|
||||||
private Boss _boss;
|
private BossSkillController _bossSkillController;
|
||||||
|
|
||||||
public override void OnAwake()
|
public override void OnAwake()
|
||||||
{
|
{
|
||||||
_boss = transform.GetComponent<Boss>();
|
_bossSkillController = GetComponent<BossSkillController>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnStart()
|
public override void OnStart()
|
||||||
{
|
{
|
||||||
_boss.ActivateSkill(_bossSkillName.ToString());
|
_bossSkillController.ActivateSkill(_bossSkillName.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override TaskStatus OnUpdate()
|
public override TaskStatus OnUpdate()
|
||||||
{
|
{
|
||||||
return _boss.IsSkillActive ? TaskStatus.Running : TaskStatus.Success;
|
return _bossSkillController.IsSkillActive ? TaskStatus.Running : TaskStatus.Success;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -12,16 +12,16 @@ namespace BlueWater.BehaviorTrees.Enemies.Bosses.Conditionals
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private BossSkillName _bossSkillName;
|
private BossSkillName _bossSkillName;
|
||||||
|
|
||||||
private Boss _boss;
|
private BossSkillController _bossSkillController;
|
||||||
|
|
||||||
public override void OnAwake()
|
public override void OnAwake()
|
||||||
{
|
{
|
||||||
_boss = transform.GetComponent<Boss>();
|
_bossSkillController = GetComponent<BossSkillController>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override TaskStatus OnUpdate()
|
public override TaskStatus OnUpdate()
|
||||||
{
|
{
|
||||||
return _boss.CanSkill(_bossSkillName.ToString()) ? TaskStatus.Success : TaskStatus.Failure;
|
return _bossSkillController.CanSkill(_bossSkillName.ToString()) ? TaskStatus.Success : TaskStatus.Failure;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,5 @@
|
|||||||
using BehaviorDesigner.Runtime;
|
using BehaviorDesigner.Runtime;
|
||||||
|
using BlueWater.Interfaces;
|
||||||
using Pathfinding;
|
using Pathfinding;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -10,7 +11,8 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
None = 0,
|
None = 0,
|
||||||
TitanSlime,
|
TitanSlime,
|
||||||
Rhinoceros,
|
Rhinoceros,
|
||||||
SandMole
|
SandMole,
|
||||||
|
MiniSandMole
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum BossSkillName
|
public enum BossSkillName
|
||||||
@ -27,10 +29,9 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
GateOfSpikes,
|
GateOfSpikes,
|
||||||
MultiThrowSpikes,
|
MultiThrowSpikes,
|
||||||
SingleRoll,
|
SingleRoll,
|
||||||
SummonMiniSandMole
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract class Boss : MonoBehaviour
|
public abstract class Boss : MonoBehaviour, ITarget
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
#region Variables
|
#region Variables
|
||||||
|
@ -4,17 +4,27 @@ using BlueWater.Audios;
|
|||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
using BlueWater.Uis;
|
using BlueWater.Uis;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace BlueWater.Enemies.Bosses
|
namespace BlueWater.Enemies.Bosses
|
||||||
{
|
{
|
||||||
public class BossHealthPoint : MonoBehaviour, IDamageable
|
public class BossHealthPoint : MonoBehaviour, IDamageable
|
||||||
{
|
{
|
||||||
// Components
|
// 컴포넌트
|
||||||
|
[Title("컴포넌트")]
|
||||||
|
[SerializeField]
|
||||||
private CapsuleCollider _characterCollider;
|
private CapsuleCollider _characterCollider;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
private SpriteRenderer _spriteRenderer;
|
private SpriteRenderer _spriteRenderer;
|
||||||
|
|
||||||
// Variables
|
[SerializeField]
|
||||||
|
private Transform _particleInstantiateLocation;
|
||||||
|
|
||||||
|
// 체력 설정
|
||||||
|
[field: Title("체력 설정")]
|
||||||
|
[field: SerializeField]
|
||||||
public int MaxHealthPoint { get; private set; }
|
public int MaxHealthPoint { get; private set; }
|
||||||
|
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
@ -25,6 +35,8 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
|
|
||||||
private bool _enableTakeDamage = true;
|
private bool _enableTakeDamage = true;
|
||||||
|
|
||||||
|
// 효과 설정
|
||||||
|
[Title("효과 설정")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private string _attackedSfxName;
|
private string _attackedSfxName;
|
||||||
|
|
||||||
@ -36,9 +48,6 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private ParticleSystem _dieParticle;
|
private ParticleSystem _dieParticle;
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
private Transform _particleInstantiateLocation;
|
|
||||||
|
|
||||||
private FieldBossHealthPointUi _fieldBossHealthPointUi;
|
private FieldBossHealthPointUi _fieldBossHealthPointUi;
|
||||||
private WaitForSeconds _flashWhiteWaitTime;
|
private WaitForSeconds _flashWhiteWaitTime;
|
||||||
@ -57,7 +66,10 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
// Unity events
|
// Unity events
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
_flashWhiteWaitTime = new WaitForSeconds(_damageInterval);
|
_flashWhiteWaitTime = new WaitForSeconds(_damageInterval);
|
||||||
|
_fieldBossHealthPointUi = CombatUiManager.Instance.FieldBossHealthPointUi;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
@ -69,21 +81,25 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Initialize methods
|
// Initialize methods
|
||||||
public void InitializeComponents(bool enableHealthChangedEvent, CapsuleCollider characterCollider,
|
[Button("셋팅 초기화")]
|
||||||
SpriteRenderer spriteRenderer, int maxHealthPoint, string bossName, Transform particleInstantiateLocation = null)
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
_characterCollider = GetComponent<CapsuleCollider>();
|
||||||
|
_spriteRenderer = GetComponentInChildren<SpriteRenderer>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Initialize(bool enableHealthChangedEvent, int maxHealthPoint, string bossName, Transform particleInstantiateLocation = null)
|
||||||
{
|
{
|
||||||
_fieldBossHealthPointUi = CombatUiManager.Instance.FieldBossHealthPointUi;
|
|
||||||
_enableHealthChangedEvent = enableHealthChangedEvent;
|
_enableHealthChangedEvent = enableHealthChangedEvent;
|
||||||
|
MaxHealthPoint = maxHealthPoint;
|
||||||
|
_particleInstantiateLocation = particleInstantiateLocation;
|
||||||
|
_fieldBossHealthPointUi ??= CombatUiManager.Instance.FieldBossHealthPointUi;
|
||||||
|
|
||||||
if (_enableHealthChangedEvent)
|
if (_enableHealthChangedEvent)
|
||||||
{
|
{
|
||||||
OnHealthChanged += _fieldBossHealthPointUi.SetCurrentHealthPoint;
|
OnHealthChanged += _fieldBossHealthPointUi.SetCurrentHealthPoint;
|
||||||
_fieldBossHealthPointUi.SetBoss(maxHealthPoint, bossName);
|
_fieldBossHealthPointUi.SetBoss(MaxHealthPoint, bossName);
|
||||||
}
|
}
|
||||||
|
|
||||||
_characterCollider = characterCollider;
|
|
||||||
_spriteRenderer = spriteRenderer;
|
|
||||||
MaxHealthPoint = maxHealthPoint;
|
|
||||||
_particleInstantiateLocation = particleInstantiateLocation;
|
|
||||||
|
|
||||||
SetCurrentHealthPoint(MaxHealthPoint);
|
SetCurrentHealthPoint(MaxHealthPoint);
|
||||||
}
|
}
|
||||||
@ -110,6 +126,11 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
var changeHp = Mathf.Max(CurrentHealthPoint - damageAmount, 0);
|
var changeHp = Mathf.Max(CurrentHealthPoint - damageAmount, 0);
|
||||||
SetCurrentHealthPoint(changeHp);
|
SetCurrentHealthPoint(changeHp);
|
||||||
|
|
||||||
|
if (_spriteRenderer.material.HasInt(_isHitHash))
|
||||||
|
{
|
||||||
|
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
|
||||||
|
}
|
||||||
|
|
||||||
// 죽었는지 체크
|
// 죽었는지 체크
|
||||||
if (changeHp == 0f)
|
if (changeHp == 0f)
|
||||||
{
|
{
|
||||||
@ -128,11 +149,7 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
{
|
{
|
||||||
AudioManager.Instance.PlaySfx(_attackedSfxName);
|
AudioManager.Instance.PlaySfx(_attackedSfxName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_spriteRenderer.material.HasInt(_isHitHash))
|
|
||||||
{
|
|
||||||
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
|
|
||||||
}
|
|
||||||
Utils.StartUniqueCoroutine(this, ref _damageIntervalCoroutine, Utils.CoolDownCoroutine(_damageInterval, EndDamageIntervalCoroutine));
|
Utils.StartUniqueCoroutine(this, ref _damageIntervalCoroutine, Utils.CoolDownCoroutine(_damageInterval, EndDamageIntervalCoroutine));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using BlueWater.Maps;
|
using BlueWater.Interfaces;
|
||||||
|
using BlueWater.Maps;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace BlueWater.Enemies.Bosses.Rhinoceros
|
namespace BlueWater.Enemies.Bosses.Rhinoceros
|
||||||
@ -13,7 +14,7 @@ namespace BlueWater.Enemies.Bosses.Rhinoceros
|
|||||||
SkyFallSmash = 5
|
SkyFallSmash = 5
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Rhinoceros : Boss
|
public class Rhinoceros : Boss, ICurrentDirection
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
#region Variables
|
#region Variables
|
||||||
@ -74,7 +75,7 @@ namespace BlueWater.Enemies.Bosses.Rhinoceros
|
|||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
BossHealthPoint.InitializeComponents(true, CharacterCollider, SpriteRenderer, RhinocerosData.MaxHealthPoint,
|
BossHealthPoint.Initialize(true, RhinocerosData.MaxHealthPoint,
|
||||||
RhinocerosData.DisplayName, BossMapController.ParticleInstantiateLocation);
|
RhinocerosData.DisplayName, BossMapController.ParticleInstantiateLocation);
|
||||||
BossSkillController.Initialize(BossData.SkillDataList);
|
BossSkillController.Initialize(BossData.SkillDataList);
|
||||||
SetMoveSpeed(RhinocerosData.MoveSpeed);
|
SetMoveSpeed(RhinocerosData.MoveSpeed);
|
||||||
|
209
Assets/02.Scripts/Character/Enemy/Boss/SandMole/MiniSandMole.cs
Normal file
209
Assets/02.Scripts/Character/Enemy/Boss/SandMole/MiniSandMole.cs
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using BehaviorDesigner.Runtime;
|
||||||
|
using BlueWater.Interfaces;
|
||||||
|
using BlueWater.Maps;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Serialization;
|
||||||
|
|
||||||
|
namespace BlueWater.Enemies.Bosses.SandMole
|
||||||
|
{
|
||||||
|
public class MiniSandMole : MonoBehaviour, ITarget, ICurrentDirection
|
||||||
|
{
|
||||||
|
// Variables
|
||||||
|
#region Variables
|
||||||
|
|
||||||
|
// Components
|
||||||
|
[field: SerializeField]
|
||||||
|
public Rigidbody Rigidbody { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public CapsuleCollider CharacterCollider { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public BehaviorTree BehaviorTree { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public Transform VisualLook { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public SpriteRenderer SpriteRenderer { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public Animator Animator { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public BoxCollider HitBoxCollider { get; private set; }
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
[field: SerializeField, Required]
|
||||||
|
public BossData BossData { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField, Required]
|
||||||
|
public AnimationController AnimationController { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField, Required]
|
||||||
|
public BossHealthPoint BossHealthPoint { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField, Required]
|
||||||
|
public BossSkillController BossSkillController { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField, Required]
|
||||||
|
public SandMoleStatus SandMoleStatus { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public Collider Target { get; private set; }
|
||||||
|
|
||||||
|
[Title("효과")]
|
||||||
|
[SerializeField]
|
||||||
|
private float _spawnDissolveTime = 2f;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private float _dieDissolveTime = 1f;
|
||||||
|
|
||||||
|
public BossMapController BossMapController { get; private set; }
|
||||||
|
|
||||||
|
private bool _isMoving;
|
||||||
|
public bool IsMoving
|
||||||
|
{
|
||||||
|
get => _isMoving;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_isMoving = value;
|
||||||
|
AnimationController.SetAnimationParameter("isMoving", _isMoving);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Vector3 _currentDirection = Vector3.right;
|
||||||
|
public Vector3 CurrentDirection
|
||||||
|
{
|
||||||
|
get => _currentDirection;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (value == Vector3.zero) return;
|
||||||
|
|
||||||
|
_currentDirection = value;
|
||||||
|
AnimationController.SetAnimationParameter("xDirection", _currentDirection.x);
|
||||||
|
AnimationController.SetAnimationParameter("zDirection", _currentDirection.z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hashes
|
||||||
|
private static readonly int _dissolveValueHash = Shader.PropertyToID("_DissolveValue");
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// Unity events
|
||||||
|
#region Unity events
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
InitializeComponents();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
FlipVisualLook();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// Initialize methods
|
||||||
|
#region Initialize methods
|
||||||
|
|
||||||
|
[Button("컴포넌트 초기화")]
|
||||||
|
private void InitializeComponents()
|
||||||
|
{
|
||||||
|
Rigidbody = GetComponent<Rigidbody>();
|
||||||
|
CharacterCollider = GetComponent<CapsuleCollider>();
|
||||||
|
BehaviorTree = GetComponent<BehaviorTree>();
|
||||||
|
VisualLook = transform.Find("VisualLook");
|
||||||
|
SpriteRenderer = VisualLook.GetComponent<SpriteRenderer>();
|
||||||
|
Animator = VisualLook.GetComponent<Animator>();
|
||||||
|
HitBoxCollider = transform.Find("HitBox").GetComponent<BoxCollider>();
|
||||||
|
|
||||||
|
AnimationController = GetComponent<AnimationController>();
|
||||||
|
BossHealthPoint = GetComponent<BossHealthPoint>();
|
||||||
|
BossSkillController = GetComponent<BossSkillController>();
|
||||||
|
|
||||||
|
SandMoleStatus = GetComponent<SandMoleStatus>();
|
||||||
|
BossMapController = MapManager.Instance.SandMoleMapController;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Initialize()
|
||||||
|
{
|
||||||
|
StartCoroutine(InitializeEffectCoroutine());
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator InitializeEffectCoroutine()
|
||||||
|
{
|
||||||
|
Target = GameManager.Instance.CurrentCombatPlayer.GetComponent<Collider>();
|
||||||
|
|
||||||
|
BossHealthPoint.Initialize(false, BossData.MaxHealthPoint,
|
||||||
|
BossData.DisplayName, BossMapController.ParticleInstantiateLocation);
|
||||||
|
BossHealthPoint.OnDead += HandleDie;
|
||||||
|
BossSkillController.Initialize(BossData.SkillDataList);
|
||||||
|
|
||||||
|
SpriteRenderer.material.SetFloat(_dissolveValueHash, 0f);
|
||||||
|
var elapsedTime = 0f;
|
||||||
|
while (elapsedTime <= _spawnDissolveTime)
|
||||||
|
{
|
||||||
|
var value = Mathf.Lerp(0f, 1f, elapsedTime / _spawnDissolveTime);
|
||||||
|
SpriteRenderer.material.SetFloat(_dissolveValueHash, value);
|
||||||
|
elapsedTime += Time.deltaTime;
|
||||||
|
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
|
SpriteRenderer.material.SetFloat(_dissolveValueHash, 1f);
|
||||||
|
|
||||||
|
BehaviorTree.EnableBehavior();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// Methods
|
||||||
|
#region Methods
|
||||||
|
|
||||||
|
private void HandleDie()
|
||||||
|
{
|
||||||
|
StartCoroutine(DieCoroutine());
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator DieCoroutine()
|
||||||
|
{
|
||||||
|
if (Rigidbody)
|
||||||
|
{
|
||||||
|
Rigidbody.isKinematic = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
AnimationController.SetAnimationTrigger("isDead");
|
||||||
|
|
||||||
|
SpriteRenderer.material.SetFloat(_dissolveValueHash, 0f);
|
||||||
|
var elapsedTime = 0f;
|
||||||
|
while (elapsedTime <= _dieDissolveTime)
|
||||||
|
{
|
||||||
|
var value = Mathf.Lerp(1f, 0f, elapsedTime / _dieDissolveTime);
|
||||||
|
SpriteRenderer.material.SetFloat(_dissolveValueHash, value);
|
||||||
|
elapsedTime += Time.deltaTime;
|
||||||
|
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
|
SpriteRenderer.material.SetFloat(_dissolveValueHash, 1f);
|
||||||
|
Destroy(gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FlipVisualLook()
|
||||||
|
{
|
||||||
|
var localScale = VisualLook.localScale;
|
||||||
|
localScale.x = CurrentDirection.x switch
|
||||||
|
{
|
||||||
|
> 0.01f => Mathf.Abs(localScale.x),
|
||||||
|
< -0.01f => -Mathf.Abs(localScale.x),
|
||||||
|
_ => localScale.x
|
||||||
|
};
|
||||||
|
VisualLook.localScale = localScale;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d2c9c11e3a59f3846831e295e4ace612
|
||||||
|
timeCreated: 1717140083
|
@ -1,4 +1,7 @@
|
|||||||
using BlueWater.Maps;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using BlueWater.Interfaces;
|
||||||
|
using BlueWater.Maps;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -10,18 +13,31 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
GateOfSpikes,
|
GateOfSpikes,
|
||||||
MultiThrowSpikes,
|
MultiThrowSpikes,
|
||||||
SingleRoll,
|
SingleRoll,
|
||||||
SummonMiniSandMole
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class SummonMiniSandMole
|
||||||
|
{
|
||||||
|
[field: SerializeField]
|
||||||
|
public float HealthPercentage { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public bool SummonTrigger { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SandMole : Boss
|
public class SandMole : Boss, ICurrentDirection
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
#region Variables
|
#region Variables
|
||||||
|
|
||||||
[field: SerializeField, Required]
|
[field: SerializeField, Required]
|
||||||
public SandMoleStatus SandMoleStatus { get; private set; }
|
public SandMoleStatus SandMoleStatus { get; private set; }
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private List<SummonMiniSandMole> _summonMiniSandMoles;
|
||||||
|
|
||||||
public SandMoleData SandMoleData { get; private set; }
|
public SandMoleData SandMoleData { get; private set; }
|
||||||
public BossMapController BossMapController { get; private set; }
|
public SandMoleMapController SandMoleMapController { get; private set; }
|
||||||
|
|
||||||
private bool _isMoving;
|
private bool _isMoving;
|
||||||
public bool IsMoving
|
public bool IsMoving
|
||||||
@ -61,6 +77,13 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
FlipVisualLook();
|
FlipVisualLook();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnDestroy()
|
||||||
|
{
|
||||||
|
base.OnDestroy();
|
||||||
|
|
||||||
|
BossHealthPoint.OnHealthChanged -= SummonMiniSandMole;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
// Initialize methods
|
// Initialize methods
|
||||||
@ -72,13 +95,14 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
|
|
||||||
SandMoleStatus = GetComponent<SandMoleStatus>();
|
SandMoleStatus = GetComponent<SandMoleStatus>();
|
||||||
SandMoleData = BossData as SandMoleData;
|
SandMoleData = BossData as SandMoleData;
|
||||||
BossMapController = MapManager.Instance.SandMoleMapController;
|
SandMoleMapController = MapManager.Instance.SandMoleMapController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
BossHealthPoint.InitializeComponents(true, CharacterCollider, SpriteRenderer, SandMoleData.MaxHealthPoint,
|
BossHealthPoint.Initialize(true, SandMoleData.MaxHealthPoint,
|
||||||
SandMoleData.DisplayName, BossMapController.ParticleInstantiateLocation);
|
SandMoleData.DisplayName, SandMoleMapController.ParticleInstantiateLocation);
|
||||||
|
BossHealthPoint.OnHealthChanged += SummonMiniSandMole;
|
||||||
BossSkillController.Initialize(BossData.SkillDataList);
|
BossSkillController.Initialize(BossData.SkillDataList);
|
||||||
SetMoveSpeed(SandMoleData.MoveSpeed);
|
SetMoveSpeed(SandMoleData.MoveSpeed);
|
||||||
StopMove();
|
StopMove();
|
||||||
@ -100,7 +124,20 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
}
|
}
|
||||||
|
|
||||||
AnimationController.SetAnimationTrigger("isDead");
|
AnimationController.SetAnimationTrigger("isDead");
|
||||||
BossMapController.MapClear();
|
SandMoleMapController.MapClear();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SummonMiniSandMole(int currentHp)
|
||||||
|
{
|
||||||
|
var currentHealthPercentage = (float)currentHp / BossData.MaxHealthPoint * 100f;
|
||||||
|
|
||||||
|
foreach (var element in _summonMiniSandMoles)
|
||||||
|
{
|
||||||
|
if (currentHealthPercentage > element.HealthPercentage || element.SummonTrigger) continue;
|
||||||
|
|
||||||
|
SandMoleMapController.SummonMiniSandMole();
|
||||||
|
element.SummonTrigger = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FlipVisualLook()
|
private void FlipVisualLook()
|
||||||
|
@ -43,7 +43,7 @@ namespace BlueWater.Enemies.Bosses.TitanSlime
|
|||||||
MinCoolDown = TitanSlimeState.RandomCooldown.x;
|
MinCoolDown = TitanSlimeState.RandomCooldown.x;
|
||||||
MaxCoolDown = TitanSlimeState.RandomCooldown.y;
|
MaxCoolDown = TitanSlimeState.RandomCooldown.y;
|
||||||
|
|
||||||
BossHealthPoint.InitializeComponents(TitanSlimeState.HasRabbit, CharacterCollider, SpriteRenderer, TitanSlimeState.MaxHp,
|
BossHealthPoint.Initialize(TitanSlimeState.HasRabbit, TitanSlimeState.MaxHp,
|
||||||
TitanSlimeData.DisplayName, _titanSlimeMapController.ParticleInstantiateLocation);
|
TitanSlimeData.DisplayName, _titanSlimeMapController.ParticleInstantiateLocation);
|
||||||
BossSkillController.Initialize(BossData.SkillDataList);
|
BossSkillController.Initialize(BossData.SkillDataList);
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using BlueWater.Enemies.Bosses;
|
using BlueWater.Enemies.Bosses;
|
||||||
using BlueWater.Enemies.Bosses.Rhinoceros;
|
using BlueWater.Enemies.Bosses.Rhinoceros;
|
||||||
|
using BlueWater.Enemies.Bosses.SandMole;
|
||||||
using BlueWater.Enemies.Bosses.TitanSlime;
|
using BlueWater.Enemies.Bosses.TitanSlime;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -75,5 +76,20 @@ namespace BlueWater.Enemies
|
|||||||
instantiateBossLeft.AddForce(_leftSplitDirection * _splitPower, ForceMode.Impulse);
|
instantiateBossLeft.AddForce(_leftSplitDirection * _splitPower, ForceMode.Impulse);
|
||||||
instantiateBossRight.AddForce(_rightSplitDirection * _splitPower, ForceMode.Impulse);
|
instantiateBossRight.AddForce(_rightSplitDirection * _splitPower, ForceMode.Impulse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MiniSandMole
|
||||||
|
public MiniSandMole InstantiateMiniSandMole(Vector3 spawnPosition, Transform instantiateLocation = null)
|
||||||
|
{
|
||||||
|
if (!BossConfigurationDictionary.TryGetValue(BossType.MiniSandMole, out var bossConfiguration))
|
||||||
|
{
|
||||||
|
Debug.LogError($"보스 생성 오류 : 키값 {BossType.MiniSandMole}을(를) 확인해주세요.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var instantiateBoss = Instantiate(bossConfiguration, spawnPosition, Quaternion.identity, instantiateLocation).GetComponent<MiniSandMole>();
|
||||||
|
instantiateBoss.Initialize();
|
||||||
|
|
||||||
|
return instantiateBoss;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
9
Assets/02.Scripts/Interface/ICurrentDirection.cs
Normal file
9
Assets/02.Scripts/Interface/ICurrentDirection.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace BlueWater.Interfaces
|
||||||
|
{
|
||||||
|
public interface ICurrentDirection
|
||||||
|
{
|
||||||
|
Vector3 CurrentDirection { get; set; }
|
||||||
|
}
|
||||||
|
}
|
3
Assets/02.Scripts/Interface/ICurrentDirection.cs.meta
Normal file
3
Assets/02.Scripts/Interface/ICurrentDirection.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6493928181896094bae9cf08de680714
|
||||||
|
timeCreated: 1716899052
|
9
Assets/02.Scripts/Interface/ITarget.cs
Normal file
9
Assets/02.Scripts/Interface/ITarget.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace BlueWater.Interfaces
|
||||||
|
{
|
||||||
|
public interface ITarget
|
||||||
|
{
|
||||||
|
Collider Target { get; }
|
||||||
|
}
|
||||||
|
}
|
3
Assets/02.Scripts/Interface/ITarget.cs.meta
Normal file
3
Assets/02.Scripts/Interface/ITarget.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c6f831a9396c10b41bfa3875dc6cdefa
|
||||||
|
timeCreated: 1716899052
|
@ -15,7 +15,7 @@ namespace BlueWater.Maps
|
|||||||
public BossMapController RhinocerosMapController { get; private set; }
|
public BossMapController RhinocerosMapController { get; private set; }
|
||||||
|
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public BossMapController SandMoleMapController { get; private set; }
|
public SandMoleMapController SandMoleMapController { get; private set; }
|
||||||
|
|
||||||
private MapController _currentMapController;
|
private MapController _currentMapController;
|
||||||
|
|
||||||
|
32
Assets/02.Scripts/Map/SandMoleMapController.cs
Normal file
32
Assets/02.Scripts/Map/SandMoleMapController.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using BlueWater.Enemies;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace BlueWater.Maps
|
||||||
|
{
|
||||||
|
public class SandMoleMapController : BossMapController
|
||||||
|
{
|
||||||
|
[SerializeField, Required]
|
||||||
|
protected Transform CenterSpawnTransform;
|
||||||
|
|
||||||
|
[SerializeField, Required]
|
||||||
|
protected List<Transform> MiniSandMoleSpawnTransforms;
|
||||||
|
|
||||||
|
public void SummonMiniSandMole()
|
||||||
|
{
|
||||||
|
var random1 = Random.Range(0, MiniSandMoleSpawnTransforms.Count);
|
||||||
|
int random2;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
random2 = Random.Range(0, MiniSandMoleSpawnTransforms.Count);
|
||||||
|
} while (random2 == random1);
|
||||||
|
|
||||||
|
var miniSandMole1 = EnemyManager.Instance.InstantiateMiniSandMole(MiniSandMoleSpawnTransforms[random1].position, EnemyInstantiateLocation);
|
||||||
|
miniSandMole1.Initialize();
|
||||||
|
|
||||||
|
var miniSandMole2 = EnemyManager.Instance.InstantiateMiniSandMole(MiniSandMoleSpawnTransforms[random2].position, EnemyInstantiateLocation);
|
||||||
|
miniSandMole2.Initialize();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
Assets/02.Scripts/Map/SandMoleMapController.cs.meta
Normal file
3
Assets/02.Scripts/Map/SandMoleMapController.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: eb656087fe6c652469b29504a37df539
|
||||||
|
timeCreated: 1717153632
|
@ -19,3 +19,5 @@ MonoBehaviour:
|
|||||||
<Prefab>k__BackingField: {fileID: 4623786526972472839, guid: b3fede52cd9ea854fab2ad603b53dd77, type: 3}
|
<Prefab>k__BackingField: {fileID: 4623786526972472839, guid: b3fede52cd9ea854fab2ad603b53dd77, type: 3}
|
||||||
- <BossType>k__BackingField: 3
|
- <BossType>k__BackingField: 3
|
||||||
<Prefab>k__BackingField: {fileID: 4623786526972472839, guid: e3a389dac3e524844ac42dabd7207e64, type: 3}
|
<Prefab>k__BackingField: {fileID: 4623786526972472839, guid: e3a389dac3e524844ac42dabd7207e64, type: 3}
|
||||||
|
- <BossType>k__BackingField: 4
|
||||||
|
<Prefab>k__BackingField: {fileID: 811732657406064749, guid: 5975a5a7434cc704c9d60c8ab3750550, type: 3}
|
||||||
|
@ -0,0 +1,23 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 32c16666a1f9189489ca45f420907595, type: 3}
|
||||||
|
m_Name: MiniSandMoleData
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
<Name>k__BackingField: MiniSandMole
|
||||||
|
<DisplayName>k__BackingField: "\uBBF8\uB2C8 \uBAA8\uB798 \uB450\uB354\uC9C0"
|
||||||
|
<MaxHealthPoint>k__BackingField: 30
|
||||||
|
<TargetLayer>k__BackingField:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 2048
|
||||||
|
<SkillDataList>k__BackingField:
|
||||||
|
- {fileID: 6760430575876107212, guid: 23d0aa0f7beb06342b545024c1195523, type: 3}
|
||||||
|
<MoveSpeed>k__BackingField: 3
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c6c55ff80d789904d9c68504850501f2
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,41 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 1754c19573409534085289855f7331e3, type: 3}
|
||||||
|
m_Name: MiniSingleRollData
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
<Name>k__BackingField: SingleRoll
|
||||||
|
<DisplayName>k__BackingField: "\uAD6C\uB974\uAE30"
|
||||||
|
<Description>k__BackingField:
|
||||||
|
<Damage>k__BackingField: 1
|
||||||
|
<Cooldown>k__BackingField: 0
|
||||||
|
<Radius>k__BackingField: 0
|
||||||
|
<CastingTime>k__BackingField: 0.5
|
||||||
|
<Duration>k__BackingField: 0
|
||||||
|
<TargetLayer>k__BackingField:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 2432
|
||||||
|
<WallLayer>k__BackingField:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 128
|
||||||
|
<GroundLayer>k__BackingField:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 64
|
||||||
|
<RollSpeed>k__BackingField: 40
|
||||||
|
<PushPower>k__BackingField: 8
|
||||||
|
<AirJumpForce>k__BackingField: 3
|
||||||
|
<BounceBackForce>k__BackingField: 200
|
||||||
|
<CameraShakingPower>k__BackingField: 2
|
||||||
|
<CameraShakingDuration>k__BackingField: 0.5
|
||||||
|
<RockfallPrefab>k__BackingField: {fileID: 0}
|
||||||
|
<RandomSide>k__BackingField: {x: -2, y: 2}
|
||||||
|
<RockfallInterval>k__BackingField: 2
|
||||||
|
<RockfallSpawnHeight>k__BackingField: 5
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b064f624ee1ab8e429a4e2c158f6ae9f
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -1,3 +1,4 @@
|
|||||||
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||||
@ -32,13 +33,13 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public GameObject RockfallPrefab { get; private set; }
|
public GameObject RockfallPrefab { get; private set; }
|
||||||
|
|
||||||
[field: SerializeField]
|
[field: SerializeField, ShowIf("@RockfallPrefab")]
|
||||||
public Vector2 RandomSide { get; private set; } = new(-2, 2);
|
public Vector2 RandomSide { get; private set; } = new(-2, 2);
|
||||||
|
|
||||||
[field: SerializeField]
|
[field: SerializeField, ShowIf("@RockfallPrefab")]
|
||||||
public float RockfallInterval { get; private set; } = 2f;
|
public float RockfallInterval { get; private set; } = 2f;
|
||||||
|
|
||||||
[field: SerializeField]
|
[field: SerializeField, ShowIf("@RockfallPrefab")]
|
||||||
public float RockfallSpawnHeight { get; private set; } = 5f;
|
public float RockfallSpawnHeight { get; private set; } = 5f;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -16,11 +16,11 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
private bool _isDrawingGizmo = true;
|
private bool _isDrawingGizmo = true;
|
||||||
|
|
||||||
private SingleRollData _singleRollData;
|
private SingleRollData _singleRollData;
|
||||||
private SandMole _sandMole;
|
|
||||||
private AnimationController _animationController;
|
private AnimationController _animationController;
|
||||||
private Rigidbody _userRigidbody;
|
private Rigidbody _userRigidbody;
|
||||||
private CapsuleCollider _userCollider;
|
private CapsuleCollider _userCollider;
|
||||||
private Collider _targetCollider;
|
private Collider _targetCollider;
|
||||||
|
private ICurrentDirection _iCurrentDirection;
|
||||||
private BossMapController _sandMoleMapController;
|
private BossMapController _sandMoleMapController;
|
||||||
private float _colliderRadius;
|
private float _colliderRadius;
|
||||||
private float _attackRadius;
|
private float _attackRadius;
|
||||||
@ -35,17 +35,15 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
|
|
||||||
protected override void BasicSetting()
|
protected override void BasicSetting()
|
||||||
{
|
{
|
||||||
if (!_sandMole)
|
_animationController = SkillUser.GetComponent<AnimationController>();
|
||||||
{
|
_userRigidbody = SkillUser.GetComponent<Rigidbody>();
|
||||||
_sandMole = SkillUser.GetComponent<SandMole>();
|
_userCollider = SkillUser.GetComponent<CapsuleCollider>();
|
||||||
_animationController = _sandMole.AnimationController;
|
_targetCollider = SkillUser.GetComponent<ITarget>().Target;
|
||||||
_userRigidbody = _sandMole.Rigidbody;
|
_sandMoleMapController = MapManager.Instance.SandMoleMapController;
|
||||||
_userCollider = _sandMole.CharacterCollider;
|
_iCurrentDirection = SkillUser.GetComponent<ICurrentDirection>();
|
||||||
_targetCollider = _sandMole.Target;
|
|
||||||
_sandMoleMapController = MapManager.Instance.SandMoleMapController;
|
_colliderRadius = _userCollider.radius * SkillUser.transform.localScale.x;
|
||||||
_colliderRadius = _userCollider.radius * _sandMole.transform.localScale.x;
|
_attackRadius = _colliderRadius * 0.5f;
|
||||||
_attackRadius = _colliderRadius * 0.5f;
|
|
||||||
}
|
|
||||||
_singleRollData = (SingleRollData)SkillData;
|
_singleRollData = (SingleRollData)SkillData;
|
||||||
HitColliders = new Collider[4];
|
HitColliders = new Collider[4];
|
||||||
|
|
||||||
@ -60,7 +58,6 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
private IEnumerator SkillCoroutine(params Action[] actions)
|
private IEnumerator SkillCoroutine(params Action[] actions)
|
||||||
{
|
{
|
||||||
EnableSkill = false;
|
EnableSkill = false;
|
||||||
_sandMole.StopMove();
|
|
||||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.SingleRoll);
|
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.SingleRoll);
|
||||||
|
|
||||||
var animationStarted = false;
|
var animationStarted = false;
|
||||||
@ -94,7 +91,7 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
var angle = Mathf.Atan2(targetDirection.x, targetDirection.z) * Mathf.Rad2Deg;
|
var angle = Mathf.Atan2(targetDirection.x, targetDirection.z) * Mathf.Rad2Deg;
|
||||||
transform.rotation = Quaternion.Euler(0, angle, 0);
|
transform.rotation = Quaternion.Euler(0, angle, 0);
|
||||||
|
|
||||||
_sandMole.CurrentDirection = targetDirection;
|
_iCurrentDirection.CurrentDirection = targetDirection;
|
||||||
ShowIndicator();
|
ShowIndicator();
|
||||||
|
|
||||||
var elapsedTime = 0f;
|
var elapsedTime = 0f;
|
||||||
@ -170,22 +167,25 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
|
|
||||||
yield return new WaitForFixedUpdate();
|
yield return new WaitForFixedUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
var rockfallCount = (int)(targetDistance / _singleRollData.RockfallInterval);
|
|
||||||
for (var i = 2; i < rockfallCount; i++)
|
|
||||||
{
|
|
||||||
if (!SkillUser)
|
|
||||||
{
|
|
||||||
EndSkill(SkillData.Cooldown, actions[0]);
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
|
|
||||||
var randomSide = Random.Range(_singleRollData.RandomSide.x, _singleRollData.RandomSide.y);
|
if (_singleRollData.RockfallPrefab)
|
||||||
var spawnPosition = SkillUser.transform.position
|
{
|
||||||
+ -targetDirection * _singleRollData.RockfallInterval * i
|
var rockfallCount = (int)(targetDistance / _singleRollData.RockfallInterval);
|
||||||
+ Vector3.up * _singleRollData.RockfallSpawnHeight;
|
for (var i = 2; i < rockfallCount; i++)
|
||||||
spawnPosition += Vector3.Cross(-targetDirection, Vector3.up).normalized * randomSide;
|
{
|
||||||
Instantiate(_singleRollData.RockfallPrefab, spawnPosition, Quaternion.identity, _sandMoleMapController.ParticleInstantiateLocation);
|
if (!SkillUser)
|
||||||
|
{
|
||||||
|
EndSkill(SkillData.Cooldown, actions[0]);
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
var randomSide = Random.Range(_singleRollData.RandomSide.x, _singleRollData.RandomSide.y);
|
||||||
|
var spawnPosition = SkillUser.transform.position
|
||||||
|
+ -targetDirection * _singleRollData.RockfallInterval * i
|
||||||
|
+ Vector3.up * _singleRollData.RockfallSpawnHeight;
|
||||||
|
spawnPosition += Vector3.Cross(-targetDirection, Vector3.up).normalized * randomSide;
|
||||||
|
Instantiate(_singleRollData.RockfallPrefab, spawnPosition, Quaternion.identity, _sandMoleMapController.ParticleInstantiateLocation);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
elapsedTime = 0f;
|
elapsedTime = 0f;
|
||||||
|
@ -392,13 +392,16 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 7b9900c0671da864e910821e6447affc, type: 3}
|
m_Script: {fileID: 11500000, guid: 7b9900c0671da864e910821e6447affc, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_characterCollider: {fileID: 4832858849328938018}
|
||||||
|
_spriteRenderer: {fileID: 6274137400612009998}
|
||||||
|
_particleInstantiateLocation: {fileID: 0}
|
||||||
|
<MaxHealthPoint>k__BackingField: 0
|
||||||
<CurrentHealthPoint>k__BackingField: 0
|
<CurrentHealthPoint>k__BackingField: 0
|
||||||
_damageInterval: 0.1
|
_damageInterval: 0.1
|
||||||
_attackedSfxName:
|
_attackedSfxName:
|
||||||
_dieSfxName:
|
_dieSfxName:
|
||||||
_attackedParticle: {fileID: 0}
|
_attackedParticle: {fileID: 0}
|
||||||
_dieParticle: {fileID: 0}
|
_dieParticle: {fileID: 0}
|
||||||
_particleInstantiateLocation: {fileID: 0}
|
|
||||||
--- !u!114 &-3401764490790336446
|
--- !u!114 &-3401764490790336446
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
10080
Assets/05.Prefabs/Characters/Enemies/Bosses/MiniSandMole.prefab
Normal file
10080
Assets/05.Prefabs/Characters/Enemies/Bosses/MiniSandMole.prefab
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5975a5a7434cc704c9d60c8ab3750550
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -19,23 +19,23 @@ PrefabInstance:
|
|||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: '_skillList.Array.data[0]'
|
propertyPath: '_skillList.Array.data[0]'
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 7464818668275774481, guid: c068e12b504a1ca48bf609ee2724abc8, type: 3}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: '_skillList.Array.data[1]'
|
propertyPath: '_skillList.Array.data[1]'
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 7464818668275774481, guid: c068e12b504a1ca48bf609ee2724abc8, type: 3}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: '_skillList.Array.data[2]'
|
propertyPath: '_skillList.Array.data[2]'
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 7464818668275774481, guid: c068e12b504a1ca48bf609ee2724abc8, type: 3}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: '_skillList.Array.data[3]'
|
propertyPath: '_skillList.Array.data[3]'
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 7464818668275774481, guid: c068e12b504a1ca48bf609ee2724abc8, type: 3}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: '_skillList.Array.data[4]'
|
propertyPath: '_skillList.Array.data[4]'
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 7464818668275774481, guid: c068e12b504a1ca48bf609ee2724abc8, type: 3}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: m_LocalScale.x
|
propertyPath: m_LocalScale.x
|
||||||
value: 6
|
value: 6
|
||||||
@ -100,10 +100,6 @@ PrefabInstance:
|
|||||||
propertyPath: m_WasSpriteAssigned
|
propertyPath: m_WasSpriteAssigned
|
||||||
value: 1
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6377054450616127915, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: <CurrentHealthPoint>k__BackingField
|
|
||||||
value: 700
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7170637981020870835, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 7170637981020870835, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: Rhinoceros
|
value: Rhinoceros
|
||||||
|
@ -23,23 +23,23 @@ PrefabInstance:
|
|||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: '_skillList.Array.data[0]'
|
propertyPath: '_skillList.Array.data[0]'
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 7464818668275774481, guid: c068e12b504a1ca48bf609ee2724abc8, type: 3}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: '_skillList.Array.data[1]'
|
propertyPath: '_skillList.Array.data[1]'
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 7464818668275774481, guid: c068e12b504a1ca48bf609ee2724abc8, type: 3}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: '_skillList.Array.data[2]'
|
propertyPath: '_skillList.Array.data[2]'
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 7464818668275774481, guid: c068e12b504a1ca48bf609ee2724abc8, type: 3}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: '_skillList.Array.data[3]'
|
propertyPath: '_skillList.Array.data[3]'
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 7464818668275774481, guid: c068e12b504a1ca48bf609ee2724abc8, type: 3}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: '_skillList.Array.data[4]'
|
propertyPath: '_skillList.Array.data[4]'
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 7464818668275774481, guid: c068e12b504a1ca48bf609ee2724abc8, type: 3}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: m_LocalScale.x
|
propertyPath: m_LocalScale.x
|
||||||
value: 5
|
value: 5
|
||||||
@ -104,10 +104,6 @@ PrefabInstance:
|
|||||||
propertyPath: m_WasSpriteAssigned
|
propertyPath: m_WasSpriteAssigned
|
||||||
value: 1
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6377054450616127915, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: <CurrentHealthPoint>k__BackingField
|
|
||||||
value: 700
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7170637981020870835, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 7170637981020870835, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: SandMole
|
value: SandMole
|
||||||
@ -229,6 +225,15 @@ MonoBehaviour:
|
|||||||
<BossSkillController>k__BackingField: {fileID: 1878389004569703936}
|
<BossSkillController>k__BackingField: {fileID: 1878389004569703936}
|
||||||
<Target>k__BackingField: {fileID: 0}
|
<Target>k__BackingField: {fileID: 0}
|
||||||
<SandMoleStatus>k__BackingField: {fileID: 6857639742673603861}
|
<SandMoleStatus>k__BackingField: {fileID: 6857639742673603861}
|
||||||
|
_summonMiniSandMoles:
|
||||||
|
- <HealthPercentage>k__BackingField: 80
|
||||||
|
<SummonTrigger>k__BackingField: 0
|
||||||
|
- <HealthPercentage>k__BackingField: 60
|
||||||
|
<SummonTrigger>k__BackingField: 0
|
||||||
|
- <HealthPercentage>k__BackingField: 40
|
||||||
|
<SummonTrigger>k__BackingField: 0
|
||||||
|
- <HealthPercentage>k__BackingField: 20
|
||||||
|
<SummonTrigger>k__BackingField: 0
|
||||||
--- !u!114 &6857639742673603861
|
--- !u!114 &6857639742673603861
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -1,5 +1,36 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &193063856128984745
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6657138680337087356}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: MiniSandMoleSpawn (3)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 3936346786652291628, guid: 0000000000000000d000000000000000, type: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &6657138680337087356
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 193063856128984745}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 5, y: 0, z: -5}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 8991664057069348477}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &316225229665130246
|
--- !u!1 &316225229665130246
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -280,6 +311,37 @@ MeshRenderer:
|
|||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
m_AdditionalVertexStreams: {fileID: 0}
|
m_AdditionalVertexStreams: {fileID: 0}
|
||||||
|
--- !u!1 &2563095547787055824
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1324592367882867249}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: MiniSandMoleSpawn (1)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 3936346786652291628, guid: 0000000000000000d000000000000000, type: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1324592367882867249
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2563095547787055824}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 5, y: 0, z: 5}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 8991664057069348477}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &3576121860620050639
|
--- !u!1 &3576121860620050639
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -496,6 +558,68 @@ BoxCollider:
|
|||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_Size: {x: 1, y: 1, z: 1}
|
m_Size: {x: 1, y: 1, z: 1}
|
||||||
m_Center: {x: 0, y: 0, z: 0}
|
m_Center: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &7225845442489806937
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4946803535834257734}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: CenterSpawn
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: -1412012063857583412, guid: 0000000000000000d000000000000000, type: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &4946803535834257734
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7225845442489806937}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 6960399737772514917}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &7331406564017590088
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 9046549034752090187}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: MiniSandMoleSpawn (2)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 3936346786652291628, guid: 0000000000000000d000000000000000, type: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &9046549034752090187
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7331406564017590088}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: -5, y: 0, z: -5}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 8991664057069348477}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &7619121463401286315
|
--- !u!1 &7619121463401286315
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -582,6 +706,72 @@ MeshRenderer:
|
|||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
m_AdditionalVertexStreams: {fileID: 0}
|
m_AdditionalVertexStreams: {fileID: 0}
|
||||||
|
--- !u!1 &7661269855599544664
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8991664057069348477}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: MiniSandMoleSpawns
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &8991664057069348477
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7661269855599544664}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 2981470058859736985}
|
||||||
|
- {fileID: 1324592367882867249}
|
||||||
|
- {fileID: 9046549034752090187}
|
||||||
|
- {fileID: 6657138680337087356}
|
||||||
|
m_Father: {fileID: 6960399737772514917}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &7883838996347282313
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2981470058859736985}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: MiniSandMoleSpawn
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 3936346786652291628, guid: 0000000000000000d000000000000000, type: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &2981470058859736985
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7883838996347282313}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: -5, y: 0, z: 5}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 8991664057069348477}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &8345533875491524569
|
--- !u!1 &8345533875491524569
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -802,10 +992,16 @@ PrefabInstance:
|
|||||||
- targetCorrespondingSourceObject: {fileID: 7798505859049167048, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
- targetCorrespondingSourceObject: {fileID: 7798505859049167048, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
||||||
insertIndex: -1
|
insertIndex: -1
|
||||||
addedObject: {fileID: 9203013126190605548}
|
addedObject: {fileID: 9203013126190605548}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 4700527603807157220, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 4946803535834257734}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 4700527603807157220, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 8991664057069348477}
|
||||||
m_AddedComponents:
|
m_AddedComponents:
|
||||||
- targetCorrespondingSourceObject: {fileID: 7702874292798655589, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
- targetCorrespondingSourceObject: {fileID: 7702874292798655589, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
||||||
insertIndex: -1
|
insertIndex: -1
|
||||||
addedObject: {fileID: 6585123087190923213}
|
addedObject: {fileID: 4232848145969149048}
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
||||||
--- !u!4 &1335494345527737213 stripped
|
--- !u!4 &1335494345527737213 stripped
|
||||||
Transform:
|
Transform:
|
||||||
@ -822,7 +1018,7 @@ GameObject:
|
|||||||
m_CorrespondingSourceObject: {fileID: 7702874292798655589, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
m_CorrespondingSourceObject: {fileID: 7702874292798655589, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
||||||
m_PrefabInstance: {fileID: 2424043105665738113}
|
m_PrefabInstance: {fileID: 2424043105665738113}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
--- !u!114 &6585123087190923213
|
--- !u!114 &4232848145969149048
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
@ -831,7 +1027,7 @@ MonoBehaviour:
|
|||||||
m_GameObject: {fileID: 5424010737098975716}
|
m_GameObject: {fileID: 5424010737098975716}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: 45ca5fc4b0d9415ca599aa7cd17f3370, type: 3}
|
m_Script: {fileID: 11500000, guid: eb656087fe6c652469b29504a37df539, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
PlayerSpawnTransform: {fileID: 7906706039042621278}
|
PlayerSpawnTransform: {fileID: 7906706039042621278}
|
||||||
@ -841,6 +1037,12 @@ MonoBehaviour:
|
|||||||
BGMName:
|
BGMName:
|
||||||
BossSpawnTransform: {fileID: 6522622582430961898}
|
BossSpawnTransform: {fileID: 6522622582430961898}
|
||||||
BossType: 3
|
BossType: 3
|
||||||
|
CenterSpawnTransform: {fileID: 4946803535834257734}
|
||||||
|
MiniSandMoleSpawnTransforms:
|
||||||
|
- {fileID: 2981470058859736985}
|
||||||
|
- {fileID: 1324592367882867249}
|
||||||
|
- {fileID: 9046549034752090187}
|
||||||
|
- {fileID: 6657138680337087356}
|
||||||
--- !u!4 &5591840841030008137 stripped
|
--- !u!4 &5591840841030008137 stripped
|
||||||
Transform:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 7798505859049167048, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
m_CorrespondingSourceObject: {fileID: 7798505859049167048, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
||||||
@ -851,6 +1053,11 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 8874040642671342955, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
m_CorrespondingSourceObject: {fileID: 8874040642671342955, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
||||||
m_PrefabInstance: {fileID: 2424043105665738113}
|
m_PrefabInstance: {fileID: 2424043105665738113}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!4 &6960399737772514917 stripped
|
||||||
|
Transform:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 4700527603807157220, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 2424043105665738113}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
--- !u!4 &7552954649617714894 stripped
|
--- !u!4 &7552954649617714894 stripped
|
||||||
Transform:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 5292453453235858255, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
m_CorrespondingSourceObject: {fileID: 5292453453235858255, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
||||||
|
@ -0,0 +1,99 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1001 &6575159217317842605
|
||||||
|
PrefabInstance:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Modification:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TransformParent: {fileID: 0}
|
||||||
|
m_Modifications:
|
||||||
|
- target: {fileID: 817830973935461002, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
propertyPath: m_Name
|
||||||
|
value: MiniSingleRoll
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.w
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 7266951372888583716, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
propertyPath: m_Material
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 2100000, guid: a1e8e71505dd71149a84a361110dac07, type: 2}
|
||||||
|
m_RemovedComponents: []
|
||||||
|
m_RemovedGameObjects: []
|
||||||
|
m_AddedGameObjects: []
|
||||||
|
m_AddedComponents:
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 817830973935461002, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 6760430575876107212}
|
||||||
|
m_SourcePrefab: {fileID: 100100000, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
--- !u!114 &4604593881685827721 stripped
|
||||||
|
MonoBehaviour:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 7266951372888583716, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6575159217317842605}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0777d029ed3dffa4692f417d4aba19ca, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!1 &5793366936479968295 stripped
|
||||||
|
GameObject:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 817830973935461002, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6575159217317842605}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!114 &6760430575876107212
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5793366936479968295}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: b30a1dae096e3af44a1792bbc3a2b620, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
SkillData: {fileID: 11400000, guid: b064f624ee1ab8e429a4e2c158f6ae9f, type: 2}
|
||||||
|
EnableSkill: 1
|
||||||
|
IsUsingIndicator: 1
|
||||||
|
Indicator: {fileID: 4604593881685827721}
|
||||||
|
_isDrawingGizmo: 1
|
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 23d0aa0f7beb06342b545024c1195523
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
41
Assets/11.BehaviorTree/MiniSandMole.asset
Normal file
41
Assets/11.BehaviorTree/MiniSandMole.asset
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: b23f08d2ae4cba14087c1ed36193d82b, type: 3}
|
||||||
|
m_Name: MiniSandMole
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
mBehaviorSource:
|
||||||
|
behaviorName: SandMole
|
||||||
|
behaviorDescription:
|
||||||
|
mTaskData:
|
||||||
|
types: []
|
||||||
|
parentIndex:
|
||||||
|
startIndex:
|
||||||
|
variableStartIndex:
|
||||||
|
JSONSerialization: '{"EntryTask":{"Type":"BehaviorDesigner.Runtime.Tasks.EntryTask","NodeData":{"Offset":"(707.6564,145.842773)"},"ID":0,"Name":"Entry","Instant":true},"RootTask":{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(3.069271,152.681244)"},"ID":1,"Name":"Start
|
||||||
|
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(-76.66675,145.294128)"},"ID":2,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"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.Repeater","NodeData":{"Offset":"(76.06769,146.666718)"},"ID":3,"Name":"Repeater","Instant":true,"SharedIntcount":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolrepeatForever":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true},"SharedBoolendOnFailure":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(-3.44348145,154.9137)"},"ID":4,"Name":"Die
|
||||||
|
Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-547.465149,148.989136)"},"ID":5,"Name":"Die
|
||||||
|
Sequence","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedInt","NodeData":{"Offset":"(-104.999634,149.904846)","Comment":"CurrentHealthPoint
|
||||||
|
== 0"},"ID":6,"Name":"Compare Shared Int","Instant":true,"SharedIntvariable":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"CurrentHealthPoint","IsShared":true,"Int32mValue":0},"SharedIntcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0}},{"Type":"BehaviorDesigner.Runtime.Tasks.StopBehaviorTree","NodeData":{"Offset":"(93.47067,153.019165)"},"ID":7,"Name":"Stop
|
||||||
|
Behavior Tree","Instant":true,"SharedGameObjectbehaviorGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"SharedIntgroup":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolpauseBehavior":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(1.07836533,154.29248)"},"ID":8,"Name":"Skill
|
||||||
|
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-0.5132599,154.740326)"},"ID":9,"Name":"Single
|
||||||
|
Roll","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Enemies.Bosses.Actions.ActivateSkill","NodeData":{"Offset":"(-155.2381,150)"},"ID":10,"Name":"Activate
|
||||||
|
Skill","Instant":true,"BossSkillName_bossSkillName":"SingleRoll"},{"Type":"BlueWater.BehaviorTrees.Enemies.Bosses.Actions.SelfStun","NodeData":{"Offset":"(4.942749,145.861938)"},"ID":11,"Name":"Self
|
||||||
|
Stun","Instant":true,"Single_stunDuration":3},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(134.9425,145.861938)"},"ID":12,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"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}}]}]}]}]}]},"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"CurrentHealthPoint","IsShared":true,"Int32mValue":0},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true}]}'
|
||||||
|
fieldSerializationData:
|
||||||
|
typeName: []
|
||||||
|
fieldNameHash:
|
||||||
|
startIndex:
|
||||||
|
dataPosition:
|
||||||
|
unityObjects: []
|
||||||
|
byteData:
|
||||||
|
byteDataArray:
|
||||||
|
Version: 1.7.9
|
8
Assets/11.BehaviorTree/MiniSandMole.asset.meta
Normal file
8
Assets/11.BehaviorTree/MiniSandMole.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e714607df1007924b9c1a6c384465fde
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Loading…
Reference in New Issue
Block a user