parent
901b2cc967
commit
8cfa321479
108
Assets/02.Scripts/Character/Enemy/Boss/AnimatorBoss.cs
Normal file
108
Assets/02.Scripts/Character/Enemy/Boss/AnimatorBoss.cs
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
using BlueWater.Interfaces;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace BlueWater.Enemies.Bosses
|
||||||
|
{
|
||||||
|
public abstract class AnimatorBoss : Boss, ICurrentDirection
|
||||||
|
{
|
||||||
|
// Variables
|
||||||
|
#region Variables
|
||||||
|
|
||||||
|
// Components
|
||||||
|
[field: Title("애니메이터 보스 컴포넌트")]
|
||||||
|
[field: SerializeField]
|
||||||
|
public SpriteRenderer SpriteRenderer { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public Animator Animator { get; private set; }
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
[field: SerializeField]
|
||||||
|
public AnimationController AnimationController { 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unity events
|
||||||
|
#region Unity events
|
||||||
|
|
||||||
|
protected override void Update()
|
||||||
|
{
|
||||||
|
base.Update();
|
||||||
|
|
||||||
|
HandleMovement();
|
||||||
|
FlipVisualLook();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// Initialize methods
|
||||||
|
#region Initialize methods
|
||||||
|
|
||||||
|
[Button("컴포넌트 초기화")]
|
||||||
|
protected override void InitializeComponents()
|
||||||
|
{
|
||||||
|
base.InitializeComponents();
|
||||||
|
|
||||||
|
SpriteRenderer = VisualLook.GetComponent<SpriteRenderer>();
|
||||||
|
Animator = VisualLook.GetComponent<Animator>();
|
||||||
|
AnimationController = GetComponent<AnimationController>();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// Methods
|
||||||
|
#region Methods
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HandleMovement()
|
||||||
|
{
|
||||||
|
if (!AstarAi.canMove || AstarAi.isStopped)
|
||||||
|
{
|
||||||
|
IsMoving = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
CurrentDirection = AstarAi.velocity.normalized;
|
||||||
|
IsMoving = AstarAi.velocity != Vector3.zero || AstarAi.velocity != Vector3.positiveInfinity;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
12
Assets/02.Scripts/Character/Enemy/Boss/AnimatorBoss.cs.meta
Normal file
12
Assets/02.Scripts/Character/Enemy/Boss/AnimatorBoss.cs.meta
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cb9fe76049bc1454b8a03e0734a0e368
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences:
|
||||||
|
- _aiMovement: {fileID: 11400000, guid: 5d32cc099076ade42ab5744c9bb621bb, type: 2}
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -38,6 +38,7 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
#region Variables
|
#region Variables
|
||||||
|
|
||||||
// Components
|
// Components
|
||||||
|
[field: Title("보스 컴포넌트")]
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public Rigidbody Rigidbody { get; private set; }
|
public Rigidbody Rigidbody { get; private set; }
|
||||||
|
|
||||||
@ -50,12 +51,6 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public Transform VisualLook { get; private set; }
|
public Transform VisualLook { get; private set; }
|
||||||
|
|
||||||
[field: SerializeField]
|
|
||||||
public SpriteRenderer SpriteRenderer { get; private set; }
|
|
||||||
|
|
||||||
[field: SerializeField]
|
|
||||||
public Animator Animator { get; private set; }
|
|
||||||
|
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public BoxCollider HitBoxCollider { get; private set; }
|
public BoxCollider HitBoxCollider { get; private set; }
|
||||||
|
|
||||||
@ -63,9 +58,6 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
[field: SerializeField, Required]
|
[field: SerializeField, Required]
|
||||||
public BossData BossData { get; private set; }
|
public BossData BossData { get; private set; }
|
||||||
|
|
||||||
[field: SerializeField, Required]
|
|
||||||
public AnimationController AnimationController { get; private set; }
|
|
||||||
|
|
||||||
[field: SerializeField, Required]
|
[field: SerializeField, Required]
|
||||||
public BossHealthPoint BossHealthPoint { get; private set; }
|
public BossHealthPoint BossHealthPoint { get; private set; }
|
||||||
|
|
||||||
@ -76,9 +68,9 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
public BossSkillController BossSkillController { get; private set; }
|
public BossSkillController BossSkillController { get; private set; }
|
||||||
|
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public Collider Target { get; private set; }
|
public Collider Target { get; protected set; }
|
||||||
|
|
||||||
public IAstarAI IAstarAi;
|
public IAstarAI AstarAi;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -97,7 +89,7 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
|
|
||||||
protected virtual void Start()
|
protected virtual void Start()
|
||||||
{
|
{
|
||||||
BossHealthPoint.OnDead += HandleDie;
|
BossHealthPoint.OnDead += Die;
|
||||||
|
|
||||||
Target = GameManager.Instance.CurrentCombatPlayer.GetComponent<Collider>();
|
Target = GameManager.Instance.CurrentCombatPlayer.GetComponent<Collider>();
|
||||||
}
|
}
|
||||||
@ -119,7 +111,7 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
|
|
||||||
protected virtual void OnDestroy()
|
protected virtual void OnDestroy()
|
||||||
{
|
{
|
||||||
BossHealthPoint.OnDead -= HandleDie;
|
BossHealthPoint.OnDead -= Die;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -134,16 +126,13 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
CharacterCollider = GetComponent<CapsuleCollider>();
|
CharacterCollider = GetComponent<CapsuleCollider>();
|
||||||
BehaviorTree = GetComponent<BehaviorTree>();
|
BehaviorTree = GetComponent<BehaviorTree>();
|
||||||
VisualLook = transform.Find("VisualLook");
|
VisualLook = transform.Find("VisualLook");
|
||||||
SpriteRenderer = VisualLook.GetComponent<SpriteRenderer>();
|
|
||||||
Animator = VisualLook.GetComponent<Animator>();
|
|
||||||
HitBoxCollider = transform.Find("HitBox").GetComponent<BoxCollider>();
|
HitBoxCollider = transform.Find("HitBox").GetComponent<BoxCollider>();
|
||||||
|
|
||||||
AnimationController = GetComponent<AnimationController>();
|
|
||||||
BossHealthPoint = GetComponent<BossHealthPoint>();
|
BossHealthPoint = GetComponent<BossHealthPoint>();
|
||||||
AIMovement = GetComponent<AiMovement>();
|
AIMovement = GetComponent<AiMovement>();
|
||||||
BossSkillController = GetComponent<BossSkillController>();
|
BossSkillController = GetComponent<BossSkillController>();
|
||||||
|
|
||||||
IAstarAi = GetComponent<IAstarAI>();
|
AstarAi = GetComponent<IAstarAI>();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -154,7 +143,7 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
// Abstract methods
|
// Abstract methods
|
||||||
public virtual void Initialize() { }
|
public virtual void Initialize() { }
|
||||||
|
|
||||||
protected abstract void HandleDie();
|
protected abstract void Die();
|
||||||
|
|
||||||
// Wrapping
|
// Wrapping
|
||||||
// BossHealthPoint
|
// BossHealthPoint
|
||||||
@ -183,6 +172,10 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
public LayerMask TargetLayer => BossData.TargetLayer;
|
public LayerMask TargetLayer => BossData.TargetLayer;
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
|
public void ForceKillBoss()
|
||||||
|
{
|
||||||
|
BossHealthPoint.TakeDamage(100000);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
private CapsuleCollider _characterCollider;
|
private CapsuleCollider _characterCollider;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private SpriteRenderer _spriteRenderer;
|
private Renderer _renderer;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Transform _particleInstantiateLocation;
|
private Transform _particleInstantiateLocation;
|
||||||
@ -63,11 +63,14 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
public event Action<int> OnHealthChanged;
|
public event Action<int> OnHealthChanged;
|
||||||
public event Action OnDead;
|
public event Action OnDead;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
// Unity events
|
// Unity events
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
|
||||||
|
|
||||||
_flashWhiteWaitTime = new WaitForSeconds(InvincibilityDuration);
|
_flashWhiteWaitTime = new WaitForSeconds(InvincibilityDuration);
|
||||||
_fieldBossHealthPointUi = CombatUiManager.Instance.FieldBossHealthPointUi;
|
_fieldBossHealthPointUi = CombatUiManager.Instance.FieldBossHealthPointUi;
|
||||||
}
|
}
|
||||||
@ -85,7 +88,7 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
_characterCollider = GetComponent<CapsuleCollider>();
|
_characterCollider = GetComponent<CapsuleCollider>();
|
||||||
_spriteRenderer = GetComponentInChildren<SpriteRenderer>();
|
_renderer = GetComponentInChildren<Renderer>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Initialize(bool enableHealthChangedEvent, int maxHealthPoint, string bossName, Transform particleInstantiateLocation = null)
|
public void Initialize(bool enableHealthChangedEvent, int maxHealthPoint, string bossName, Transform particleInstantiateLocation = null)
|
||||||
@ -119,13 +122,13 @@ 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))
|
if (_renderer.material.HasInt(_isHitHash))
|
||||||
{
|
{
|
||||||
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
|
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 죽었는지 체크
|
// 죽었는지 체크
|
||||||
if (changeHp == 0f)
|
if (changeHp == 0)
|
||||||
{
|
{
|
||||||
Die();
|
Die();
|
||||||
return;
|
return;
|
||||||
@ -172,9 +175,9 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
|
|
||||||
private IEnumerator FlashWhiteCoroutine()
|
private IEnumerator FlashWhiteCoroutine()
|
||||||
{
|
{
|
||||||
_spriteRenderer.material.SetInt(_isHitHash, 1);
|
_renderer.material.SetInt(_isHitHash, 1);
|
||||||
yield return _flashWhiteWaitTime;
|
yield return _flashWhiteWaitTime;
|
||||||
_spriteRenderer.material.SetInt(_isHitHash, 0);
|
_renderer.material.SetInt(_isHitHash, 0);
|
||||||
|
|
||||||
Utils.EndUniqueCoroutine(this, ref _flashWhiteCoroutine);
|
Utils.EndUniqueCoroutine(this, ref _flashWhiteCoroutine);
|
||||||
}
|
}
|
||||||
@ -184,5 +187,13 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
IsInvincible = false;
|
IsInvincible = false;
|
||||||
Utils.EndUniqueCoroutine(this, ref _damageIntervalCoroutine);
|
Utils.EndUniqueCoroutine(this, ref _damageIntervalCoroutine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void HideFieldBossHealthPointUi()
|
||||||
|
{
|
||||||
|
if (_fieldBossHealthPointUi.gameObject.activeSelf)
|
||||||
|
{
|
||||||
|
_fieldBossHealthPointUi.SetActiveHpSlider(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -81,7 +81,6 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
|
|
||||||
public bool CanSkill(string skillName)
|
public bool CanSkill(string skillName)
|
||||||
{
|
{
|
||||||
if (!_instantiateSkillDictionary.TryGetValue(skillName, out var skill))
|
if (!_instantiateSkillDictionary.TryGetValue(skillName, out var skill))
|
||||||
@ -101,6 +100,14 @@ namespace BlueWater.Enemies.Bosses
|
|||||||
IsSkillActive = false;
|
IsSkillActive = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void StopAllCoroutine()
|
||||||
|
{
|
||||||
|
foreach (var element in _instantiateSkillDictionary.Values)
|
||||||
|
{
|
||||||
|
element.StopAllCoroutines();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,6 @@
|
|||||||
using BlueWater.Interfaces;
|
using BlueWater.Items;
|
||||||
using BlueWater.Items;
|
|
||||||
using BlueWater.Maps;
|
using BlueWater.Maps;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace BlueWater.Enemies.Bosses.Rhinoceros
|
namespace BlueWater.Enemies.Bosses.Rhinoceros
|
||||||
@ -15,52 +15,15 @@ namespace BlueWater.Enemies.Bosses.Rhinoceros
|
|||||||
SkyFallSmash = 5
|
SkyFallSmash = 5
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Rhinoceros : Boss, ICurrentDirection
|
public class Rhinoceros : AnimatorBoss
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
#region Variables
|
#region Variables
|
||||||
|
|
||||||
|
[field: Title("Rhinoceros 컴포넌트")]
|
||||||
public RhinocerosData RhinocerosData { get; private set; }
|
public RhinocerosData RhinocerosData { get; private set; }
|
||||||
public BossMapController BossMapController { get; private set; }
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
// Unity events
|
|
||||||
#region Unity events
|
|
||||||
|
|
||||||
protected override void Update()
|
|
||||||
{
|
|
||||||
base.Update();
|
|
||||||
|
|
||||||
HandleMovement();
|
|
||||||
FlipVisualLook();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
// Initialize methods
|
// Initialize methods
|
||||||
@ -89,43 +52,28 @@ namespace BlueWater.Enemies.Bosses.Rhinoceros
|
|||||||
// Methods
|
// Methods
|
||||||
#region Methods
|
#region Methods
|
||||||
|
|
||||||
protected override void HandleDie()
|
protected override async void Die()
|
||||||
{
|
{
|
||||||
|
BossSkillController.StopAllCoroutine();
|
||||||
|
BehaviorTree.DisableBehavior();
|
||||||
StopMove();
|
StopMove();
|
||||||
|
|
||||||
|
HitBoxCollider.enabled = false;
|
||||||
if (Rigidbody)
|
if (Rigidbody)
|
||||||
{
|
{
|
||||||
|
Rigidbody.linearVelocity = Vector3.zero;
|
||||||
Rigidbody.isKinematic = true;
|
Rigidbody.isKinematic = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
AnimationController.SetAnimationTrigger("isDead");
|
AnimationController.SetAnimationTrigger("isDead");
|
||||||
|
|
||||||
ItemManager.Instance.ItemDropRandomPosition(BossData.CharacterIdx, transform.position);
|
|
||||||
BossMapController.ClearMap();
|
BossMapController.ClearMap();
|
||||||
}
|
while (AnimationController.GetCurrentAnimationNormalizedTime() <= 1f)
|
||||||
|
|
||||||
private void FlipVisualLook()
|
|
||||||
{
|
|
||||||
var localScale = VisualLook.localScale;
|
|
||||||
localScale.x = CurrentDirection.x switch
|
|
||||||
{
|
{
|
||||||
> 0.01f => Mathf.Abs(localScale.x),
|
await Awaitable.NextFrameAsync();
|
||||||
< -0.01f => -Mathf.Abs(localScale.x),
|
|
||||||
_ => localScale.x
|
|
||||||
};
|
|
||||||
VisualLook.localScale = localScale;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void HandleMovement()
|
|
||||||
{
|
|
||||||
if (!IAstarAi.canMove || IAstarAi.isStopped)
|
|
||||||
{
|
|
||||||
IsMoving = false;
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CurrentDirection = IAstarAi.velocity.normalized;
|
ItemManager.Instance.ItemDropRandomPosition(BossData.CharacterIdx, transform.position);
|
||||||
IsMoving = IAstarAi.velocity != Vector3.zero || IAstarAi.velocity != Vector3.positiveInfinity;
|
Destroy(gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -1,161 +1,50 @@
|
|||||||
using System.Collections;
|
using Sirenix.OdinInspector;
|
||||||
using BehaviorDesigner.Runtime;
|
|
||||||
using BlueWater.Interfaces;
|
|
||||||
using BlueWater.Maps;
|
|
||||||
using Sirenix.OdinInspector;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Serialization;
|
|
||||||
|
|
||||||
namespace BlueWater.Enemies.Bosses.SandMole
|
namespace BlueWater.Enemies.Bosses.SandMole
|
||||||
{
|
{
|
||||||
public class MiniSandMole : MonoBehaviour, ITarget, ICurrentDirection
|
public class MiniSandMole : SandMole
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
#region 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("효과")]
|
[Title("효과")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private float _spawnDissolveTime = 2f;
|
private float _spawnDissolveTime = 2f;
|
||||||
|
|
||||||
[SerializeField]
|
//[SerializeField]
|
||||||
private float _dieDissolveTime = 1f;
|
//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
|
// Hashes
|
||||||
private static readonly int _dissolveValueHash = Shader.PropertyToID("_DissolveValue");
|
private static readonly int _dissolveValueHash = Shader.PropertyToID("_DissolveValue");
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
// Unity events
|
|
||||||
#region Unity events
|
|
||||||
|
|
||||||
private void Awake()
|
|
||||||
{
|
|
||||||
InitializeComponents();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Update()
|
|
||||||
{
|
|
||||||
FlipVisualLook();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
// Initialize methods
|
// Initialize methods
|
||||||
#region Initialize methods
|
#region Initialize methods
|
||||||
|
|
||||||
[Button("컴포넌트 초기화")]
|
public override async void Initialize()
|
||||||
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,
|
BossHealthPoint.Initialize(false, BossData.MaxHealthPoint,
|
||||||
BossData.DisplayName, BossMapController.ParticleInstanceLocation);
|
BossData.DisplayName, SandMoleMapController.ParticleInstanceLocation);
|
||||||
BossHealthPoint.OnDead += HandleDie;
|
|
||||||
BossSkillController.Initialize(BossData.SkillDataList);
|
BossSkillController.Initialize(BossData.SkillDataList);
|
||||||
|
SetMoveSpeed(SandMoleData.MoveSpeed);
|
||||||
|
StopMove();
|
||||||
|
|
||||||
SpriteRenderer.material.SetFloat(_dissolveValueHash, 0f);
|
MeshRenderer.material.SetFloat(_dissolveValueHash, 0f);
|
||||||
var elapsedTime = 0f;
|
var elapsedTime = 0f;
|
||||||
while (elapsedTime <= _spawnDissolveTime)
|
while (elapsedTime <= _spawnDissolveTime)
|
||||||
{
|
{
|
||||||
var value = Mathf.Lerp(0f, 1f, elapsedTime / _spawnDissolveTime);
|
var value = Mathf.Lerp(0f, 1f, elapsedTime / _spawnDissolveTime);
|
||||||
SpriteRenderer.material.SetFloat(_dissolveValueHash, value);
|
MeshRenderer.material.SetFloat(_dissolveValueHash, value);
|
||||||
elapsedTime += Time.deltaTime;
|
elapsedTime += Time.deltaTime;
|
||||||
|
await Awaitable.NextFrameAsync();
|
||||||
yield return null;
|
|
||||||
}
|
}
|
||||||
SpriteRenderer.material.SetFloat(_dissolveValueHash, 1f);
|
MeshRenderer.material.SetFloat(_dissolveValueHash, 1f);
|
||||||
|
|
||||||
|
SpineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||||
|
var roarTrack = SpineController.PlayAnimation(SandMoleAnimation.Roar.ToString(), false);
|
||||||
|
|
||||||
|
await SpineController.WaitForAnimationCompletion(roarTrack);
|
||||||
BehaviorTree.EnableBehavior();
|
BehaviorTree.EnableBehavior();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,46 +53,26 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
// Methods
|
// Methods
|
||||||
#region Methods
|
#region Methods
|
||||||
|
|
||||||
private void HandleDie()
|
protected override async void Die()
|
||||||
{
|
{
|
||||||
StartCoroutine(DieCoroutine());
|
BossSkillController.StopAllCoroutine();
|
||||||
}
|
BehaviorTree.DisableBehavior();
|
||||||
|
StopMove();
|
||||||
|
|
||||||
private IEnumerator DieCoroutine()
|
HitBoxCollider.enabled = false;
|
||||||
{
|
|
||||||
if (Rigidbody)
|
if (Rigidbody)
|
||||||
{
|
{
|
||||||
|
Rigidbody.linearVelocity = Vector3.zero;
|
||||||
Rigidbody.isKinematic = true;
|
Rigidbody.isKinematic = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
AnimationController.SetAnimationTrigger("isDead");
|
SpineController.SetSkin(SandMoleSkin.Idle.ToString());
|
||||||
|
var dieTrack = SpineController.PlayAnimation(SandMoleAnimation.Die.ToString(), false);
|
||||||
|
|
||||||
SpriteRenderer.material.SetFloat(_dissolveValueHash, 0f);
|
await SpineController.WaitForAnimationCompletion(dieTrack);
|
||||||
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, 0f);
|
|
||||||
Destroy(gameObject);
|
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
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
using System.Linq;
|
||||||
using BlueWater.Interfaces;
|
|
||||||
using BlueWater.Items;
|
using BlueWater.Items;
|
||||||
using BlueWater.Maps;
|
using BlueWater.Maps;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
@ -17,55 +16,40 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
SpikeBarrage
|
SpikeBarrage
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serializable]
|
public enum SandMoleSkin
|
||||||
public class SummonMiniSandMole
|
|
||||||
{
|
{
|
||||||
[field: SerializeField]
|
Idle = 0,
|
||||||
public float HealthPercentage { get; private set; }
|
Normal,
|
||||||
|
Spin
|
||||||
[field: SerializeField]
|
|
||||||
public bool SummonTrigger { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SandMole : Boss, ICurrentDirection
|
public enum SandMoleAnimation
|
||||||
|
{
|
||||||
|
None = 0,
|
||||||
|
Die,
|
||||||
|
Dig,
|
||||||
|
Idle,
|
||||||
|
Roar,
|
||||||
|
Spin,
|
||||||
|
SpinReady,
|
||||||
|
SpinReady2,
|
||||||
|
Stun
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SandMole : SpineBoss
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
#region Variables
|
#region Variables
|
||||||
|
|
||||||
|
[field: Title("SandMole 컴포넌트")]
|
||||||
[field: SerializeField, Required]
|
[field: SerializeField, Required]
|
||||||
public SandMoleStatus SandMoleStatus { get; private set; }
|
public SandMoleStatus SandMoleStatus { get; private set; }
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
private List<SummonMiniSandMole> _summonMiniSandMoles;
|
private List<SummonMiniSandMole> _summonMiniSandMoles;
|
||||||
|
|
||||||
public SandMoleData SandMoleData { get; private set; }
|
public SandMoleData SandMoleData { get; private set; }
|
||||||
public SandMoleMapController SandMoleMapController { get; private set; }
|
public SandMoleMapController SandMoleMapController { 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
// Unity events
|
// Unity events
|
||||||
@ -97,10 +81,14 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
|
|
||||||
SandMoleStatus = GetComponent<SandMoleStatus>();
|
SandMoleStatus = GetComponent<SandMoleStatus>();
|
||||||
SandMoleData = BossData as SandMoleData;
|
SandMoleData = BossData as SandMoleData;
|
||||||
|
if (SandMoleData != null)
|
||||||
|
{
|
||||||
|
_summonMiniSandMoles = SandMoleData.SummonMiniSandMoles.ConvertAll(mole => new SummonMiniSandMole(mole));
|
||||||
|
}
|
||||||
SandMoleMapController = MapManager.Instance.SandMoleMapController;
|
SandMoleMapController = MapManager.Instance.SandMoleMapController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Initialize()
|
public override async void Initialize()
|
||||||
{
|
{
|
||||||
BossHealthPoint.Initialize(true, SandMoleData.MaxHealthPoint,
|
BossHealthPoint.Initialize(true, SandMoleData.MaxHealthPoint,
|
||||||
SandMoleData.DisplayName, SandMoleMapController.ParticleInstanceLocation);
|
SandMoleData.DisplayName, SandMoleMapController.ParticleInstanceLocation);
|
||||||
@ -108,6 +96,11 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
BossSkillController.Initialize(BossData.SkillDataList);
|
BossSkillController.Initialize(BossData.SkillDataList);
|
||||||
SetMoveSpeed(SandMoleData.MoveSpeed);
|
SetMoveSpeed(SandMoleData.MoveSpeed);
|
||||||
StopMove();
|
StopMove();
|
||||||
|
|
||||||
|
SpineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||||
|
var roarTrack = SpineController.PlayAnimation(SandMoleAnimation.Roar.ToString(), false);
|
||||||
|
|
||||||
|
await SpineController.WaitForAnimationCompletion(roarTrack);
|
||||||
BehaviorTree.EnableBehavior();
|
BehaviorTree.EnableBehavior();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,22 +109,32 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
// Methods
|
// Methods
|
||||||
#region Methods
|
#region Methods
|
||||||
|
|
||||||
protected override void HandleDie()
|
protected override async void Die()
|
||||||
{
|
{
|
||||||
|
BossSkillController.StopAllCoroutine();
|
||||||
|
BehaviorTree.DisableBehavior();
|
||||||
StopMove();
|
StopMove();
|
||||||
|
|
||||||
|
HitBoxCollider.enabled = false;
|
||||||
if (Rigidbody)
|
if (Rigidbody)
|
||||||
{
|
{
|
||||||
|
Rigidbody.linearVelocity = Vector3.zero;
|
||||||
Rigidbody.isKinematic = true;
|
Rigidbody.isKinematic = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
AnimationController.SetAnimationTrigger("isDead");
|
SpineController.SetSkin(SandMoleSkin.Idle.ToString());
|
||||||
ItemManager.Instance.ItemDropRandomPosition(BossData.CharacterIdx, transform.position);
|
var dieTrack = SpineController.PlayAnimation(SandMoleAnimation.Die.ToString(), false);
|
||||||
SandMoleMapController.ClearMap();
|
SandMoleMapController.ClearMap();
|
||||||
|
|
||||||
|
await SpineController.WaitForAnimationCompletion(dieTrack);
|
||||||
|
ItemManager.Instance.ItemDropRandomPosition(BossData.CharacterIdx, transform.position);
|
||||||
|
Destroy(gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SummonMiniSandMole(int currentHp)
|
private void SummonMiniSandMole(int currentHp)
|
||||||
{
|
{
|
||||||
|
if (currentHp == 0) return;
|
||||||
|
|
||||||
var currentHealthPercentage = (float)currentHp / BossData.MaxHealthPoint * 100f;
|
var currentHealthPercentage = (float)currentHp / BossData.MaxHealthPoint * 100f;
|
||||||
|
|
||||||
foreach (var element in _summonMiniSandMoles)
|
foreach (var element in _summonMiniSandMoles)
|
||||||
@ -143,30 +146,6 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void HandleMovement()
|
|
||||||
{
|
|
||||||
if (!IAstarAi.canMove || IAstarAi.isStopped)
|
|
||||||
{
|
|
||||||
IsMoving = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
CurrentDirection = IAstarAi.velocity.normalized;
|
|
||||||
IsMoving = IAstarAi.velocity != Vector3.zero || IAstarAi.velocity != Vector3.positiveInfinity;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,5 @@
|
|||||||
using UnityEngine;
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
namespace BlueWater.Enemies.Bosses.SandMole
|
namespace BlueWater.Enemies.Bosses.SandMole
|
||||||
{
|
{
|
||||||
@ -7,5 +8,8 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
{
|
{
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public float MoveSpeed { get; private set; } = 3f;
|
public float MoveSpeed { get; private set; } = 3f;
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public List<SummonMiniSandMole> SummonMiniSandMoles { get; private set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,6 @@
|
|||||||
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using BlueWater.Players;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -10,6 +12,9 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
// Variables
|
// Variables
|
||||||
#region Variables
|
#region Variables
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private SpineController _spineController;
|
||||||
|
|
||||||
// Stun
|
// Stun
|
||||||
[Title("기절 효과")]
|
[Title("기절 효과")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
@ -22,6 +27,17 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
InitializeComponents();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Button("컴포넌트 초기화")]
|
||||||
|
private void InitializeComponents()
|
||||||
|
{
|
||||||
|
_spineController = GetComponent<SpineController>();
|
||||||
|
}
|
||||||
|
|
||||||
// Stun
|
// Stun
|
||||||
public bool CanStun() => IsStunEnabled;
|
public bool CanStun() => IsStunEnabled;
|
||||||
|
|
||||||
@ -29,6 +45,8 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
{
|
{
|
||||||
if (!CanStun()) return;
|
if (!CanStun()) return;
|
||||||
|
|
||||||
|
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||||
|
_spineController.PlayAnimation(SandMoleAnimation.Stun.ToString(), false);
|
||||||
IsStunned = true;
|
IsStunned = true;
|
||||||
if (_stunParticle)
|
if (_stunParticle)
|
||||||
{
|
{
|
||||||
@ -40,6 +58,9 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
|||||||
|
|
||||||
public void EndStun()
|
public void EndStun()
|
||||||
{
|
{
|
||||||
|
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||||
|
_spineController.PlayAnimation(SandMoleAnimation.Idle.ToString(), false);
|
||||||
|
|
||||||
Utils.EndUniqueCoroutine(this, ref _stunCoolDownCoroutine);
|
Utils.EndUniqueCoroutine(this, ref _stunCoolDownCoroutine);
|
||||||
_stunParticle.Stop();
|
_stunParticle.Stop();
|
||||||
_stunParticle.Clear();
|
_stunParticle.Clear();
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace BlueWater.Enemies.Bosses.SandMole
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
public class SummonMiniSandMole
|
||||||
|
{
|
||||||
|
[field: SerializeField]
|
||||||
|
public float HealthPercentage { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public bool SummonTrigger { get; set; }
|
||||||
|
|
||||||
|
public SummonMiniSandMole(SummonMiniSandMole summonMiniSandMole)
|
||||||
|
{
|
||||||
|
HealthPercentage = summonMiniSandMole.HealthPercentage;
|
||||||
|
SummonTrigger = summonMiniSandMole.SummonTrigger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 12827405845b15247b5415e44cd8a33c
|
94
Assets/02.Scripts/Character/Enemy/Boss/SpineBoss.cs
Normal file
94
Assets/02.Scripts/Character/Enemy/Boss/SpineBoss.cs
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
using BlueWater.Interfaces;
|
||||||
|
using BlueWater.Players;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace BlueWater.Enemies.Bosses
|
||||||
|
{
|
||||||
|
public abstract class SpineBoss : Boss, ICurrentDirection
|
||||||
|
{
|
||||||
|
// Variables
|
||||||
|
#region Variables
|
||||||
|
|
||||||
|
// Components
|
||||||
|
[field: Title("스파인 보스 컴포넌트")]
|
||||||
|
[field: SerializeField]
|
||||||
|
public MeshRenderer MeshRenderer { get; private set; }
|
||||||
|
|
||||||
|
// Classes
|
||||||
|
[field: SerializeField]
|
||||||
|
public SpineController SpineController { get; private set; }
|
||||||
|
|
||||||
|
public bool IsMoving { get; private set; }
|
||||||
|
|
||||||
|
private Vector3 _currentDirection = Vector3.right;
|
||||||
|
public Vector3 CurrentDirection
|
||||||
|
{
|
||||||
|
get => _currentDirection;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (value == Vector3.zero) return;
|
||||||
|
|
||||||
|
_currentDirection = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// Unity events
|
||||||
|
#region Unity events
|
||||||
|
|
||||||
|
protected override void Update()
|
||||||
|
{
|
||||||
|
base.Update();
|
||||||
|
|
||||||
|
HandleMovement();
|
||||||
|
FlipVisualLook();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// Initialize methods
|
||||||
|
#region Initialize methods
|
||||||
|
|
||||||
|
[Button("컴포넌트 초기화")]
|
||||||
|
protected override void InitializeComponents()
|
||||||
|
{
|
||||||
|
base.InitializeComponents();
|
||||||
|
|
||||||
|
MeshRenderer = VisualLook.GetComponent<MeshRenderer>();
|
||||||
|
SpineController = GetComponent<SpineController>();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// Methods
|
||||||
|
#region Methods
|
||||||
|
|
||||||
|
protected virtual 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void HandleMovement()
|
||||||
|
{
|
||||||
|
if (!AstarAi.canMove || AstarAi.isStopped)
|
||||||
|
{
|
||||||
|
IsMoving = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
CurrentDirection = AstarAi.velocity.normalized;
|
||||||
|
IsMoving = AstarAi.velocity != Vector3.zero || AstarAi.velocity != Vector3.positiveInfinity;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
12
Assets/02.Scripts/Character/Enemy/Boss/SpineBoss.cs.meta
Normal file
12
Assets/02.Scripts/Character/Enemy/Boss/SpineBoss.cs.meta
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1db8f02f97227534c8bc86e6ac990caf
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences:
|
||||||
|
- _aiMovement: {fileID: 11400000, guid: 5d32cc099076ade42ab5744c9bb621bb, type: 2}
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -1,19 +1,23 @@
|
|||||||
using BlueWater.Items;
|
using BlueWater.Items;
|
||||||
using BlueWater.Maps;
|
using BlueWater.Maps;
|
||||||
using BlueWater.Uis;
|
using BlueWater.Uis;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace BlueWater.Enemies.Bosses.TitanSlime
|
namespace BlueWater.Enemies.Bosses.TitanSlime
|
||||||
{
|
{
|
||||||
public class TitanSlime : Boss
|
public class TitanSlime : AnimatorBoss
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
#region Variables
|
#region Variables
|
||||||
|
|
||||||
|
[Title("TitanSlime 컴포넌트")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private SpriteRenderer _rabbit;
|
private SpriteRenderer _rabbit;
|
||||||
|
|
||||||
public TitanSlimeData TitanSlimeData { get; private set; }
|
public TitanSlimeData TitanSlimeData { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
public TitanSlimeState TitanSlimeState { get; private set; }
|
public TitanSlimeState TitanSlimeState { get; private set; }
|
||||||
|
|
||||||
private TitanSlimeMapController _titanSlimeMapController;
|
private TitanSlimeMapController _titanSlimeMapController;
|
||||||
@ -56,18 +60,18 @@ namespace BlueWater.Enemies.Bosses.TitanSlime
|
|||||||
// Methods
|
// Methods
|
||||||
#region Methods
|
#region Methods
|
||||||
|
|
||||||
protected override void HandleDie()
|
protected override void Die()
|
||||||
{
|
{
|
||||||
|
BossSkillController.StopAllCoroutine();
|
||||||
|
BehaviorTree.DisableBehavior();
|
||||||
|
|
||||||
|
HitBoxCollider.enabled = false;
|
||||||
if (Rigidbody)
|
if (Rigidbody)
|
||||||
{
|
{
|
||||||
|
Rigidbody.linearVelocity = Vector3.zero;
|
||||||
Rigidbody.isKinematic = true;
|
Rigidbody.isKinematic = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TitanSlimeState.HasRabbit)
|
|
||||||
{
|
|
||||||
CombatUiManager.Instance.FieldBossHealthPointUi.SetActiveHpSlider(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TitanSlimeState.Level == 4 && TitanSlimeState.HasRabbit)
|
if (TitanSlimeState.Level == 4 && TitanSlimeState.HasRabbit)
|
||||||
{
|
{
|
||||||
ItemManager.Instance.ItemDropRandomPosition(BossData.CharacterIdx, transform.position);
|
ItemManager.Instance.ItemDropRandomPosition(BossData.CharacterIdx, transform.position);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using BlueWater.Maps;
|
||||||
using BlueWater.Uis;
|
using BlueWater.Uis;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
@ -173,6 +174,14 @@ namespace BlueWater.Players.Combat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OnForceKillBoss(InputAction.CallbackContext context)
|
||||||
|
{
|
||||||
|
if (context.performed)
|
||||||
|
{
|
||||||
|
MapManager.Instance.ForceKillCurrentBoss();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void OnCancel(InputAction.CallbackContext context)
|
public void OnCancel(InputAction.CallbackContext context)
|
||||||
{
|
{
|
||||||
if (context.performed)
|
if (context.performed)
|
||||||
|
@ -172,6 +172,9 @@ namespace BlueWater.Players.Combat
|
|||||||
CombatUiManager.Instance.GameOverPopupUi.Open(CombatUiManager.Instance.PopupUiList);
|
CombatUiManager.Instance.GameOverPopupUi.Open(CombatUiManager.Instance.PopupUiList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetCurrentHealthPoint(int value) => PlayerHealthPoint.SetCurrentHealthPoint(value);
|
||||||
|
public void SetCurrentHealthPointMax() => PlayerHealthPoint.SetCurrentHealthPoint(PlayerHealthPoint.MaxHealthPoint);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
|
using Spine;
|
||||||
using Spine.Unity;
|
using Spine.Unity;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using AnimationState = Spine.AnimationState;
|
using AnimationState = Spine.AnimationState;
|
||||||
@ -48,18 +49,30 @@ namespace BlueWater.Players
|
|||||||
// Methods
|
// Methods
|
||||||
#region Methods
|
#region Methods
|
||||||
|
|
||||||
public void PlayAnimation(string animationName, bool isLoopActive, float speed = 1f)
|
/// <param name="animationName">스파인 애니메이션 이름</param>
|
||||||
|
/// <param name="isLoopActive">반복 여부</param>
|
||||||
|
/// <param name="speed">애니메이션 속도 양수값</param>
|
||||||
|
/// <param name="isReverse">true인 경우 자동으로 speed에 음수값을 넣음</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public TrackEntry PlayAnimation(string animationName, bool isLoopActive, float speed = 1f, bool isReverse = false)
|
||||||
{
|
{
|
||||||
if (!_skeletonAnimation && _animationState == null) return;
|
if (!_skeletonAnimation || _animationState == null) return null;
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(animationName))
|
if (string.IsNullOrEmpty(animationName))
|
||||||
{
|
{
|
||||||
Debug.LogError($"{animationName}의 애니메이션은 존재하지 않습니다.");
|
Debug.LogError($"{animationName}의 애니메이션은 존재하지 않습니다.");
|
||||||
return;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
_animationState.TimeScale = speed;
|
_animationState.TimeScale = isReverse ? -Mathf.Abs(speed) : Mathf.Abs(speed);
|
||||||
_animationState.SetAnimation(0, animationName, isLoopActive);
|
var trackEntry = _animationState.SetAnimation(0, animationName, isLoopActive);
|
||||||
|
|
||||||
|
if (isReverse)
|
||||||
|
{
|
||||||
|
trackEntry.TrackTime = trackEntry.AnimationEnd;
|
||||||
|
}
|
||||||
|
|
||||||
|
return trackEntry;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetSkin(string skinName)
|
public void SetSkin(string skinName)
|
||||||
@ -77,68 +90,24 @@ namespace BlueWater.Players
|
|||||||
_animationState.Apply(_skeletonAnimation.Skeleton);
|
_animationState.Apply(_skeletonAnimation.Skeleton);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsComparingCurrentAnimation(string animationName, int trackIndex = 0)
|
public async Awaitable WaitForAnimationCompletion(TrackEntry trackEntry, bool isReverse = false)
|
||||||
{
|
{
|
||||||
if (!_skeletonAnimation || _animationState == null) return false;
|
if (isReverse)
|
||||||
|
|
||||||
var currentAnimation = _animationState.GetCurrent(trackIndex)?.Animation;
|
|
||||||
return currentAnimation != null && currentAnimation.Name == animationName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerator WaitForAnimationToRun(string animationName, Action<bool> onSuccess, float timeout = 2f)
|
|
||||||
{
|
|
||||||
var elapsedTime = 0f;
|
|
||||||
while (!IsComparingCurrentAnimation(animationName))
|
|
||||||
{
|
{
|
||||||
elapsedTime += Time.deltaTime;
|
await AwaitUntil(() => trackEntry.TrackTime <= 0);
|
||||||
yield return null;
|
|
||||||
if (elapsedTime > timeout)
|
|
||||||
{
|
|
||||||
Debug.Log("Timeout waiting for animation state: " + animationName);
|
|
||||||
onSuccess?.Invoke(false);
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
onSuccess?.Invoke(true);
|
else
|
||||||
}
|
|
||||||
|
|
||||||
public void SetCurrentAnimationSpeed(float targetDuration, int trackIndex = 0)
|
|
||||||
{
|
|
||||||
if (!_skeletonAnimation || _animationState == null) return;
|
|
||||||
|
|
||||||
var currentAnimation = _animationState.GetCurrent(trackIndex)?.Animation;
|
|
||||||
if (currentAnimation != null)
|
|
||||||
{
|
{
|
||||||
var animationLength = currentAnimation.Duration;
|
await AwaitUntil(() => trackEntry.IsComplete);
|
||||||
_animationState.TimeScale = animationLength / targetDuration;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public float GetCurrentAnimationNormalizedTime(int trackIndex = 0)
|
public async Awaitable AwaitUntil(Func<bool> condition)
|
||||||
{
|
{
|
||||||
if (!_skeletonAnimation || _animationState == null) return 0f;
|
while (!condition())
|
||||||
|
|
||||||
var currentTrackEntry = _animationState.GetCurrent(trackIndex);
|
|
||||||
if (currentTrackEntry != null)
|
|
||||||
{
|
{
|
||||||
return currentTrackEntry.TrackTime / currentTrackEntry.Animation.Duration;
|
await Awaitable.NextFrameAsync();
|
||||||
}
|
}
|
||||||
return 0f;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float GetCurrentAnimationLength(int trackIndex = 0)
|
|
||||||
{
|
|
||||||
if (!_skeletonAnimation || _animationState == null) return 0f;
|
|
||||||
|
|
||||||
var currentAnimation = _animationState.GetCurrent(trackIndex)?.Animation;
|
|
||||||
return currentAnimation != null ? currentAnimation.Duration : 0f;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ResetAnimationSpeed()
|
|
||||||
{
|
|
||||||
if (!_skeletonAnimation || _animationState == null) return;
|
|
||||||
|
|
||||||
_animationState.TimeScale = 1f;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -129,7 +129,7 @@ namespace BlueWater.Maps
|
|||||||
elapsedTime += Time.unscaledDeltaTime;
|
elapsedTime += Time.unscaledDeltaTime;
|
||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
DestroyAllEnemies();
|
DestroyAllEnemiesExceptBoss();
|
||||||
VisualFeedbackManager.Instance.SetBaseTimeScale(1f);
|
VisualFeedbackManager.Instance.SetBaseTimeScale(1f);
|
||||||
|
|
||||||
elapsedTime = 0f;
|
elapsedTime = 0f;
|
||||||
|
@ -63,23 +63,14 @@ namespace BlueWater.Maps
|
|||||||
|
|
||||||
private IEnumerator BossMapTriggerCoroutine()
|
private IEnumerator BossMapTriggerCoroutine()
|
||||||
{
|
{
|
||||||
var interactionAnimationName = BossMapTriggerAnimation.Animation.ToString();
|
var animationTrack = _spineController.PlayAnimation( BossMapTriggerAnimation.Animation.ToString(), false);
|
||||||
_spineController.PlayAnimation(interactionAnimationName, false);
|
if (animationTrack == null)
|
||||||
|
|
||||||
var animationStarted = false;
|
|
||||||
yield return StartCoroutine(_spineController.WaitForAnimationToRun(interactionAnimationName,
|
|
||||||
success => animationStarted = success));
|
|
||||||
|
|
||||||
if (!animationStarted)
|
|
||||||
{
|
{
|
||||||
|
Debug.LogError("BossMapTriggerCoroutine animationTrack is null error");
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (_spineController.IsComparingCurrentAnimation(interactionAnimationName)
|
yield return new WaitUntil(() => animationTrack.IsComplete);
|
||||||
&& _spineController.GetCurrentAnimationNormalizedTime() <= 1f)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
gameObject.SetActive(false);
|
gameObject.SetActive(false);
|
||||||
OnInteractionActive?.Invoke();
|
OnInteractionActive?.Invoke();
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using BlueWater.Enemies.Bosses;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -92,8 +93,31 @@ namespace BlueWater.Maps
|
|||||||
|
|
||||||
public void DestroyAllEnemies()
|
public void DestroyAllEnemies()
|
||||||
{
|
{
|
||||||
|
var temps = new List<Transform>();
|
||||||
foreach (Transform element in EnemyInstanceLocation)
|
foreach (Transform element in EnemyInstanceLocation)
|
||||||
{
|
{
|
||||||
|
temps.Add(element);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var element in temps)
|
||||||
|
{
|
||||||
|
Destroy(element.gameObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DestroyAllEnemiesExceptBoss()
|
||||||
|
{
|
||||||
|
var temps = new List<Transform>();
|
||||||
|
foreach (Transform element in EnemyInstanceLocation)
|
||||||
|
{
|
||||||
|
temps.Add(element);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var element in temps)
|
||||||
|
{
|
||||||
|
var boss = element.GetComponent<Boss>();
|
||||||
|
if (boss) continue;
|
||||||
|
|
||||||
Destroy(element.gameObject);
|
Destroy(element.gameObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -102,12 +126,35 @@ namespace BlueWater.Maps
|
|||||||
{
|
{
|
||||||
DestroyAllEnemies();
|
DestroyAllEnemies();
|
||||||
|
|
||||||
|
var temps = new List<Transform>();
|
||||||
foreach (Transform element in ParticleInstanceLocation)
|
foreach (Transform element in ParticleInstanceLocation)
|
||||||
|
{
|
||||||
|
temps.Add(element);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Transform element in temps)
|
||||||
{
|
{
|
||||||
Destroy(element.gameObject);
|
Destroy(element.gameObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ForceKillBoss()
|
||||||
|
{
|
||||||
|
var temps = new List<Transform>();
|
||||||
|
foreach (Transform element in EnemyInstanceLocation)
|
||||||
|
{
|
||||||
|
temps.Add(element);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Transform element in temps)
|
||||||
|
{
|
||||||
|
var boss = element.GetComponent<Boss>();
|
||||||
|
if (!boss) continue;
|
||||||
|
|
||||||
|
boss.ForceKillBoss();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void MovePlayer()
|
public void MovePlayer()
|
||||||
{
|
{
|
||||||
if (!GameManager.Instance.CurrentCombatPlayer) return;
|
if (!GameManager.Instance.CurrentCombatPlayer) return;
|
||||||
|
@ -70,9 +70,9 @@ namespace BlueWater.Maps
|
|||||||
AudioManager.Instance.StopBgm();
|
AudioManager.Instance.StopBgm();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CurrentMapRestart()
|
public void RestartCurrentMap()
|
||||||
{
|
{
|
||||||
if (_currentMapController != null)
|
if (_currentMapController)
|
||||||
{
|
{
|
||||||
_currentMapController.ResetMap();
|
_currentMapController.ResetMap();
|
||||||
}
|
}
|
||||||
@ -83,7 +83,7 @@ namespace BlueWater.Maps
|
|||||||
public void MoveSelectStage(int stage)
|
public void MoveSelectStage(int stage)
|
||||||
{
|
{
|
||||||
_currentMapController = GetMapController(DataManager.Instance.CurrentSaveStage);
|
_currentMapController = GetMapController(DataManager.Instance.CurrentSaveStage);
|
||||||
if (_currentMapController != null)
|
if (_currentMapController)
|
||||||
{
|
{
|
||||||
_currentMapController.ResetMap();
|
_currentMapController.ResetMap();
|
||||||
}
|
}
|
||||||
@ -92,5 +92,15 @@ namespace BlueWater.Maps
|
|||||||
var moveMapController = GetMapController((SaveStage)stage);
|
var moveMapController = GetMapController((SaveStage)stage);
|
||||||
moveMapController.MovePlayer();
|
moveMapController.MovePlayer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ForceKillCurrentBoss()
|
||||||
|
{
|
||||||
|
_currentMapController = GetMapController(DataManager.Instance.CurrentSaveStage);
|
||||||
|
if (!_currentMapController)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_currentMapController.ForceKillBoss();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -766,18 +766,27 @@
|
|||||||
"initialStateCheck": false
|
"initialStateCheck": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "OpenMenu",
|
"name": "OpenDevelopMenu",
|
||||||
"type": "Button",
|
"type": "Button",
|
||||||
"id": "d7467711-57a8-4a31-a2ba-d14040cff3e7",
|
"id": "a5d9ffcb-5c4f-4c6d-8335-9060bbea120a",
|
||||||
"expectedControlType": "",
|
"expectedControlType": "",
|
||||||
"processors": "",
|
"processors": "",
|
||||||
"interactions": "",
|
"interactions": "",
|
||||||
"initialStateCheck": false
|
"initialStateCheck": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "OpenDevelopMenu",
|
"name": "ForceKillBoss",
|
||||||
"type": "Button",
|
"type": "Button",
|
||||||
"id": "a5d9ffcb-5c4f-4c6d-8335-9060bbea120a",
|
"id": "2f6cc7b3-e806-4b78-b11f-e6ed70bb67ac",
|
||||||
|
"expectedControlType": "",
|
||||||
|
"processors": "",
|
||||||
|
"interactions": "",
|
||||||
|
"initialStateCheck": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "OpenMenu",
|
||||||
|
"type": "Button",
|
||||||
|
"id": "d7467711-57a8-4a31-a2ba-d14040cff3e7",
|
||||||
"expectedControlType": "",
|
"expectedControlType": "",
|
||||||
"processors": "",
|
"processors": "",
|
||||||
"interactions": "",
|
"interactions": "",
|
||||||
@ -926,6 +935,17 @@
|
|||||||
"isComposite": false,
|
"isComposite": false,
|
||||||
"isPartOfComposite": false
|
"isPartOfComposite": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "5768b250-8724-4c7e-a3d1-784ebd316854",
|
||||||
|
"path": "<Keyboard>/f2",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": ";Keyboard&Mouse",
|
||||||
|
"action": "ForceKillBoss",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "",
|
"name": "",
|
||||||
"id": "46591849-5c1e-4b83-b490-0a4ad29ed80f",
|
"id": "46591849-5c1e-4b83-b490-0a4ad29ed80f",
|
||||||
|
@ -18,6 +18,6 @@ MonoBehaviour:
|
|||||||
- <BossType>k__BackingField: 2
|
- <BossType>k__BackingField: 2
|
||||||
<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: 3920647224749190631, guid: 58854203209bd294d817b319d4dafc4f, type: 3}
|
||||||
- <BossType>k__BackingField: 4
|
- <BossType>k__BackingField: 4
|
||||||
<Prefab>k__BackingField: {fileID: 811732657406064749, guid: 5975a5a7434cc704c9d60c8ab3750550, type: 3}
|
<Prefab>k__BackingField: {fileID: 3920647224749190631, guid: 95f91f8d7fca3544fb0577a9dd14caf6, type: 3}
|
||||||
|
@ -25,3 +25,12 @@ MonoBehaviour:
|
|||||||
- {fileID: -8817476587284398613, guid: 1ac17d81b98c9fb488ac24d8e2291955, type: 3}
|
- {fileID: -8817476587284398613, guid: 1ac17d81b98c9fb488ac24d8e2291955, type: 3}
|
||||||
- {fileID: 6831508064570746451, guid: 4c632b5316acd35479cf545bc4752b7f, type: 3}
|
- {fileID: 6831508064570746451, guid: 4c632b5316acd35479cf545bc4752b7f, type: 3}
|
||||||
<MoveSpeed>k__BackingField: 3
|
<MoveSpeed>k__BackingField: 3
|
||||||
|
<SummonMiniSandMoles>k__BackingField:
|
||||||
|
- <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
|
||||||
|
@ -408,7 +408,7 @@ MonoBehaviour:
|
|||||||
<Weight>k__BackingField: 0
|
<Weight>k__BackingField: 0
|
||||||
<Description>k__BackingField:
|
<Description>k__BackingField:
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 8de91ee4e8525bb46bb309c15c5207d3, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 8de91ee4e8525bb46bb309c15c5207d3, type: 3}
|
||||||
<ItemPrefab>k__BackingField: {fileID: 8962896418303621511, guid: 0dc7ed0facf2fca4b80244d0d95e2557, type: 3}
|
<ItemPrefab>k__BackingField: {fileID: 8962896418303621511, guid: 66d94bc59db241a4895f8e4fff7ea201, type: 3}
|
||||||
- <Idx>k__BackingField: 50002
|
- <Idx>k__BackingField: 50002
|
||||||
<Name>k__BackingField: "\uD558\uD2B8 \uD55C \uAC1C"
|
<Name>k__BackingField: "\uD558\uD2B8 \uD55C \uAC1C"
|
||||||
<Category>k__BackingField: 5
|
<Category>k__BackingField: 5
|
||||||
@ -417,4 +417,4 @@ MonoBehaviour:
|
|||||||
<Weight>k__BackingField: 0
|
<Weight>k__BackingField: 0
|
||||||
<Description>k__BackingField:
|
<Description>k__BackingField:
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 4e2159443b5aedf43849ec062f4f8016, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 4e2159443b5aedf43849ec062f4f8016, type: 3}
|
||||||
<ItemPrefab>k__BackingField: {fileID: 8962896418303621511, guid: 66d94bc59db241a4895f8e4fff7ea201, type: 3}
|
<ItemPrefab>k__BackingField: {fileID: 8962896418303621511, guid: 0dc7ed0facf2fca4b80244d0d95e2557, type: 3}
|
||||||
|
@ -2,7 +2,9 @@ using System;
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using BlueWater.Interfaces;
|
||||||
using BlueWater.Maps;
|
using BlueWater.Maps;
|
||||||
|
using BlueWater.Players;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using Random = UnityEngine.Random;
|
using Random = UnityEngine.Random;
|
||||||
@ -12,25 +14,22 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
public class GateOfSpikes : BaseSkill
|
public class GateOfSpikes : BaseSkill
|
||||||
{
|
{
|
||||||
private GateOfSpikesData _gateOfSpikesData;
|
private GateOfSpikesData _gateOfSpikesData;
|
||||||
private SandMole _sandMole;
|
private SpineController _spineController;
|
||||||
private AnimationController _animationController;
|
|
||||||
private Collider _userCollider;
|
private Collider _userCollider;
|
||||||
private Collider _targetCollider;
|
private Collider _targetCollider;
|
||||||
|
private ICurrentDirection _currentDirection;
|
||||||
private Transform _particleInstantiateLocation;
|
private Transform _particleInstantiateLocation;
|
||||||
|
|
||||||
private List<Vector3> _spikes;
|
private List<Vector3> _spikes;
|
||||||
|
|
||||||
protected override void BasicSetting()
|
protected override void BasicSetting()
|
||||||
{
|
{
|
||||||
if (!_sandMole)
|
|
||||||
{
|
|
||||||
_sandMole = SkillUser.GetComponent<SandMole>();
|
|
||||||
_animationController = _sandMole.AnimationController;
|
|
||||||
_userCollider = _sandMole.CharacterCollider;
|
|
||||||
_targetCollider = _sandMole.Target;
|
|
||||||
_particleInstantiateLocation = MapManager.Instance.SandMoleMapController.ParticleInstanceLocation;
|
|
||||||
}
|
|
||||||
_gateOfSpikesData = (GateOfSpikesData)SkillData;
|
_gateOfSpikesData = (GateOfSpikesData)SkillData;
|
||||||
|
_spineController = SkillUser.GetComponent<SpineController>();
|
||||||
|
_userCollider = SkillUser.GetComponent<CapsuleCollider>();
|
||||||
|
_targetCollider = SkillUser.GetComponent<ITarget>().Target;
|
||||||
|
_currentDirection = SkillUser.GetComponent<ICurrentDirection>();
|
||||||
|
_particleInstantiateLocation = MapManager.Instance.SandMoleMapController.ParticleInstanceLocation;
|
||||||
_spikes = new List<Vector3>(_gateOfSpikesData.SpikeCount);
|
_spikes = new List<Vector3>(_gateOfSpikesData.SpikeCount);
|
||||||
|
|
||||||
base.BasicSetting();
|
base.BasicSetting();
|
||||||
@ -44,27 +43,26 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
private IEnumerator SkillCoroutine(params Action[] actions)
|
private IEnumerator SkillCoroutine(params Action[] actions)
|
||||||
{
|
{
|
||||||
EnableSkill = false;
|
EnableSkill = false;
|
||||||
_sandMole.StopMove();
|
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.GateOfSpikes);
|
var roarTrack = _spineController.PlayAnimation(SandMoleAnimation.Roar.ToString(), false);
|
||||||
|
if (roarTrack == null)
|
||||||
var animationStarted = false;
|
|
||||||
yield return StartCoroutine(_animationController.WaitForAnimationToRun("GateOfSpikes",
|
|
||||||
success => animationStarted = success));
|
|
||||||
|
|
||||||
if (!animationStarted || !SkillUser || !_userCollider)
|
|
||||||
{
|
{
|
||||||
EndSkill(0, actions[0]);
|
EndSkill(0, actions[0]);
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
yield return new WaitUntil(() => roarTrack.IsComplete);
|
||||||
|
|
||||||
|
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||||
|
_spineController.PlayAnimation(SandMoleAnimation.Idle.ToString(), true);
|
||||||
|
|
||||||
IsUsingSkill = true;
|
IsUsingSkill = true;
|
||||||
_animationController.ResetAnimationSpeed();
|
|
||||||
var startPosition = SkillUser.transform.position;
|
var startPosition = SkillUser.transform.position;
|
||||||
var targetCenterPosition = _targetCollider.transform.position;
|
var targetCenterPosition = _targetCollider.transform.position;
|
||||||
startPosition.y = targetCenterPosition.y;
|
startPosition.y = targetCenterPosition.y;
|
||||||
var targetVector = targetCenterPosition - startPosition;
|
var targetVector = targetCenterPosition - startPosition;
|
||||||
var targetDirection = targetVector.normalized;
|
var targetDirection = targetVector.normalized;
|
||||||
_sandMole.CurrentDirection = targetDirection;
|
_currentDirection.CurrentDirection = targetDirection;
|
||||||
var spikeSpawnPosition = _userCollider.bounds.center;
|
var spikeSpawnPosition = _userCollider.bounds.center;
|
||||||
var validAttackPositions = new List<Vector3>();
|
var validAttackPositions = new List<Vector3>();
|
||||||
|
|
||||||
@ -97,7 +95,8 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
{
|
{
|
||||||
Utils.EndUniqueCoroutine(this, ref SkillCoroutineInstance);
|
Utils.EndUniqueCoroutine(this, ref SkillCoroutineInstance);
|
||||||
|
|
||||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.None);
|
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||||
|
_spineController.PlayAnimation(SandMoleAnimation.Idle.ToString(), true);
|
||||||
action?.Invoke();
|
action?.Invoke();
|
||||||
|
|
||||||
Utils.StartUniqueCoroutine(this, ref CooldownCoroutineInstance,Utils.CoolDownCoroutine(cooldown, EndCooldown));
|
Utils.StartUniqueCoroutine(this, ref CooldownCoroutineInstance,Utils.CoolDownCoroutine(cooldown, EndCooldown));
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using BlueWater.Interfaces;
|
||||||
using BlueWater.Maps;
|
using BlueWater.Maps;
|
||||||
|
using BlueWater.Players;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -9,21 +11,18 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
public class MultiThrowSpikes : BaseSkill
|
public class MultiThrowSpikes : BaseSkill
|
||||||
{
|
{
|
||||||
private MultiThrowSpikesData _multiThrowSpikesData;
|
private MultiThrowSpikesData _multiThrowSpikesData;
|
||||||
private SandMole _sandMole;
|
private SpineController _spineController;
|
||||||
private AnimationController _animationController;
|
|
||||||
private Collider _targetCollider;
|
private Collider _targetCollider;
|
||||||
|
private ICurrentDirection _currentDirection;
|
||||||
private Transform _particleInstantiateLocation;
|
private Transform _particleInstantiateLocation;
|
||||||
|
|
||||||
protected override void BasicSetting()
|
protected override void BasicSetting()
|
||||||
{
|
{
|
||||||
if (!_sandMole)
|
|
||||||
{
|
|
||||||
_sandMole = SkillUser.GetComponent<SandMole>();
|
|
||||||
_animationController = _sandMole.AnimationController;
|
|
||||||
_targetCollider = _sandMole.Target;
|
|
||||||
_particleInstantiateLocation = MapManager.Instance.SandMoleMapController.ParticleInstanceLocation;
|
|
||||||
}
|
|
||||||
_multiThrowSpikesData = (MultiThrowSpikesData)SkillData;
|
_multiThrowSpikesData = (MultiThrowSpikesData)SkillData;
|
||||||
|
_spineController = SkillUser.GetComponent<SpineController>();
|
||||||
|
_targetCollider = SkillUser.GetComponent<ITarget>().Target;
|
||||||
|
_currentDirection = SkillUser.GetComponent<ICurrentDirection>();
|
||||||
|
_particleInstantiateLocation = MapManager.Instance.SandMoleMapController.ParticleInstanceLocation;
|
||||||
|
|
||||||
base.BasicSetting();
|
base.BasicSetting();
|
||||||
}
|
}
|
||||||
@ -36,21 +35,25 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
private IEnumerator SkillCoroutine(params Action[] actions)
|
private IEnumerator SkillCoroutine(params Action[] actions)
|
||||||
{
|
{
|
||||||
EnableSkill = false;
|
EnableSkill = false;
|
||||||
_sandMole.StopMove();
|
_spineController.SetSkin(SandMoleSkin.Idle.ToString());
|
||||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.MultiThrowSpikes);
|
var spinReady2Track = _spineController.PlayAnimation(SandMoleAnimation.SpinReady2.ToString(), false);
|
||||||
|
if (spinReady2Track == null)
|
||||||
|
{
|
||||||
|
EndSkill(0, actions[0]);
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
var animationStarted = false;
|
yield return new WaitUntil(() => spinReady2Track.IsComplete);
|
||||||
yield return StartCoroutine(_animationController.WaitForAnimationToRun("MultiThrowSpikes",
|
|
||||||
success => animationStarted = success));
|
|
||||||
|
|
||||||
if (!animationStarted || !SkillUser)
|
_spineController.SetSkin(SandMoleSkin.Spin.ToString());
|
||||||
|
var spinTrack = _spineController.PlayAnimation(SandMoleAnimation.Spin.ToString(), true);
|
||||||
|
if (spinTrack == null || !SkillUser)
|
||||||
{
|
{
|
||||||
EndSkill(0, actions[0]);
|
EndSkill(0, actions[0]);
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
IsUsingSkill = true;
|
IsUsingSkill = true;
|
||||||
_animationController.ResetAnimationSpeed();
|
|
||||||
var startPosition = SkillUser.transform.position;
|
var startPosition = SkillUser.transform.position;
|
||||||
var waitForSeconds = new WaitForSeconds(_multiThrowSpikesData.SpikeInterval);
|
var waitForSeconds = new WaitForSeconds(_multiThrowSpikesData.SpikeInterval);
|
||||||
for (var i = 0; i < _multiThrowSpikesData.SpikeCount; i++)
|
for (var i = 0; i < _multiThrowSpikesData.SpikeCount; i++)
|
||||||
@ -65,7 +68,7 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
startPosition.y = targetCenterPosition.y;
|
startPosition.y = targetCenterPosition.y;
|
||||||
var targetVector = targetCenterPosition - startPosition;
|
var targetVector = targetCenterPosition - startPosition;
|
||||||
var targetDirection = targetVector.normalized;
|
var targetDirection = targetVector.normalized;
|
||||||
_sandMole.CurrentDirection = targetDirection;
|
_currentDirection.CurrentDirection = targetDirection;
|
||||||
var rotation = Quaternion.LookRotation(targetDirection);
|
var rotation = Quaternion.LookRotation(targetDirection);
|
||||||
var projectile = Instantiate(_multiThrowSpikesData.SpikePrefab, startPosition, rotation,
|
var projectile = Instantiate(_multiThrowSpikesData.SpikePrefab, startPosition, rotation,
|
||||||
_particleInstantiateLocation).GetComponent<ProjectileController>();
|
_particleInstantiateLocation).GetComponent<ProjectileController>();
|
||||||
@ -82,7 +85,8 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
{
|
{
|
||||||
Utils.EndUniqueCoroutine(this, ref SkillCoroutineInstance);
|
Utils.EndUniqueCoroutine(this, ref SkillCoroutineInstance);
|
||||||
|
|
||||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.None);
|
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||||
|
_spineController.PlayAnimation(SandMoleAnimation.Idle.ToString(), true);
|
||||||
action?.Invoke();
|
action?.Invoke();
|
||||||
|
|
||||||
Utils.StartUniqueCoroutine(this, ref CooldownCoroutineInstance,Utils.CoolDownCoroutine(cooldown, EndCooldown));
|
Utils.StartUniqueCoroutine(this, ref CooldownCoroutineInstance,Utils.CoolDownCoroutine(cooldown, EndCooldown));
|
||||||
|
@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
using BlueWater.Maps;
|
using BlueWater.Maps;
|
||||||
|
using BlueWater.Players;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -16,18 +17,18 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
private bool _isDrawingGizmo = true;
|
private bool _isDrawingGizmo = true;
|
||||||
|
|
||||||
private SingleRollData _singleRollData;
|
private SingleRollData _singleRollData;
|
||||||
private AnimationController _animationController;
|
private SpineController _spineController;
|
||||||
private Rigidbody _userRigidbody;
|
private Rigidbody _userRigidbody;
|
||||||
private CapsuleCollider _userCollider;
|
private CapsuleCollider _userCollider;
|
||||||
private Collider _targetCollider;
|
private Collider _targetCollider;
|
||||||
private ICurrentDirection _iCurrentDirection;
|
private ICurrentDirection _iCurrentDirection;
|
||||||
private BossMapController _sandMoleMapController;
|
private Transform _particleInstantiateLocation;
|
||||||
private float _colliderRadius;
|
private float _colliderRadius;
|
||||||
private float _attackRadius;
|
private float _attackRadius;
|
||||||
|
|
||||||
private void OnDrawGizmos()
|
private void OnDrawGizmos()
|
||||||
{
|
{
|
||||||
if (!_isDrawingGizmo || !IsUsingSkill) return;
|
if (!_isDrawingGizmo || !IsUsingSkill || !SkillUser) return;
|
||||||
|
|
||||||
Gizmos.color = Color.red;
|
Gizmos.color = Color.red;
|
||||||
Gizmos.DrawWireSphere(SkillUser.transform.position, _attackRadius);
|
Gizmos.DrawWireSphere(SkillUser.transform.position, _attackRadius);
|
||||||
@ -35,16 +36,16 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
|
|
||||||
protected override void BasicSetting()
|
protected override void BasicSetting()
|
||||||
{
|
{
|
||||||
_animationController = SkillUser.GetComponent<AnimationController>();
|
_singleRollData = (SingleRollData)SkillData;
|
||||||
|
_spineController = SkillUser.GetComponent<SpineController>();
|
||||||
_userRigidbody = SkillUser.GetComponent<Rigidbody>();
|
_userRigidbody = SkillUser.GetComponent<Rigidbody>();
|
||||||
_userCollider = SkillUser.GetComponent<CapsuleCollider>();
|
_userCollider = SkillUser.GetComponent<CapsuleCollider>();
|
||||||
_targetCollider = SkillUser.GetComponent<ITarget>().Target;
|
_targetCollider = SkillUser.GetComponent<ITarget>().Target;
|
||||||
_sandMoleMapController = MapManager.Instance.SandMoleMapController;
|
_particleInstantiateLocation = MapManager.Instance.SandMoleMapController.ParticleInstanceLocation;
|
||||||
_iCurrentDirection = SkillUser.GetComponent<ICurrentDirection>();
|
_iCurrentDirection = SkillUser.GetComponent<ICurrentDirection>();
|
||||||
|
|
||||||
_colliderRadius = _userCollider.radius * SkillUser.transform.localScale.x;
|
_colliderRadius = _userCollider.radius * SkillUser.transform.localScale.x;
|
||||||
_attackRadius = _colliderRadius * 0.5f;
|
_attackRadius = _colliderRadius * 0.5f;
|
||||||
_singleRollData = (SingleRollData)SkillData;
|
|
||||||
HitColliders = new Collider[4];
|
HitColliders = new Collider[4];
|
||||||
|
|
||||||
base.BasicSetting();
|
base.BasicSetting();
|
||||||
@ -58,20 +59,25 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
private IEnumerator SkillCoroutine(params Action[] actions)
|
private IEnumerator SkillCoroutine(params Action[] actions)
|
||||||
{
|
{
|
||||||
EnableSkill = false;
|
EnableSkill = false;
|
||||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.SingleRoll);
|
_spineController.SetSkin(SandMoleSkin.Idle.ToString());
|
||||||
|
var spinReady2Track = _spineController.PlayAnimation(SandMoleAnimation.SpinReady2.ToString(), false);
|
||||||
|
if (spinReady2Track == null)
|
||||||
|
{
|
||||||
|
EndSkill(0, actions[0]);
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
var animationStarted = false;
|
yield return new WaitUntil(() => spinReady2Track.IsComplete);
|
||||||
yield return StartCoroutine(_animationController.WaitForAnimationToRun("SingleRoll",
|
|
||||||
success => animationStarted = success));
|
|
||||||
|
|
||||||
if (!animationStarted || !SkillUser)
|
_spineController.SetSkin(SandMoleSkin.Spin.ToString());
|
||||||
|
var spinTrack = _spineController.PlayAnimation(SandMoleAnimation.Spin.ToString(), true);
|
||||||
|
if (spinTrack == null || !SkillUser)
|
||||||
{
|
{
|
||||||
EndSkill(0, actions[0]);
|
EndSkill(0, actions[0]);
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
IsUsingSkill = true;
|
IsUsingSkill = true;
|
||||||
_animationController.ResetAnimationSpeed();
|
|
||||||
var startPosition = SkillUser.transform.position;
|
var startPosition = SkillUser.transform.position;
|
||||||
var targetPosition = _targetCollider.transform.position;
|
var targetPosition = _targetCollider.transform.position;
|
||||||
targetPosition.y = startPosition.y;
|
targetPosition.y = startPosition.y;
|
||||||
@ -184,7 +190,7 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
+ -targetDirection * _singleRollData.RockfallInterval * i
|
+ -targetDirection * _singleRollData.RockfallInterval * i
|
||||||
+ Vector3.up * _singleRollData.RockfallSpawnHeight;
|
+ Vector3.up * _singleRollData.RockfallSpawnHeight;
|
||||||
spawnPosition += Vector3.Cross(-targetDirection, Vector3.up).normalized * randomSide;
|
spawnPosition += Vector3.Cross(-targetDirection, Vector3.up).normalized * randomSide;
|
||||||
Instantiate(_singleRollData.RockfallPrefab, spawnPosition, Quaternion.identity, _sandMoleMapController.ParticleInstanceLocation);
|
Instantiate(_singleRollData.RockfallPrefab, spawnPosition, Quaternion.identity, _particleInstantiateLocation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -201,7 +207,8 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
{
|
{
|
||||||
Utils.EndUniqueCoroutine(this, ref SkillCoroutineInstance);
|
Utils.EndUniqueCoroutine(this, ref SkillCoroutineInstance);
|
||||||
|
|
||||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.None);
|
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||||
|
_spineController.PlayAnimation(SandMoleAnimation.Idle.ToString(), true);
|
||||||
action?.Invoke();
|
action?.Invoke();
|
||||||
IsUsingSkill = false;
|
IsUsingSkill = false;
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
using BlueWater.Maps;
|
using BlueWater.Maps;
|
||||||
|
using BlueWater.Players;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -10,30 +11,28 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
public class SpikeBarrage : BaseSkill
|
public class SpikeBarrage : BaseSkill
|
||||||
{
|
{
|
||||||
private SpikeBarrageData _spikeBarrageData;
|
private SpikeBarrageData _spikeBarrageData;
|
||||||
private AnimationController _animationController;
|
private SpineController _spineController;
|
||||||
private AiMovement _aiMovement;
|
private AiMovement _aiMovement;
|
||||||
private Rigidbody _userRigidbody;
|
private Rigidbody _userRigidbody;
|
||||||
private Collider _userCollider;
|
private CapsuleCollider _userCollider;
|
||||||
|
private BoxCollider _userHitBox;
|
||||||
private Collider _targetCollider;
|
private Collider _targetCollider;
|
||||||
private SpriteRenderer _userSpriteRenderer;
|
|
||||||
private SandMoleMapController _sandMoleMapController;
|
private SandMoleMapController _sandMoleMapController;
|
||||||
private Transform _particleInstantiateLocation;
|
private Transform _particleInstantiateLocation;
|
||||||
private Transform _centerSpawnTransform;
|
private Transform _centerSpawnTransform;
|
||||||
|
|
||||||
private static readonly int _dissolveValueHash = Shader.PropertyToID("_DissolveValue");
|
|
||||||
|
|
||||||
protected override void BasicSetting()
|
protected override void BasicSetting()
|
||||||
{
|
{
|
||||||
_animationController = SkillUser.GetComponent<AnimationController>();
|
_spikeBarrageData = (SpikeBarrageData)SkillData;
|
||||||
|
_spineController = SkillUser.GetComponent<SpineController>();
|
||||||
_aiMovement = SkillUser.GetComponent<AiMovement>();
|
_aiMovement = SkillUser.GetComponent<AiMovement>();
|
||||||
_userRigidbody = SkillUser.GetComponent<Rigidbody>();
|
_userRigidbody = SkillUser.GetComponent<Rigidbody>();
|
||||||
_userCollider = SkillUser.GetComponent<CapsuleCollider>();
|
_userCollider = SkillUser.GetComponent<CapsuleCollider>();
|
||||||
|
_userHitBox = SkillUser.GetComponentInChildren<BoxCollider>();
|
||||||
_targetCollider = SkillUser.GetComponent<ITarget>().Target;
|
_targetCollider = SkillUser.GetComponent<ITarget>().Target;
|
||||||
_userSpriteRenderer = SkillUser.GetComponentInChildren<SpriteRenderer>();
|
|
||||||
_sandMoleMapController = MapManager.Instance.SandMoleMapController;
|
_sandMoleMapController = MapManager.Instance.SandMoleMapController;
|
||||||
_particleInstantiateLocation = _sandMoleMapController.ParticleInstanceLocation;
|
_particleInstantiateLocation = _sandMoleMapController.ParticleInstanceLocation;
|
||||||
_centerSpawnTransform = _sandMoleMapController.CenterSpawnTransform;
|
_centerSpawnTransform = _sandMoleMapController.CenterSpawnTransform;
|
||||||
_spikeBarrageData = (SpikeBarrageData)SkillData;
|
|
||||||
|
|
||||||
base.BasicSetting();
|
base.BasicSetting();
|
||||||
}
|
}
|
||||||
@ -46,62 +45,48 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
private IEnumerator SkillCoroutine(params Action[] actions)
|
private IEnumerator SkillCoroutine(params Action[] actions)
|
||||||
{
|
{
|
||||||
EnableSkill = false;
|
EnableSkill = false;
|
||||||
_aiMovement.StopMove();
|
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.SpikeBarrage);
|
var digTrack = _spineController.PlayAnimation(SandMoleAnimation.Dig.ToString(), false);
|
||||||
|
if (digTrack == null || !SkillUser)
|
||||||
var animationStarted = false;
|
|
||||||
yield return StartCoroutine(_animationController.WaitForAnimationToRun("SpikeBarrage",
|
|
||||||
success => animationStarted = success));
|
|
||||||
|
|
||||||
if (!animationStarted || !SkillUser)
|
|
||||||
{
|
{
|
||||||
EndSkill(0, actions[0]);
|
EndSkill(0, actions[0]);
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
_userRigidbody.isKinematic = true;
|
yield return new WaitUntil(() => digTrack.IsComplete);
|
||||||
_userSpriteRenderer.material.SetFloat(_dissolveValueHash, 1f);
|
|
||||||
var elapsedTime = 0f;
|
|
||||||
var dissolveTime = _spikeBarrageData.DissolveTime;
|
|
||||||
while (elapsedTime <= dissolveTime)
|
|
||||||
{
|
|
||||||
if (!_userSpriteRenderer)
|
|
||||||
{
|
|
||||||
EndSkill(0, actions[0]);
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
|
|
||||||
var value = Mathf.Lerp(1f, 0f, elapsedTime / dissolveTime);
|
_userHitBox.enabled = false;
|
||||||
_userSpriteRenderer.material.SetFloat(_dissolveValueHash, value);
|
_aiMovement.Teleport(_centerSpawnTransform.position);
|
||||||
elapsedTime += Time.deltaTime;
|
|
||||||
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
_userSpriteRenderer.material.SetFloat(_dissolveValueHash, 0f);
|
|
||||||
_aiMovement.Teleport(SkillUser.transform.position + Vector3.up * 20f);
|
|
||||||
|
|
||||||
yield return new WaitForSeconds(1f);
|
yield return new WaitForSeconds(1f);
|
||||||
|
|
||||||
_aiMovement.Teleport(_centerSpawnTransform.position);
|
_userHitBox.enabled = true;
|
||||||
_userRigidbody.isKinematic = false;
|
var reverseDigTrack = _spineController.PlayAnimation(SandMoleAnimation.Dig.ToString(), false, 1f, true);
|
||||||
|
if (reverseDigTrack == null || !SkillUser)
|
||||||
elapsedTime = 0f;
|
|
||||||
dissolveTime = _spikeBarrageData.SpawnDissolveTime;
|
|
||||||
while (elapsedTime <= dissolveTime)
|
|
||||||
{
|
{
|
||||||
if (!_userSpriteRenderer)
|
EndSkill(0, actions[0]);
|
||||||
{
|
yield break;
|
||||||
EndSkill(0, actions[0]);
|
}
|
||||||
yield break;
|
|
||||||
}
|
yield return new WaitUntil(() => reverseDigTrack.TrackTime <= 0f);
|
||||||
|
|
||||||
var value = Mathf.Lerp(0f, 1f, elapsedTime / dissolveTime);
|
_spineController.SetSkin(SandMoleSkin.Idle.ToString());
|
||||||
_userSpriteRenderer.material.SetFloat(_dissolveValueHash, value);
|
var spinReady2Track = _spineController.PlayAnimation(SandMoleAnimation.SpinReady2.ToString(), false);
|
||||||
elapsedTime += Time.deltaTime;
|
if (spinReady2Track == null)
|
||||||
|
{
|
||||||
yield return null;
|
EndSkill(0, actions[0]);
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
yield return new WaitUntil(() => spinReady2Track.IsComplete);
|
||||||
|
|
||||||
|
_spineController.SetSkin(SandMoleSkin.Spin.ToString());
|
||||||
|
var spinTrack = _spineController.PlayAnimation(SandMoleAnimation.Spin.ToString(), true);
|
||||||
|
if (spinTrack == null || !SkillUser)
|
||||||
|
{
|
||||||
|
EndSkill(0, actions[0]);
|
||||||
|
yield break;
|
||||||
}
|
}
|
||||||
_userSpriteRenderer.material.SetFloat(_dissolveValueHash, 1f);
|
|
||||||
|
|
||||||
var startAngle = _spikeBarrageData.StartAngle;
|
var startAngle = _spikeBarrageData.StartAngle;
|
||||||
var angleStep = _spikeBarrageData.AngleStep;
|
var angleStep = _spikeBarrageData.AngleStep;
|
||||||
@ -127,8 +112,8 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
|||||||
{
|
{
|
||||||
Utils.EndUniqueCoroutine(this, ref SkillCoroutineInstance);
|
Utils.EndUniqueCoroutine(this, ref SkillCoroutineInstance);
|
||||||
|
|
||||||
_animationController.ResetAnimationSpeed();
|
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.None);
|
_spineController.PlayAnimation(SandMoleAnimation.Idle.ToString(), true);
|
||||||
action?.Invoke();
|
action?.Invoke();
|
||||||
|
|
||||||
Utils.StartUniqueCoroutine(this, ref CooldownCoroutineInstance,Utils.CoolDownCoroutine(cooldown, EndCooldown));
|
Utils.StartUniqueCoroutine(this, ref CooldownCoroutineInstance,Utils.CoolDownCoroutine(cooldown, EndCooldown));
|
||||||
|
@ -163,7 +163,7 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
public void RestartCurrentStage()
|
public void RestartCurrentStage()
|
||||||
{
|
{
|
||||||
MapManager.Instance.CurrentMapRestart();
|
MapManager.Instance.RestartCurrentMap();
|
||||||
CloseAllPopup();
|
CloseAllPopup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
using System;
|
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
@ -21,6 +20,9 @@ namespace BlueWater.Uis
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private float _duration = 1f;
|
private float _duration = 1f;
|
||||||
|
|
||||||
|
private Coroutine _damageEffectCoroutineInstance;
|
||||||
|
private bool _isInitialized;
|
||||||
|
|
||||||
[Button("컴포넌트 초기화")]
|
[Button("컴포넌트 초기화")]
|
||||||
private void InitializeComponents()
|
private void InitializeComponents()
|
||||||
{
|
{
|
||||||
@ -38,6 +40,12 @@ namespace BlueWater.Uis
|
|||||||
{
|
{
|
||||||
if (!_slider || !_damageEffectSlider) return;
|
if (!_slider || !_damageEffectSlider) return;
|
||||||
|
|
||||||
|
if (_damageEffectCoroutineInstance != null)
|
||||||
|
{
|
||||||
|
StopCoroutine(_damageEffectCoroutineInstance);
|
||||||
|
_damageEffectCoroutineInstance = null;
|
||||||
|
}
|
||||||
|
|
||||||
_slider.maxValue = maxHp;
|
_slider.maxValue = maxHp;
|
||||||
_damageEffectSlider.maxValue = maxHp;
|
_damageEffectSlider.maxValue = maxHp;
|
||||||
|
|
||||||
@ -53,7 +61,7 @@ namespace BlueWater.Uis
|
|||||||
{
|
{
|
||||||
if (!_slider || !_damageEffectSlider) return;
|
if (!_slider || !_damageEffectSlider) return;
|
||||||
|
|
||||||
StartCoroutine(DamageEffect(value));
|
_damageEffectCoroutineInstance = StartCoroutine(DamageEffect(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerator DamageEffect(int value)
|
private IEnumerator DamageEffect(int value)
|
||||||
@ -70,6 +78,11 @@ namespace BlueWater.Uis
|
|||||||
}
|
}
|
||||||
|
|
||||||
_damageEffectSlider.value = value;
|
_damageEffectSlider.value = value;
|
||||||
|
|
||||||
|
if (_damageEffectSlider.value == 0)
|
||||||
|
{
|
||||||
|
SetActiveHpSlider(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetActiveHpSlider(bool value) => gameObject.SetActive(value);
|
public void SetActiveHpSlider(bool value) => gameObject.SetActive(value);
|
||||||
|
@ -46,8 +46,8 @@ TextureImporter:
|
|||||||
spriteMode: 1
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 7
|
alignment: 9
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
spritePivot: {x: 0.5, y: 0.01}
|
||||||
spritePixelsToUnits: 2048
|
spritePixelsToUnits: 2048
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
@ -127,7 +127,7 @@ TextureImporter:
|
|||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID: 5e97eb03825dee720800000000000000
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 1537655665
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
edges: []
|
edges: []
|
||||||
|
BIN
Assets/03.Images/SkillIs/Spike.png
Normal file
BIN
Assets/03.Images/SkillIs/Spike.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 94 KiB |
141
Assets/03.Images/SkillIs/Spike.png.meta
Normal file
141
Assets/03.Images/SkillIs/Spike.png.meta
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 27e9d61a31b61aa40ad14805e0c184eb
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 9
|
||||||
|
spritePivot: {x: 0.5, y: 0.03}
|
||||||
|
spritePixelsToUnits: 512
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 1537655665
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/04.Materials/Characters.meta
Normal file
8
Assets/04.Materials/Characters.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9ff2aa70261325646b659974e9b6323c
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
146
Assets/04.Materials/Characters/SandMole.mat
Normal file
146
Assets/04.Materials/Characters/SandMole.mat
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: SandMole
|
||||||
|
m_Shader: {fileID: -6465566751694194690, guid: 25b64c74397178e47a04794eb9a74d8f, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses:
|
||||||
|
- MOTIONVECTORS
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BaseMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 3c44ede4067bf47479030196a1fc61ec, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _SpecGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AddPrecomputedVelocity: 0
|
||||||
|
- _AlphaClip: 0
|
||||||
|
- _AlphaClipThreshold: 0.2
|
||||||
|
- _AlphaToMask: 0
|
||||||
|
- _Blend: 0
|
||||||
|
- _BlendModePreserveSpecular: 1
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _Cull: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DissolveValue: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _DstBlendAlpha: 0
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _GlossMapScale: 0
|
||||||
|
- _Glossiness: 0
|
||||||
|
- _GlossyReflections: 0
|
||||||
|
- _GlowSize: 0.1
|
||||||
|
- _IsHit: 0
|
||||||
|
- _IsSeeThrough: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Opacity: 0.7
|
||||||
|
- _Parallax: 0.005
|
||||||
|
- _QueueControl: 0
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 1
|
||||||
|
- _Size: 0
|
||||||
|
- _Smoothness: 0.8
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _SrcBlendAlpha: 1
|
||||||
|
- _Surface: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _FlashColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _GlowColor: {r: 5.3403134, g: 5.3403134, b: 0, a: 0}
|
||||||
|
- _PlayerPosition: {r: 0.5, g: 0.55, b: 0, a: 0}
|
||||||
|
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
|
--- !u!114 &3929801182760292753
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 9
|
8
Assets/04.Materials/Characters/SandMole.mat.meta
Normal file
8
Assets/04.Materials/Characters/SandMole.mat.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d9ca9344cd131c049810707093126ca7
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -38,7 +38,6 @@ Material:
|
|||||||
disabledShaderPasses:
|
disabledShaderPasses:
|
||||||
- MOTIONVECTORS
|
- MOTIONVECTORS
|
||||||
- DepthOnly
|
- DepthOnly
|
||||||
- SHADOWCASTER
|
|
||||||
m_LockedProperties:
|
m_LockedProperties:
|
||||||
m_SavedProperties:
|
m_SavedProperties:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
|
@ -57,13 +57,13 @@ Transform:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 2736699741125954087}
|
m_GameObject: {fileID: 2736699741125954087}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0.3420201, y: 0, z: 0, w: 0.9396927}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 1
|
m_ConstrainProportionsScale: 1
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 6255916646741457976}
|
m_Father: {fileID: 6255916646741457976}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0}
|
||||||
--- !u!212 &6274137400612009998
|
--- !u!212 &6274137400612009998
|
||||||
SpriteRenderer:
|
SpriteRenderer:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -213,7 +213,7 @@ GameObject:
|
|||||||
- component: {fileID: 6865346796134993564}
|
- component: {fileID: 6865346796134993564}
|
||||||
- component: {fileID: 4159255405813448884}
|
- component: {fileID: 4159255405813448884}
|
||||||
m_Layer: 10
|
m_Layer: 10
|
||||||
m_Name: BaseBoss
|
m_Name: AnimatorBaseBoss
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 5975a5a7434cc704c9d60c8ab3750550
|
guid: 95f91f8d7fca3544fb0577a9dd14caf6
|
||||||
PrefabImporter:
|
PrefabImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
@ -100,6 +100,10 @@ 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: _renderer
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 8411583502041648826}
|
||||||
- target: {fileID: 7170637981020870835, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 7170637981020870835, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: Rhinoceros
|
value: Rhinoceros
|
||||||
@ -200,15 +204,15 @@ MonoBehaviour:
|
|||||||
<CharacterCollider>k__BackingField: {fileID: 6969328794869467798}
|
<CharacterCollider>k__BackingField: {fileID: 6969328794869467798}
|
||||||
<BehaviorTree>k__BackingField: {fileID: 1110469622569527304}
|
<BehaviorTree>k__BackingField: {fileID: 1110469622569527304}
|
||||||
<VisualLook>k__BackingField: {fileID: 1410821550004090100}
|
<VisualLook>k__BackingField: {fileID: 1410821550004090100}
|
||||||
<SpriteRenderer>k__BackingField: {fileID: 8411583502041648826}
|
|
||||||
<Animator>k__BackingField: {fileID: 2875096611673055428}
|
|
||||||
<HitBoxCollider>k__BackingField: {fileID: 5897569616117255232}
|
<HitBoxCollider>k__BackingField: {fileID: 5897569616117255232}
|
||||||
<BossData>k__BackingField: {fileID: 11400000, guid: c8e21ded50a36a549b51c846cf3640b3, type: 2}
|
<BossData>k__BackingField: {fileID: 11400000, guid: c8e21ded50a36a549b51c846cf3640b3, type: 2}
|
||||||
<AnimationController>k__BackingField: {fileID: 8314565348215340790}
|
|
||||||
<BossHealthPoint>k__BackingField: {fileID: 8923351760400967455}
|
<BossHealthPoint>k__BackingField: {fileID: 8923351760400967455}
|
||||||
<AIMovement>k__BackingField: {fileID: 9002511558952892456}
|
<AIMovement>k__BackingField: {fileID: 9002511558952892456}
|
||||||
<BossSkillController>k__BackingField: {fileID: 1878389004569703936}
|
<BossSkillController>k__BackingField: {fileID: 1878389004569703936}
|
||||||
<Target>k__BackingField: {fileID: 0}
|
<Target>k__BackingField: {fileID: 0}
|
||||||
|
<SpriteRenderer>k__BackingField: {fileID: 8411583502041648826}
|
||||||
|
<Animator>k__BackingField: {fileID: 2875096611673055428}
|
||||||
|
<AnimationController>k__BackingField: {fileID: 8314565348215340790}
|
||||||
--- !u!65 &5897569616117255232 stripped
|
--- !u!65 &5897569616117255232 stripped
|
||||||
BoxCollider:
|
BoxCollider:
|
||||||
m_CorrespondingSourceObject: {fileID: 8246553021837507316, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
m_CorrespondingSourceObject: {fileID: 8246553021837507316, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
|
@ -1,312 +1,12 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!1001 &2569800677110986420
|
--- !u!1001 &2624839957929985237
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Modification:
|
m_Modification:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TransformParent: {fileID: 0}
|
m_TransformParent: {fileID: 8932196953512409498}
|
||||||
m_Modifications:
|
|
||||||
- target: {fileID: 310644174614533744, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_Controller
|
|
||||||
value:
|
|
||||||
objectReference: {fileID: 9100000, guid: a6d9ab891e7e22741a581057b97110d5, type: 2}
|
|
||||||
- target: {fileID: 3476210053167940160, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.y
|
|
||||||
value: 0.5
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: _skillList.Array.size
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: '_skillList.Array.data[0]'
|
|
||||||
value:
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: '_skillList.Array.data[1]'
|
|
||||||
value:
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: '_skillList.Array.data[2]'
|
|
||||||
value:
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: '_skillList.Array.data[3]'
|
|
||||||
value:
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: '_skillList.Array.data[4]'
|
|
||||||
value:
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalScale.x
|
|
||||||
value: 5
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalScale.y
|
|
||||||
value: 5
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalScale.z
|
|
||||||
value: 5
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.w
|
|
||||||
value: 1
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6255916646741457976, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6274137400612009998, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_Size.y
|
|
||||||
value: 0.55
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6274137400612009998, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_Sprite
|
|
||||||
value:
|
|
||||||
objectReference: {fileID: 21300000, guid: 884b7fc30283f3e4aad173e3e7bef059, type: 3}
|
|
||||||
- target: {fileID: 6274137400612009998, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_WasSpriteAssigned
|
|
||||||
value: 1
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7170637981020870835, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
propertyPath: m_Name
|
|
||||||
value: SandMole
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
m_RemovedComponents: []
|
|
||||||
m_RemovedGameObjects: []
|
|
||||||
m_AddedGameObjects:
|
|
||||||
- targetCorrespondingSourceObject: {fileID: 3323198499126332622, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
insertIndex: -1
|
|
||||||
addedObject: {fileID: 5672546178639089928}
|
|
||||||
m_AddedComponents:
|
|
||||||
- targetCorrespondingSourceObject: {fileID: 7170637981020870835, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
insertIndex: 3
|
|
||||||
addedObject: {fileID: 1110469622569527304}
|
|
||||||
- targetCorrespondingSourceObject: {fileID: 7170637981020870835, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
insertIndex: -1
|
|
||||||
addedObject: {fileID: -3236352117277465236}
|
|
||||||
- targetCorrespondingSourceObject: {fileID: 7170637981020870835, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
insertIndex: -1
|
|
||||||
addedObject: {fileID: 6857639742673603861}
|
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
--- !u!4 &988429566761204346 stripped
|
|
||||||
Transform:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 3323198499126332622, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 2569800677110986420}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!4 &1410821550004090100 stripped
|
|
||||||
Transform:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 3476210053167940160, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 2569800677110986420}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!114 &1878389004569703936 stripped
|
|
||||||
MonoBehaviour:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 4159255405813448884, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 2569800677110986420}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 4623786526972472839}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 5e547505a3a98b44c9660eec12b91720, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
--- !u!95 &2875096611673055428 stripped
|
|
||||||
Animator:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 310644174614533744, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 2569800677110986420}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!1 &4623786526972472839 stripped
|
|
||||||
GameObject:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 7170637981020870835, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 2569800677110986420}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!114 &1110469622569527304
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 4623786526972472839}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 8d7b55c7ecdb49a4a89fa5e6f9022861, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
startWhenEnabled: 0
|
|
||||||
asynchronousLoad: 0
|
|
||||||
pauseWhenDisabled: 0
|
|
||||||
restartWhenComplete: 0
|
|
||||||
logTaskChanges: 0
|
|
||||||
group: 0
|
|
||||||
resetValuesOnRestart: 0
|
|
||||||
externalBehavior: {fileID: 11400000, guid: ff3ad0a810bbf9d49a60f5990463ab05, type: 2}
|
|
||||||
mBehaviorSource:
|
|
||||||
behaviorName: SandMole
|
|
||||||
behaviorDescription:
|
|
||||||
mTaskData:
|
|
||||||
types: []
|
|
||||||
parentIndex:
|
|
||||||
startIndex:
|
|
||||||
variableStartIndex:
|
|
||||||
JSONSerialization: '{"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true,"GameObjectmValue":0},{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"CurrentHealthPoint","IsShared":true,"PropertyMapping":"BlueWater.Enemies.Bosses.SandMole.SandMole/CurrentHealthPoint","PropertyMappingOwner":1,"Int32mValue":0},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true,"PropertyMapping":"BlueWater.Enemies.Bosses.SandMole.SandMole/Target","PropertyMappingOwner":2}]}'
|
|
||||||
fieldSerializationData:
|
|
||||||
typeName: []
|
|
||||||
fieldNameHash:
|
|
||||||
startIndex:
|
|
||||||
dataPosition:
|
|
||||||
unityObjects:
|
|
||||||
- {fileID: 4623786526972472839}
|
|
||||||
- {fileID: 4623786526972472839}
|
|
||||||
- {fileID: 4623786526972472839}
|
|
||||||
byteData:
|
|
||||||
byteDataArray:
|
|
||||||
Version: 1.7.9
|
|
||||||
gizmoViewMode: 2
|
|
||||||
showBehaviorDesignerGizmo: 0
|
|
||||||
--- !u!114 &-3236352117277465236
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 4623786526972472839}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 4e606f828f61d0241be522a81ccc2915, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
<Rigidbody>k__BackingField: {fileID: 6368257510650399952}
|
|
||||||
<CharacterCollider>k__BackingField: {fileID: 6969328794869467798}
|
|
||||||
<BehaviorTree>k__BackingField: {fileID: 1110469622569527304}
|
|
||||||
<VisualLook>k__BackingField: {fileID: 1410821550004090100}
|
|
||||||
<SpriteRenderer>k__BackingField: {fileID: 8411583502041648826}
|
|
||||||
<Animator>k__BackingField: {fileID: 2875096611673055428}
|
|
||||||
<HitBoxCollider>k__BackingField: {fileID: 5897569616117255232}
|
|
||||||
<BossData>k__BackingField: {fileID: 11400000, guid: ac684afe9ab056d4eb4a6b2fedfcf6d9, type: 2}
|
|
||||||
<AnimationController>k__BackingField: {fileID: 8314565348215340790}
|
|
||||||
<BossHealthPoint>k__BackingField: {fileID: 8923351760400967455}
|
|
||||||
<AIMovement>k__BackingField: {fileID: 9002511558952892456}
|
|
||||||
<BossSkillController>k__BackingField: {fileID: 1878389004569703936}
|
|
||||||
<Target>k__BackingField: {fileID: 0}
|
|
||||||
<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
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 4623786526972472839}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 9aa905dd159cefc4cbeb417c688b9639, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
_stunParticle: {fileID: 6635401445434353523}
|
|
||||||
--- !u!65 &5897569616117255232 stripped
|
|
||||||
BoxCollider:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 8246553021837507316, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 2569800677110986420}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!54 &6368257510650399952 stripped
|
|
||||||
Rigidbody:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 8919762167155522148, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 2569800677110986420}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!136 &6969328794869467798 stripped
|
|
||||||
CapsuleCollider:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 4832858849328938018, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 2569800677110986420}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!114 &8314565348215340790 stripped
|
|
||||||
MonoBehaviour:
|
|
||||||
m_CorrespondingSourceObject: {fileID: -3401764490790336446, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 2569800677110986420}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 4623786526972472839}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 17488a2bea6f4126a7877ce5d934f865, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
--- !u!212 &8411583502041648826 stripped
|
|
||||||
SpriteRenderer:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 6274137400612009998, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 2569800677110986420}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!114 &8923351760400967455 stripped
|
|
||||||
MonoBehaviour:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 6377054450616127915, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 2569800677110986420}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 4623786526972472839}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 7b9900c0671da864e910821e6447affc, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
--- !u!114 &9002511558952892456 stripped
|
|
||||||
MonoBehaviour:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 6865346796134993564, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 2569800677110986420}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 4623786526972472839}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 75b48aa4b99043cb9e665a892ec46c75, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
--- !u!1001 &8818561255954491281
|
|
||||||
PrefabInstance:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Modification:
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TransformParent: {fileID: 988429566761204346}
|
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 3808140985359726233, guid: 5cf7cd372801c784a9875e0740cf9038, type: 3}
|
- target: {fileID: 3808140985359726233, guid: 5cf7cd372801c784a9875e0740cf9038, type: 3}
|
||||||
propertyPath: m_LocalScale.x
|
propertyPath: m_LocalScale.x
|
||||||
@ -373,13 +73,323 @@ PrefabInstance:
|
|||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
m_AddedComponents: []
|
m_AddedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 5cf7cd372801c784a9875e0740cf9038, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: 5cf7cd372801c784a9875e0740cf9038, type: 3}
|
||||||
--- !u!4 &5672546178639089928 stripped
|
--- !u!198 &151207866041222199 stripped
|
||||||
Transform:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 3808140985359726233, guid: 5cf7cd372801c784a9875e0740cf9038, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 8818561255954491281}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!198 &6635401445434353523 stripped
|
|
||||||
ParticleSystem:
|
ParticleSystem:
|
||||||
m_CorrespondingSourceObject: {fileID: 2770976869746131170, guid: 5cf7cd372801c784a9875e0740cf9038, type: 3}
|
m_CorrespondingSourceObject: {fileID: 2770976869746131170, guid: 5cf7cd372801c784a9875e0740cf9038, type: 3}
|
||||||
m_PrefabInstance: {fileID: 8818561255954491281}
|
m_PrefabInstance: {fileID: 2624839957929985237}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!4 &1203712363435651660 stripped
|
||||||
|
Transform:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 3808140985359726233, guid: 5cf7cd372801c784a9875e0740cf9038, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 2624839957929985237}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1001 &6191278097168840020
|
||||||
|
PrefabInstance:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Modification:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TransformParent: {fileID: 0}
|
||||||
|
m_Modifications:
|
||||||
|
- target: {fileID: 2424111193999207001, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: _animationName
|
||||||
|
value: Idle
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 2424111193999207001, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: initialSkinName
|
||||||
|
value: Normal
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 2424111193999207001, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: skeletonDataAsset
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 11400000, guid: 31819191fa1f97347bc9f73c0dbeb10e, type: 2}
|
||||||
|
- target: {fileID: 3216521486739552858, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_SortingOrder
|
||||||
|
value: 5
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3216521486739552858, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_Materials.Array.size
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3216521486739552858, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: 'm_Materials.Array.data[0]'
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 2100000, guid: cd85759cb00b35c4b9d52d8814bf680b, type: 2}
|
||||||
|
- target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: customSlotMaterials.Array.size
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: customMaterialOverrides.Array.size
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: customMaterialOverrides.Array.data[0].originalMaterial
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 2100000, guid: cd85759cb00b35c4b9d52d8814bf680b, type: 2}
|
||||||
|
- target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: customMaterialOverrides.Array.data[0].overrideDisabled
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: customMaterialOverrides.Array.data[0].replacementMaterial
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 2100000, guid: d9ca9344cd131c049810707093126ca7, type: 2}
|
||||||
|
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: _initialSkinName
|
||||||
|
value: Normal
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: _skeletonAnimation
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 8381193314241175309}
|
||||||
|
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_LocalScale.x
|
||||||
|
value: 5
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_LocalScale.y
|
||||||
|
value: 5
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_LocalScale.z
|
||||||
|
value: 5
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.w
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6377054450616127915, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: _renderer
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 8739437251540422414}
|
||||||
|
- target: {fileID: 7170637981020870835, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
propertyPath: m_Name
|
||||||
|
value: SandMole
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
m_RemovedComponents: []
|
||||||
|
m_RemovedGameObjects: []
|
||||||
|
m_AddedGameObjects:
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 3323198499126332622, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 1203712363435651660}
|
||||||
|
m_AddedComponents:
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 7170637981020870835, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
insertIndex: 3
|
||||||
|
addedObject: {fileID: -4544136169557839496}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 7170637981020870835, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: -3493984991810313697}
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 7170637981020870835, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 4802344397510425122}
|
||||||
|
m_SourcePrefab: {fileID: 100100000, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
--- !u!114 &769352651641568200 stripped
|
||||||
|
MonoBehaviour:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 6865346796134993564, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6191278097168840020}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3920647224749190631}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 75b48aa4b99043cb9e665a892ec46c75, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!114 &978424182761841919 stripped
|
||||||
|
MonoBehaviour:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 6377054450616127915, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6191278097168840020}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3920647224749190631}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 7b9900c0671da864e910821e6447affc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!136 &1655659061481113974 stripped
|
||||||
|
CapsuleCollider:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 4832858849328938018, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6191278097168840020}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!114 &1835238398239900901 stripped
|
||||||
|
MonoBehaviour:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6191278097168840020}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3920647224749190631}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: be4f815e5e3c0d5459559bdc0b8bbbfb, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!65 &2853719656385728416 stripped
|
||||||
|
BoxCollider:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 8246553021837507316, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6191278097168840020}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!54 &3324372096500518704 stripped
|
||||||
|
Rigidbody:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 8919762167155522148, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6191278097168840020}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &3920647224749190631 stripped
|
||||||
|
GameObject:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 7170637981020870835, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6191278097168840020}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!114 &-4544136169557839496
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3920647224749190631}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 8d7b55c7ecdb49a4a89fa5e6f9022861, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
startWhenEnabled: 0
|
||||||
|
asynchronousLoad: 0
|
||||||
|
pauseWhenDisabled: 0
|
||||||
|
restartWhenComplete: 0
|
||||||
|
logTaskChanges: 0
|
||||||
|
group: 0
|
||||||
|
resetValuesOnRestart: 0
|
||||||
|
externalBehavior: {fileID: 11400000, guid: ff3ad0a810bbf9d49a60f5990463ab05, type: 2}
|
||||||
|
mBehaviorSource:
|
||||||
|
behaviorName: SandMole
|
||||||
|
behaviorDescription:
|
||||||
|
mTaskData:
|
||||||
|
types: []
|
||||||
|
parentIndex:
|
||||||
|
startIndex:
|
||||||
|
variableStartIndex:
|
||||||
|
JSONSerialization: '{"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true,"GameObjectmValue":0},{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"CurrentHealthPoint","IsShared":true,"PropertyMapping":"BlueWater.Enemies.Bosses.SandMole.SandMole/CurrentHealthPoint","PropertyMappingOwner":1,"Int32mValue":0},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true,"PropertyMapping":"BlueWater.Enemies.Bosses.SandMole.SandMole/Target","PropertyMappingOwner":2}]}'
|
||||||
|
fieldSerializationData:
|
||||||
|
typeName: []
|
||||||
|
fieldNameHash:
|
||||||
|
startIndex:
|
||||||
|
dataPosition:
|
||||||
|
unityObjects:
|
||||||
|
- {fileID: 3920647224749190631}
|
||||||
|
- {fileID: 3920647224749190631}
|
||||||
|
- {fileID: 3920647224749190631}
|
||||||
|
byteData:
|
||||||
|
byteDataArray:
|
||||||
|
Version: 1.7.9
|
||||||
|
gizmoViewMode: 2
|
||||||
|
showBehaviorDesignerGizmo: 0
|
||||||
|
--- !u!114 &-3493984991810313697
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3920647224749190631}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4e606f828f61d0241be522a81ccc2915, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
<Rigidbody>k__BackingField: {fileID: 3324372096500518704}
|
||||||
|
<CharacterCollider>k__BackingField: {fileID: 1655659061481113974}
|
||||||
|
<BehaviorTree>k__BackingField: {fileID: -4544136169557839496}
|
||||||
|
<VisualLook>k__BackingField: {fileID: 7338101022445811476}
|
||||||
|
<HitBoxCollider>k__BackingField: {fileID: 2853719656385728416}
|
||||||
|
<BossData>k__BackingField: {fileID: 11400000, guid: ac684afe9ab056d4eb4a6b2fedfcf6d9, type: 2}
|
||||||
|
<BossHealthPoint>k__BackingField: {fileID: 978424182761841919}
|
||||||
|
<AIMovement>k__BackingField: {fileID: 769352651641568200}
|
||||||
|
<BossSkillController>k__BackingField: {fileID: 7805708340751103456}
|
||||||
|
<Target>k__BackingField: {fileID: 0}
|
||||||
|
<MeshRenderer>k__BackingField: {fileID: 8739437251540422414}
|
||||||
|
<SpineController>k__BackingField: {fileID: 1835238398239900901}
|
||||||
|
<SandMoleStatus>k__BackingField: {fileID: 4802344397510425122}
|
||||||
|
_summonMiniSandMoles: []
|
||||||
|
--- !u!114 &4802344397510425122
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3920647224749190631}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 9aa905dd159cefc4cbeb417c688b9639, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
_spineController: {fileID: 1835238398239900901}
|
||||||
|
_stunParticle: {fileID: 151207866041222199}
|
||||||
|
--- !u!4 &7338101022445811476 stripped
|
||||||
|
Transform:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 3476210053167940160, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6191278097168840020}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!114 &7805708340751103456 stripped
|
||||||
|
MonoBehaviour:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 4159255405813448884, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6191278097168840020}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3920647224749190631}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5e547505a3a98b44c9660eec12b91720, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!114 &8381193314241175309 stripped
|
||||||
|
MonoBehaviour:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 2424111193999207001, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6191278097168840020}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!23 &8739437251540422414 stripped
|
||||||
|
MeshRenderer:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 3216521486739552858, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6191278097168840020}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!4 &8932196953512409498 stripped
|
||||||
|
Transform:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 3323198499126332622, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 6191278097168840020}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: e3a389dac3e524844ac42dabd7207e64
|
guid: 58854203209bd294d817b319d4dafc4f
|
||||||
PrefabImporter:
|
PrefabImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
470
Assets/05.Prefabs/Characters/Enemies/Bosses/SpineBaseBoss.prefab
Normal file
470
Assets/05.Prefabs/Characters/Enemies/Bosses/SpineBaseBoss.prefab
Normal file
@ -0,0 +1,470 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &455614778658724887
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3323198499126332622}
|
||||||
|
m_Layer: 10
|
||||||
|
m_Name: Particles
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &3323198499126332622
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 455614778658724887}
|
||||||
|
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: 6255916646741457976}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &2736699741125954087
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3476210053167940160}
|
||||||
|
- component: {fileID: 3216521486739552858}
|
||||||
|
- component: {fileID: 2424111193999207001}
|
||||||
|
- component: {fileID: 4172430046422716170}
|
||||||
|
m_Layer: 10
|
||||||
|
m_Name: VisualLook
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &3476210053167940160
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2736699741125954087}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0.3420201, y: 0, z: 0, w: 0.9396927}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 1
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 6255916646741457976}
|
||||||
|
m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0}
|
||||||
|
--- !u!23 &3216521486739552858
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2736699741125954087}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
|
m_SmallMeshCulling: 1
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 0}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 3
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_AdditionalVertexStreams: {fileID: 0}
|
||||||
|
--- !u!114 &2424111193999207001
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2736699741125954087}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
skeletonDataAsset: {fileID: 0}
|
||||||
|
initialSkinName:
|
||||||
|
fixPrefabOverrideViaMeshFilter: 2
|
||||||
|
initialFlipX: 0
|
||||||
|
initialFlipY: 0
|
||||||
|
updateWhenInvisible: 3
|
||||||
|
separatorSlotNames: []
|
||||||
|
zSpacing: 0
|
||||||
|
useClipping: 1
|
||||||
|
immutableTriangles: 0
|
||||||
|
pmaVertexColors: 1
|
||||||
|
clearStateOnDisable: 0
|
||||||
|
tintBlack: 0
|
||||||
|
singleSubmesh: 0
|
||||||
|
fixDrawOrder: 0
|
||||||
|
addNormals: 0
|
||||||
|
calculateTangents: 0
|
||||||
|
maskInteraction: 0
|
||||||
|
maskMaterials:
|
||||||
|
materialsMaskDisabled: []
|
||||||
|
materialsInsideMask: []
|
||||||
|
materialsOutsideMask: []
|
||||||
|
disableRenderingOnOverride: 1
|
||||||
|
physicsPositionInheritanceFactor: {x: 1, y: 1}
|
||||||
|
physicsRotationInheritanceFactor: 1
|
||||||
|
physicsMovementRelativeTo: {fileID: 0}
|
||||||
|
updateTiming: 1
|
||||||
|
unscaledTime: 0
|
||||||
|
_animationName:
|
||||||
|
loop: 0
|
||||||
|
timeScale: 1
|
||||||
|
--- !u!114 &4172430046422716170
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2736699741125954087}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 26947ae098a8447408d80c0c86e35b48, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
skeletonRenderer: {fileID: 2424111193999207001}
|
||||||
|
customSlotMaterials: []
|
||||||
|
customMaterialOverrides: []
|
||||||
|
--- !u!1 &6453883501752530733
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4470263094854566718}
|
||||||
|
- component: {fileID: 8246553021837507316}
|
||||||
|
m_Layer: 12
|
||||||
|
m_Name: HitBox
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &4470263094854566718
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6453883501752530733}
|
||||||
|
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: 1
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 6255916646741457976}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!65 &8246553021837507316
|
||||||
|
BoxCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6453883501752530733}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 1
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_Size: {x: 1, y: 1, z: 0.25}
|
||||||
|
m_Center: {x: 0, y: 0.5, z: 0}
|
||||||
|
--- !u!1 &7170637981020870835
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6255916646741457976}
|
||||||
|
- component: {fileID: 8919762167155522148}
|
||||||
|
- component: {fileID: 4832858849328938018}
|
||||||
|
- component: {fileID: 6820170460284289212}
|
||||||
|
- component: {fileID: 4032255264356834775}
|
||||||
|
- component: {fileID: 9052061988704076548}
|
||||||
|
- component: {fileID: 6377054450616127915}
|
||||||
|
- component: {fileID: 5517970820860260785}
|
||||||
|
- component: {fileID: 6865346796134993564}
|
||||||
|
- component: {fileID: 4159255405813448884}
|
||||||
|
m_Layer: 10
|
||||||
|
m_Name: SpineBaseBoss
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &6255916646741457976
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7170637981020870835}
|
||||||
|
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: 1
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 3476210053167940160}
|
||||||
|
- {fileID: 4470263094854566718}
|
||||||
|
- {fileID: 3323198499126332622}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!54 &8919762167155522148
|
||||||
|
Rigidbody:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7170637981020870835}
|
||||||
|
serializedVersion: 4
|
||||||
|
m_Mass: 100
|
||||||
|
m_Drag: 0
|
||||||
|
m_AngularDrag: 0.05
|
||||||
|
m_CenterOfMass: {x: 0, y: 0, z: 0}
|
||||||
|
m_InertiaTensor: {x: 1, y: 1, z: 1}
|
||||||
|
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ImplicitCom: 1
|
||||||
|
m_ImplicitTensor: 1
|
||||||
|
m_UseGravity: 1
|
||||||
|
m_IsKinematic: 0
|
||||||
|
m_Interpolate: 1
|
||||||
|
m_Constraints: 112
|
||||||
|
m_CollisionDetection: 2
|
||||||
|
--- !u!136 &4832858849328938018
|
||||||
|
CapsuleCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7170637981020870835}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Radius: 0.5
|
||||||
|
m_Height: 1
|
||||||
|
m_Direction: 1
|
||||||
|
m_Center: {x: 0, y: 0.5, z: 0}
|
||||||
|
--- !u!114 &6820170460284289212
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7170637981020870835}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 373b52eb9bf8c40f785bb6947a1aee66, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 1073741824
|
||||||
|
drawGizmos: 1
|
||||||
|
detailedGizmos: 0
|
||||||
|
startEndModifier:
|
||||||
|
addPoints: 0
|
||||||
|
exactStartPoint: 3
|
||||||
|
exactEndPoint: 3
|
||||||
|
useRaycasting: 0
|
||||||
|
mask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
useGraphRaycasting: 0
|
||||||
|
traversableTags: -1
|
||||||
|
tagPenalties: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
graphMask:
|
||||||
|
value: -1
|
||||||
|
--- !u!114 &4032255264356834775
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7170637981020870835}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f6eb1402c17e84a9282a7f0f62eb584f, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 1073741824
|
||||||
|
radius: 0.5
|
||||||
|
height: 1
|
||||||
|
canMove: 1
|
||||||
|
maxSpeed: 1
|
||||||
|
gravity: {x: NaN, y: NaN, z: NaN}
|
||||||
|
groundMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
endReachedDistance: 0.1
|
||||||
|
whenCloseToDestination: 0
|
||||||
|
rvoDensityBehavior:
|
||||||
|
enabled: 1
|
||||||
|
densityThreshold: 0.5
|
||||||
|
returnAfterBeingPushedAway: 0
|
||||||
|
progressAverage: 0
|
||||||
|
lastJobDensityResult: 0
|
||||||
|
centerOffsetCompatibility: NaN
|
||||||
|
repathRateCompatibility: NaN
|
||||||
|
canSearchCompability: 0
|
||||||
|
orientation: 0
|
||||||
|
enableRotation: 0
|
||||||
|
autoRepath:
|
||||||
|
mode: 2
|
||||||
|
period: 0.5
|
||||||
|
sensitivity: 10
|
||||||
|
maximumPeriod: 2
|
||||||
|
visualizeSensitivity: 0
|
||||||
|
targetCompatibility: {fileID: 0}
|
||||||
|
maxAcceleration: -2.5
|
||||||
|
rotationSpeed: 360
|
||||||
|
slowdownDistance: 0.3
|
||||||
|
pickNextWaypointDist: 0.5
|
||||||
|
alwaysDrawGizmos: 0
|
||||||
|
slowWhenNotFacingTarget: 1
|
||||||
|
preventMovingBackwards: 0
|
||||||
|
constrainInsideGraph: 0
|
||||||
|
--- !u!114 &9052061988704076548
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7170637981020870835}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 77f586f285b3847808d79083bd19ef1f, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 1073741824
|
||||||
|
quality: 0
|
||||||
|
splitAtEveryPortal: 0
|
||||||
|
accountForGridPenalties: 0
|
||||||
|
--- !u!114 &6377054450616127915
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7170637981020870835}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 7b9900c0671da864e910821e6447affc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
_characterCollider: {fileID: 4832858849328938018}
|
||||||
|
_spriteRenderer: {fileID: 0}
|
||||||
|
_particleInstantiateLocation: {fileID: 0}
|
||||||
|
<MaxHealthPoint>k__BackingField: 0
|
||||||
|
<CurrentHealthPoint>k__BackingField: 0
|
||||||
|
<InvincibilityDuration>k__BackingField: 0.1
|
||||||
|
_attackedSfxName:
|
||||||
|
_dieSfxName:
|
||||||
|
_attackedParticle: {fileID: 0}
|
||||||
|
_dieParticle: {fileID: 0}
|
||||||
|
--- !u!114 &5517970820860260785
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7170637981020870835}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: be4f815e5e3c0d5459559bdc0b8bbbfb, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
_skeletonAnimation: {fileID: 0}
|
||||||
|
_initialSkinName: default
|
||||||
|
--- !u!114 &6865346796134993564
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7170637981020870835}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 75b48aa4b99043cb9e665a892ec46c75, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!114 &4159255405813448884
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7170637981020870835}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5e547505a3a98b44c9660eec12b91720, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
_skillList: []
|
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5c2f67e75ea578f478f4a2f61f6acfca
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -167,6 +167,10 @@ 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: _renderer
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 5448061580005708447}
|
||||||
- target: {fileID: 6377054450616127915, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
- target: {fileID: 6377054450616127915, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||||
propertyPath: _dieSfxName
|
propertyPath: _dieSfxName
|
||||||
value: TitanSlimeDie
|
value: TitanSlimeDie
|
||||||
@ -340,13 +344,23 @@ MonoBehaviour:
|
|||||||
<CharacterCollider>k__BackingField: {fileID: 6888416268787095219}
|
<CharacterCollider>k__BackingField: {fileID: 6888416268787095219}
|
||||||
<BehaviorTree>k__BackingField: {fileID: 3336831312449989230}
|
<BehaviorTree>k__BackingField: {fileID: 3336831312449989230}
|
||||||
<VisualLook>k__BackingField: {fileID: 3221387912671045841}
|
<VisualLook>k__BackingField: {fileID: 3221387912671045841}
|
||||||
<SpriteRenderer>k__BackingField: {fileID: 5448061580005708447}
|
|
||||||
<Animator>k__BackingField: {fileID: 1785378898368314593}
|
|
||||||
<HitBoxCollider>k__BackingField: {fileID: 7996411433804189797}
|
<HitBoxCollider>k__BackingField: {fileID: 7996411433804189797}
|
||||||
<BossData>k__BackingField: {fileID: 11400000, guid: c9c36628b677b854999f97966b3c5b14, type: 2}
|
<BossData>k__BackingField: {fileID: 11400000, guid: c9c36628b677b854999f97966b3c5b14, type: 2}
|
||||||
<AnimationController>k__BackingField: {fileID: 5495465377430151891}
|
|
||||||
<BossHealthPoint>k__BackingField: {fileID: 4969309465389398842}
|
<BossHealthPoint>k__BackingField: {fileID: 4969309465389398842}
|
||||||
<AIMovement>k__BackingField: {fileID: 4886349608629249037}
|
<AIMovement>k__BackingField: {fileID: 4886349608629249037}
|
||||||
<BossSkillController>k__BackingField: {fileID: 2680193030030060069}
|
<BossSkillController>k__BackingField: {fileID: 2680193030030060069}
|
||||||
<Target>k__BackingField: {fileID: 0}
|
<Target>k__BackingField: {fileID: 0}
|
||||||
|
<SpriteRenderer>k__BackingField: {fileID: 5448061580005708447}
|
||||||
|
<Animator>k__BackingField: {fileID: 1785378898368314593}
|
||||||
|
<AnimationController>k__BackingField: {fileID: 5495465377430151891}
|
||||||
_rabbit: {fileID: 5353233326328218742}
|
_rabbit: {fileID: 5353233326328218742}
|
||||||
|
<TitanSlimeState>k__BackingField:
|
||||||
|
<Level>k__BackingField: 0
|
||||||
|
<Size>k__BackingField: 0
|
||||||
|
<MaxHp>k__BackingField: 0
|
||||||
|
<AnimationLength>k__BackingField: 0
|
||||||
|
<ViewRange>k__BackingField: 0
|
||||||
|
<RandomCooldown>k__BackingField: {x: 0, y: 0}
|
||||||
|
<HasRabbit>k__BackingField: 0
|
||||||
|
<JumpCameraShakingPower>k__BackingField: 0
|
||||||
|
<JumpCameraShakingDuration>k__BackingField: 0
|
||||||
|
@ -415,6 +415,22 @@ MonoBehaviour:
|
|||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_ActionId: a5d9ffcb-5c4f-4c6d-8335-9060bbea120a
|
m_ActionId: a5d9ffcb-5c4f-4c6d-8335-9060bbea120a
|
||||||
m_ActionName: 'Combat/OpenDevelopMenu[/Keyboard/f1]'
|
m_ActionName: 'Combat/OpenDevelopMenu[/Keyboard/f1]'
|
||||||
|
- m_PersistentCalls:
|
||||||
|
m_Calls:
|
||||||
|
- m_Target: {fileID: 522031830802304584}
|
||||||
|
m_TargetAssemblyTypeName: BlueWater.Players.Combat.CombatInput, Assembly-CSharp
|
||||||
|
m_MethodName: OnForceKillBoss
|
||||||
|
m_Mode: 0
|
||||||
|
m_Arguments:
|
||||||
|
m_ObjectArgument: {fileID: 0}
|
||||||
|
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||||
|
m_IntArgument: 0
|
||||||
|
m_FloatArgument: 0
|
||||||
|
m_StringArgument:
|
||||||
|
m_BoolArgument: 0
|
||||||
|
m_CallState: 2
|
||||||
|
m_ActionId: 2f6cc7b3-e806-4b78-b11f-e6ed70bb67ac
|
||||||
|
m_ActionName: 'Combat/ForceKillBoss[/Keyboard/f2]'
|
||||||
m_NeverAutoSwitchControlSchemes: 0
|
m_NeverAutoSwitchControlSchemes: 0
|
||||||
m_DefaultControlScheme:
|
m_DefaultControlScheme:
|
||||||
m_DefaultActionMap: Combat
|
m_DefaultActionMap: Combat
|
||||||
@ -661,13 +677,13 @@ Transform:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 8540731795983184644}
|
m_GameObject: {fileID: 8540731795983184644}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0.3420201, y: 0, z: 0, w: 0.9396927}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 6, y: 6, z: 6}
|
m_LocalScale: {x: 6, y: 6, z: 6}
|
||||||
m_ConstrainProportionsScale: 1
|
m_ConstrainProportionsScale: 1
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 668700138157159316}
|
m_Father: {fileID: 668700138157159316}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0}
|
||||||
--- !u!212 &5558898291459354456
|
--- !u!212 &5558898291459354456
|
||||||
SpriteRenderer:
|
SpriteRenderer:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -85,7 +85,7 @@ MeshRenderer:
|
|||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 5
|
m_SortingOrder: 1
|
||||||
m_AdditionalVertexStreams: {fileID: 0}
|
m_AdditionalVertexStreams: {fileID: 0}
|
||||||
--- !u!114 &545895004707295019
|
--- !u!114 &545895004707295019
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
|
@ -115,7 +115,6 @@ Transform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 6052826474412574974}
|
|
||||||
- {fileID: 8517595696594260902}
|
- {fileID: 8517595696594260902}
|
||||||
- {fileID: 4108087243422214688}
|
- {fileID: 4108087243422214688}
|
||||||
- {fileID: 6277086964971212290}
|
- {fileID: 6277086964971212290}
|
||||||
@ -8880,69 +8879,6 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
m_CorrespondingSourceObject: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
||||||
m_PrefabInstance: {fileID: 5427090224258738352}
|
m_PrefabInstance: {fileID: 5427090224258738352}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
--- !u!1001 &5445778169910207642
|
|
||||||
PrefabInstance:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Modification:
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TransformParent: {fileID: 7604816022990125953}
|
|
||||||
m_Modifications:
|
|
||||||
- target: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.x
|
|
||||||
value: -18.49
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.y
|
|
||||||
value: -3.97
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.z
|
|
||||||
value: 10.73
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.w
|
|
||||||
value: 1
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.x
|
|
||||||
value: -0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.y
|
|
||||||
value: -0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.z
|
|
||||||
value: -0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3281663413899102263, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
propertyPath: m_Name
|
|
||||||
value: Bush02 (2)
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
m_RemovedComponents: []
|
|
||||||
m_RemovedGameObjects:
|
|
||||||
- {fileID: 2825027760425635220, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
m_AddedGameObjects: []
|
|
||||||
m_AddedComponents: []
|
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
--- !u!4 &6052826474412574974 stripped
|
|
||||||
Transform:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 5445778169910207642}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!1001 &5449257936156117678
|
--- !u!1001 &5449257936156117678
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -79,7 +79,7 @@ PrefabInstance:
|
|||||||
- target: {fileID: 3580758810857167321, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
- target: {fileID: 3580758810857167321, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
||||||
propertyPath: m_Sprite
|
propertyPath: m_Sprite
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 21300000, guid: aeefbca1d88d1ed4c9e8aa4d8d008383, type: 3}
|
objectReference: {fileID: 21300000, guid: 27e9d61a31b61aa40ad14805e0c184eb, type: 3}
|
||||||
- target: {fileID: 3580758810857167321, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
- target: {fileID: 3580758810857167321, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
||||||
propertyPath: m_WasSpriteAssigned
|
propertyPath: m_WasSpriteAssigned
|
||||||
value: 1
|
value: 1
|
||||||
@ -88,6 +88,34 @@ PrefabInstance:
|
|||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: Rockfall
|
value: Rockfall
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 7438534416270888028, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
||||||
|
propertyPath: m_LocalScale.x
|
||||||
|
value: 2
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 7438534416270888028, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
||||||
|
propertyPath: m_LocalScale.y
|
||||||
|
value: 1.5
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 7438534416270888028, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.z
|
||||||
|
value: -0.5
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 7438534416270888028, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.w
|
||||||
|
value: 0.9396927
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 7438534416270888028, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.x
|
||||||
|
value: 0.3420201
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 7438534416270888028, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
|
value: 40
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 7438534416270888028, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7986070582027999988, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
- target: {fileID: 7986070582027999988, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
||||||
propertyPath: m_LocalScale.x
|
propertyPath: m_LocalScale.x
|
||||||
value: 1.5
|
value: 1.5
|
||||||
@ -170,6 +198,7 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
<MaxHealthPoint>k__BackingField: 1
|
<MaxHealthPoint>k__BackingField: 1
|
||||||
<CurrentHealthPoint>k__BackingField: 0
|
<CurrentHealthPoint>k__BackingField: 0
|
||||||
|
<InvincibilityDuration>k__BackingField: 0
|
||||||
_dieSfxName:
|
_dieSfxName:
|
||||||
_dieParticle: {fileID: 19826678, guid: 660dfd0ccf26cbf489a7556236949683, type: 3}
|
_dieParticle: {fileID: 19826678, guid: 660dfd0ccf26cbf489a7556236949683, type: 3}
|
||||||
_sphereCollider: {fileID: 2971964863692897937}
|
_sphereCollider: {fileID: 2971964863692897937}
|
||||||
|
@ -209,6 +209,12 @@ AnimatorController:
|
|||||||
m_DefaultInt: 0
|
m_DefaultInt: 0
|
||||||
m_DefaultBool: 0
|
m_DefaultBool: 0
|
||||||
m_Controller: {fileID: 9100000}
|
m_Controller: {fileID: 9100000}
|
||||||
|
- m_Name: isMoving
|
||||||
|
m_Type: 4
|
||||||
|
m_DefaultFloat: 0
|
||||||
|
m_DefaultInt: 0
|
||||||
|
m_DefaultBool: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
m_AnimatorLayers:
|
m_AnimatorLayers:
|
||||||
- serializedVersion: 5
|
- serializedVersion: 5
|
||||||
m_Name: Base Layer
|
m_Name: Base Layer
|
||||||
|
Binary file not shown.
@ -14,7 +14,7 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
atlasAssets:
|
atlasAssets:
|
||||||
- {fileID: 11400000, guid: 1d31993ca2e2a364a99a30395604b3a8, type: 2}
|
- {fileID: 11400000, guid: 1d31993ca2e2a364a99a30395604b3a8, type: 2}
|
||||||
scale: 0.0005
|
scale: 0.001
|
||||||
skeletonJSON: {fileID: 4900000, guid: 8dde5b90ef9786042907ed6079c968f9, type: 3}
|
skeletonJSON: {fileID: 4900000, guid: 8dde5b90ef9786042907ed6079c968f9, type: 3}
|
||||||
isUpgradingBlendModeMaterials: 0
|
isUpgradingBlendModeMaterials: 0
|
||||||
blendModeMaterials:
|
blendModeMaterials:
|
||||||
|
@ -1041,7 +1041,7 @@
|
|||||||
"m_AllowMaterialOverride": false,
|
"m_AllowMaterialOverride": false,
|
||||||
"m_SurfaceType": 1,
|
"m_SurfaceType": 1,
|
||||||
"m_ZTestMode": 4,
|
"m_ZTestMode": 4,
|
||||||
"m_ZWriteControl": 0,
|
"m_ZWriteControl": 1,
|
||||||
"m_AlphaMode": 0,
|
"m_AlphaMode": 0,
|
||||||
"m_RenderFace": 0,
|
"m_RenderFace": 0,
|
||||||
"m_AlphaClip": true,
|
"m_AlphaClip": true,
|
||||||
@ -2009,10 +2009,10 @@
|
|||||||
"m_Expanded": true,
|
"m_Expanded": true,
|
||||||
"m_Position": {
|
"m_Position": {
|
||||||
"serializedVersion": "2",
|
"serializedVersion": "2",
|
||||||
"x": -523.9999389648438,
|
"x": -719.0000610351563,
|
||||||
"y": 117.00000762939453,
|
"y": 105.0000228881836,
|
||||||
"width": 207.99996948242188,
|
"width": 208.00006103515626,
|
||||||
"height": 301.9999694824219
|
"height": 302.0000305175781
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"m_Slots": [
|
"m_Slots": [
|
File diff suppressed because it is too large
Load Diff
@ -1,55 +0,0 @@
|
|||||||
Shader "Custom/NewSurfaceShader"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
_Color ("Color", Color) = (1,1,1,1)
|
|
||||||
_MainTex ("Albedo (RGB)", 2D) = "white" {}
|
|
||||||
_Glossiness ("Smoothness", Range(0,1)) = 0.5
|
|
||||||
_Metallic ("Metallic", Range(0,1)) = 0.0
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "RenderType"="Opaque" }
|
|
||||||
LOD 200
|
|
||||||
ZWrite Off
|
|
||||||
Blend SrcAlpha OneMinusSrcAlpha
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
// Physically based Standard lighting model, and enable shadows on all light types
|
|
||||||
#pragma surface surf Standard fullforwardshadows
|
|
||||||
|
|
||||||
// Use shader model 3.0 target, to get nicer looking lighting
|
|
||||||
#pragma target 3.0
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
|
|
||||||
struct Input
|
|
||||||
{
|
|
||||||
float2 uv_MainTex;
|
|
||||||
};
|
|
||||||
|
|
||||||
half _Glossiness;
|
|
||||||
half _Metallic;
|
|
||||||
fixed4 _Color;
|
|
||||||
|
|
||||||
// Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader.
|
|
||||||
// See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing.
|
|
||||||
// #pragma instancing_options assumeuniformscaling
|
|
||||||
UNITY_INSTANCING_BUFFER_START(Props)
|
|
||||||
// put more per-instance properties here
|
|
||||||
UNITY_INSTANCING_BUFFER_END(Props)
|
|
||||||
|
|
||||||
void surf (Input IN, inout SurfaceOutputStandard o)
|
|
||||||
{
|
|
||||||
// Albedo comes from a texture tinted by color
|
|
||||||
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
|
|
||||||
o.Albedo = c.rgb;
|
|
||||||
// Metallic and smoothness come from slider variables
|
|
||||||
o.Metallic = _Metallic;
|
|
||||||
o.Smoothness = _Glossiness;
|
|
||||||
o.Alpha = c.a;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
FallBack "Diffuse"
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 896fe9d890302c34a98ea991113fc991
|
|
||||||
ShaderImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
defaultTextures: []
|
|
||||||
nonModifiableTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
6853
Assets/09.Shaders/SpineCharacterLit.shadergraph
Normal file
6853
Assets/09.Shaders/SpineCharacterLit.shadergraph
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 95ddede70a8a6cc4dbd0849c7b976d1a
|
guid: 25b64c74397178e47a04794eb9a74d8f
|
||||||
ScriptedImporter:
|
ScriptedImporter:
|
||||||
internalIDToNameTable: []
|
internalIDToNameTable: []
|
||||||
externalObjects: {}
|
externalObjects: {}
|
@ -21,7 +21,7 @@ MonoBehaviour:
|
|||||||
startIndex:
|
startIndex:
|
||||||
variableStartIndex:
|
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
|
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
|
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":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.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
|
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
|
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
|
== 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
|
||||||
|
@ -21,7 +21,7 @@ MonoBehaviour:
|
|||||||
startIndex:
|
startIndex:
|
||||||
variableStartIndex:
|
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
|
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":2},"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
|
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
|
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
|
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
|
== 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
|
||||||
|
Loading…
Reference in New Issue
Block a user