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
|
||||
|
||||
// Components
|
||||
[field: Title("보스 컴포넌트")]
|
||||
[field: SerializeField]
|
||||
public Rigidbody Rigidbody { get; private set; }
|
||||
|
||||
@ -50,12 +51,6 @@ namespace BlueWater.Enemies.Bosses
|
||||
[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; }
|
||||
|
||||
@ -63,9 +58,6 @@ namespace BlueWater.Enemies.Bosses
|
||||
[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; }
|
||||
|
||||
@ -76,9 +68,9 @@ namespace BlueWater.Enemies.Bosses
|
||||
public BossSkillController BossSkillController { get; private set; }
|
||||
|
||||
[field: SerializeField]
|
||||
public Collider Target { get; private set; }
|
||||
public Collider Target { get; protected set; }
|
||||
|
||||
public IAstarAI IAstarAi;
|
||||
public IAstarAI AstarAi;
|
||||
|
||||
#endregion
|
||||
|
||||
@ -97,7 +89,7 @@ namespace BlueWater.Enemies.Bosses
|
||||
|
||||
protected virtual void Start()
|
||||
{
|
||||
BossHealthPoint.OnDead += HandleDie;
|
||||
BossHealthPoint.OnDead += Die;
|
||||
|
||||
Target = GameManager.Instance.CurrentCombatPlayer.GetComponent<Collider>();
|
||||
}
|
||||
@ -119,7 +111,7 @@ namespace BlueWater.Enemies.Bosses
|
||||
|
||||
protected virtual void OnDestroy()
|
||||
{
|
||||
BossHealthPoint.OnDead -= HandleDie;
|
||||
BossHealthPoint.OnDead -= Die;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@ -134,16 +126,13 @@ namespace BlueWater.Enemies.Bosses
|
||||
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>();
|
||||
AIMovement = GetComponent<AiMovement>();
|
||||
BossSkillController = GetComponent<BossSkillController>();
|
||||
|
||||
IAstarAi = GetComponent<IAstarAI>();
|
||||
AstarAi = GetComponent<IAstarAI>();
|
||||
}
|
||||
|
||||
#endregion
|
||||
@ -154,7 +143,7 @@ namespace BlueWater.Enemies.Bosses
|
||||
// Abstract methods
|
||||
public virtual void Initialize() { }
|
||||
|
||||
protected abstract void HandleDie();
|
||||
protected abstract void Die();
|
||||
|
||||
// Wrapping
|
||||
// BossHealthPoint
|
||||
@ -183,6 +172,10 @@ namespace BlueWater.Enemies.Bosses
|
||||
public LayerMask TargetLayer => BossData.TargetLayer;
|
||||
|
||||
// Methods
|
||||
public void ForceKillBoss()
|
||||
{
|
||||
BossHealthPoint.TakeDamage(100000);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ namespace BlueWater.Enemies.Bosses
|
||||
private CapsuleCollider _characterCollider;
|
||||
|
||||
[SerializeField]
|
||||
private SpriteRenderer _spriteRenderer;
|
||||
private Renderer _renderer;
|
||||
|
||||
[SerializeField]
|
||||
private Transform _particleInstantiateLocation;
|
||||
@ -62,12 +62,15 @@ namespace BlueWater.Enemies.Bosses
|
||||
// Events
|
||||
public event Action<int> OnHealthChanged;
|
||||
public event Action OnDead;
|
||||
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
// Unity events
|
||||
private void Start()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_flashWhiteWaitTime = new WaitForSeconds(InvincibilityDuration);
|
||||
_fieldBossHealthPointUi = CombatUiManager.Instance.FieldBossHealthPointUi;
|
||||
}
|
||||
@ -85,7 +88,7 @@ namespace BlueWater.Enemies.Bosses
|
||||
private void InitializeComponent()
|
||||
{
|
||||
_characterCollider = GetComponent<CapsuleCollider>();
|
||||
_spriteRenderer = GetComponentInChildren<SpriteRenderer>();
|
||||
_renderer = GetComponentInChildren<Renderer>();
|
||||
}
|
||||
|
||||
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);
|
||||
SetCurrentHealthPoint(changeHp);
|
||||
|
||||
if (_spriteRenderer.material.HasInt(_isHitHash))
|
||||
if (_renderer.material.HasInt(_isHitHash))
|
||||
{
|
||||
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
|
||||
}
|
||||
|
||||
// 죽었는지 체크
|
||||
if (changeHp == 0f)
|
||||
if (changeHp == 0)
|
||||
{
|
||||
Die();
|
||||
return;
|
||||
@ -172,9 +175,9 @@ namespace BlueWater.Enemies.Bosses
|
||||
|
||||
private IEnumerator FlashWhiteCoroutine()
|
||||
{
|
||||
_spriteRenderer.material.SetInt(_isHitHash, 1);
|
||||
_renderer.material.SetInt(_isHitHash, 1);
|
||||
yield return _flashWhiteWaitTime;
|
||||
_spriteRenderer.material.SetInt(_isHitHash, 0);
|
||||
_renderer.material.SetInt(_isHitHash, 0);
|
||||
|
||||
Utils.EndUniqueCoroutine(this, ref _flashWhiteCoroutine);
|
||||
}
|
||||
@ -184,5 +187,13 @@ namespace BlueWater.Enemies.Bosses
|
||||
IsInvincible = false;
|
||||
Utils.EndUniqueCoroutine(this, ref _damageIntervalCoroutine);
|
||||
}
|
||||
|
||||
public void HideFieldBossHealthPointUi()
|
||||
{
|
||||
if (_fieldBossHealthPointUi.gameObject.activeSelf)
|
||||
{
|
||||
_fieldBossHealthPointUi.SetActiveHpSlider(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -81,7 +81,6 @@ namespace BlueWater.Enemies.Bosses
|
||||
}
|
||||
|
||||
// Methods
|
||||
|
||||
public bool CanSkill(string skillName)
|
||||
{
|
||||
if (!_instantiateSkillDictionary.TryGetValue(skillName, out var skill))
|
||||
@ -100,6 +99,14 @@ namespace BlueWater.Enemies.Bosses
|
||||
OnEndSkill?.Invoke();
|
||||
IsSkillActive = false;
|
||||
}
|
||||
|
||||
public void StopAllCoroutine()
|
||||
{
|
||||
foreach (var element in _instantiateSkillDictionary.Values)
|
||||
{
|
||||
element.StopAllCoroutines();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Items;
|
||||
using BlueWater.Items;
|
||||
using BlueWater.Maps;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BlueWater.Enemies.Bosses.Rhinoceros
|
||||
@ -15,51 +15,14 @@ namespace BlueWater.Enemies.Bosses.Rhinoceros
|
||||
SkyFallSmash = 5
|
||||
}
|
||||
|
||||
public class Rhinoceros : Boss, ICurrentDirection
|
||||
public class Rhinoceros : AnimatorBoss
|
||||
{
|
||||
// Variables
|
||||
#region Variables
|
||||
|
||||
[field: Title("Rhinoceros 컴포넌트")]
|
||||
public RhinocerosData RhinocerosData { 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
|
||||
|
||||
@ -89,43 +52,28 @@ namespace BlueWater.Enemies.Bosses.Rhinoceros
|
||||
// Methods
|
||||
#region Methods
|
||||
|
||||
protected override void HandleDie()
|
||||
protected override async void Die()
|
||||
{
|
||||
BossSkillController.StopAllCoroutine();
|
||||
BehaviorTree.DisableBehavior();
|
||||
StopMove();
|
||||
|
||||
HitBoxCollider.enabled = false;
|
||||
if (Rigidbody)
|
||||
{
|
||||
Rigidbody.linearVelocity = Vector3.zero;
|
||||
Rigidbody.isKinematic = true;
|
||||
}
|
||||
|
||||
AnimationController.SetAnimationTrigger("isDead");
|
||||
|
||||
ItemManager.Instance.ItemDropRandomPosition(BossData.CharacterIdx, transform.position);
|
||||
BossMapController.ClearMap();
|
||||
}
|
||||
|
||||
private void FlipVisualLook()
|
||||
{
|
||||
var localScale = VisualLook.localScale;
|
||||
localScale.x = CurrentDirection.x switch
|
||||
while (AnimationController.GetCurrentAnimationNormalizedTime() <= 1f)
|
||||
{
|
||||
> 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;
|
||||
await Awaitable.NextFrameAsync();
|
||||
}
|
||||
|
||||
CurrentDirection = IAstarAi.velocity.normalized;
|
||||
IsMoving = IAstarAi.velocity != Vector3.zero || IAstarAi.velocity != Vector3.positiveInfinity;
|
||||
ItemManager.Instance.ItemDropRandomPosition(BossData.CharacterIdx, transform.position);
|
||||
Destroy(gameObject);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -1,161 +1,50 @@
|
||||
using System.Collections;
|
||||
using BehaviorDesigner.Runtime;
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Maps;
|
||||
using Sirenix.OdinInspector;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace BlueWater.Enemies.Bosses.SandMole
|
||||
{
|
||||
public class MiniSandMole : MonoBehaviour, ITarget, ICurrentDirection
|
||||
public class MiniSandMole : SandMole
|
||||
{
|
||||
// Variables
|
||||
#region Variables
|
||||
|
||||
// Components
|
||||
[field: SerializeField]
|
||||
public Rigidbody Rigidbody { get; private set; }
|
||||
|
||||
[field: SerializeField]
|
||||
public CapsuleCollider CharacterCollider { get; private set; }
|
||||
|
||||
[field: SerializeField]
|
||||
public BehaviorTree BehaviorTree { get; private set; }
|
||||
|
||||
[field: SerializeField]
|
||||
public Transform VisualLook { get; private set; }
|
||||
|
||||
[field: SerializeField]
|
||||
public SpriteRenderer SpriteRenderer { get; private set; }
|
||||
|
||||
[field: SerializeField]
|
||||
public Animator Animator { get; private set; }
|
||||
|
||||
[field: SerializeField]
|
||||
public BoxCollider HitBoxCollider { get; private set; }
|
||||
|
||||
// Classes
|
||||
[field: SerializeField, Required]
|
||||
public BossData BossData { get; private set; }
|
||||
|
||||
[field: SerializeField, Required]
|
||||
public AnimationController AnimationController { get; private set; }
|
||||
|
||||
[field: SerializeField, Required]
|
||||
public BossHealthPoint BossHealthPoint { get; private set; }
|
||||
|
||||
[field: SerializeField, Required]
|
||||
public BossSkillController BossSkillController { get; private set; }
|
||||
|
||||
[field: SerializeField, Required]
|
||||
public SandMoleStatus SandMoleStatus { get; private set; }
|
||||
|
||||
[field: SerializeField]
|
||||
public Collider Target { get; private set; }
|
||||
|
||||
[Title("효과")]
|
||||
[SerializeField]
|
||||
private float _spawnDissolveTime = 2f;
|
||||
|
||||
[SerializeField]
|
||||
private float _dieDissolveTime = 1f;
|
||||
|
||||
public BossMapController BossMapController { get; private set; }
|
||||
|
||||
private bool _isMoving;
|
||||
public bool IsMoving
|
||||
{
|
||||
get => _isMoving;
|
||||
set
|
||||
{
|
||||
_isMoving = value;
|
||||
AnimationController.SetAnimationParameter("isMoving", _isMoving);
|
||||
}
|
||||
}
|
||||
|
||||
private Vector3 _currentDirection = Vector3.right;
|
||||
public Vector3 CurrentDirection
|
||||
{
|
||||
get => _currentDirection;
|
||||
set
|
||||
{
|
||||
if (value == Vector3.zero) return;
|
||||
|
||||
_currentDirection = value;
|
||||
AnimationController.SetAnimationParameter("xDirection", _currentDirection.x);
|
||||
AnimationController.SetAnimationParameter("zDirection", _currentDirection.z);
|
||||
}
|
||||
}
|
||||
//[SerializeField]
|
||||
//private float _dieDissolveTime = 1f;
|
||||
|
||||
// Hashes
|
||||
private static readonly int _dissolveValueHash = Shader.PropertyToID("_DissolveValue");
|
||||
|
||||
#endregion
|
||||
|
||||
// Unity events
|
||||
#region Unity events
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
InitializeComponents();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
FlipVisualLook();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// Initialize methods
|
||||
#region Initialize methods
|
||||
|
||||
[Button("컴포넌트 초기화")]
|
||||
private void InitializeComponents()
|
||||
public override async void Initialize()
|
||||
{
|
||||
Rigidbody = GetComponent<Rigidbody>();
|
||||
CharacterCollider = GetComponent<CapsuleCollider>();
|
||||
BehaviorTree = GetComponent<BehaviorTree>();
|
||||
VisualLook = transform.Find("VisualLook");
|
||||
SpriteRenderer = VisualLook.GetComponent<SpriteRenderer>();
|
||||
Animator = VisualLook.GetComponent<Animator>();
|
||||
HitBoxCollider = transform.Find("HitBox").GetComponent<BoxCollider>();
|
||||
|
||||
AnimationController = GetComponent<AnimationController>();
|
||||
BossHealthPoint = GetComponent<BossHealthPoint>();
|
||||
BossSkillController = GetComponent<BossSkillController>();
|
||||
|
||||
SandMoleStatus = GetComponent<SandMoleStatus>();
|
||||
BossMapController = MapManager.Instance.SandMoleMapController;
|
||||
}
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
StartCoroutine(InitializeEffectCoroutine());
|
||||
}
|
||||
|
||||
private IEnumerator InitializeEffectCoroutine()
|
||||
{
|
||||
Target = GameManager.Instance.CurrentCombatPlayer.GetComponent<Collider>();
|
||||
|
||||
BossHealthPoint.Initialize(false, BossData.MaxHealthPoint,
|
||||
BossData.DisplayName, BossMapController.ParticleInstanceLocation);
|
||||
BossHealthPoint.OnDead += HandleDie;
|
||||
BossData.DisplayName, SandMoleMapController.ParticleInstanceLocation);
|
||||
BossSkillController.Initialize(BossData.SkillDataList);
|
||||
|
||||
SpriteRenderer.material.SetFloat(_dissolveValueHash, 0f);
|
||||
SetMoveSpeed(SandMoleData.MoveSpeed);
|
||||
StopMove();
|
||||
|
||||
MeshRenderer.material.SetFloat(_dissolveValueHash, 0f);
|
||||
var elapsedTime = 0f;
|
||||
while (elapsedTime <= _spawnDissolveTime)
|
||||
{
|
||||
var value = Mathf.Lerp(0f, 1f, elapsedTime / _spawnDissolveTime);
|
||||
SpriteRenderer.material.SetFloat(_dissolveValueHash, value);
|
||||
MeshRenderer.material.SetFloat(_dissolveValueHash, value);
|
||||
elapsedTime += Time.deltaTime;
|
||||
|
||||
yield return null;
|
||||
await Awaitable.NextFrameAsync();
|
||||
}
|
||||
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();
|
||||
}
|
||||
|
||||
@ -164,45 +53,25 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
// 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)
|
||||
{
|
||||
Rigidbody.linearVelocity = Vector3.zero;
|
||||
Rigidbody.isKinematic = true;
|
||||
}
|
||||
|
||||
AnimationController.SetAnimationTrigger("isDead");
|
||||
SpineController.SetSkin(SandMoleSkin.Idle.ToString());
|
||||
var dieTrack = SpineController.PlayAnimation(SandMoleAnimation.Die.ToString(), false);
|
||||
|
||||
SpriteRenderer.material.SetFloat(_dissolveValueHash, 0f);
|
||||
var elapsedTime = 0f;
|
||||
while (elapsedTime <= _dieDissolveTime)
|
||||
{
|
||||
var value = Mathf.Lerp(1f, 0f, elapsedTime / _dieDissolveTime);
|
||||
SpriteRenderer.material.SetFloat(_dissolveValueHash, value);
|
||||
elapsedTime += Time.deltaTime;
|
||||
|
||||
yield return null;
|
||||
}
|
||||
SpriteRenderer.material.SetFloat(_dissolveValueHash, 0f);
|
||||
await SpineController.WaitForAnimationCompletion(dieTrack);
|
||||
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
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using BlueWater.Interfaces;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BlueWater.Items;
|
||||
using BlueWater.Maps;
|
||||
using Sirenix.OdinInspector;
|
||||
@ -17,54 +16,39 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
SpikeBarrage
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class SummonMiniSandMole
|
||||
public enum SandMoleSkin
|
||||
{
|
||||
[field: SerializeField]
|
||||
public float HealthPercentage { get; private set; }
|
||||
|
||||
[field: SerializeField]
|
||||
public bool SummonTrigger { get; set; }
|
||||
Idle = 0,
|
||||
Normal,
|
||||
Spin
|
||||
}
|
||||
|
||||
public enum SandMoleAnimation
|
||||
{
|
||||
None = 0,
|
||||
Die,
|
||||
Dig,
|
||||
Idle,
|
||||
Roar,
|
||||
Spin,
|
||||
SpinReady,
|
||||
SpinReady2,
|
||||
Stun
|
||||
}
|
||||
|
||||
public class SandMole : Boss, ICurrentDirection
|
||||
public class SandMole : SpineBoss
|
||||
{
|
||||
// Variables
|
||||
#region Variables
|
||||
|
||||
[field: Title("SandMole 컴포넌트")]
|
||||
[field: SerializeField, Required]
|
||||
public SandMoleStatus SandMoleStatus { get; private set; }
|
||||
|
||||
[SerializeField]
|
||||
private List<SummonMiniSandMole> _summonMiniSandMoles;
|
||||
private List<SummonMiniSandMole> _summonMiniSandMoles;
|
||||
|
||||
public SandMoleData SandMoleData { 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
|
||||
|
||||
@ -97,10 +81,14 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
|
||||
SandMoleStatus = GetComponent<SandMoleStatus>();
|
||||
SandMoleData = BossData as SandMoleData;
|
||||
if (SandMoleData != null)
|
||||
{
|
||||
_summonMiniSandMoles = SandMoleData.SummonMiniSandMoles.ConvertAll(mole => new SummonMiniSandMole(mole));
|
||||
}
|
||||
SandMoleMapController = MapManager.Instance.SandMoleMapController;
|
||||
}
|
||||
|
||||
public override void Initialize()
|
||||
public override async void Initialize()
|
||||
{
|
||||
BossHealthPoint.Initialize(true, SandMoleData.MaxHealthPoint,
|
||||
SandMoleData.DisplayName, SandMoleMapController.ParticleInstanceLocation);
|
||||
@ -108,6 +96,11 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
BossSkillController.Initialize(BossData.SkillDataList);
|
||||
SetMoveSpeed(SandMoleData.MoveSpeed);
|
||||
StopMove();
|
||||
|
||||
SpineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
var roarTrack = SpineController.PlayAnimation(SandMoleAnimation.Roar.ToString(), false);
|
||||
|
||||
await SpineController.WaitForAnimationCompletion(roarTrack);
|
||||
BehaviorTree.EnableBehavior();
|
||||
}
|
||||
|
||||
@ -116,24 +109,34 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
// Methods
|
||||
#region Methods
|
||||
|
||||
protected override void HandleDie()
|
||||
protected override async void Die()
|
||||
{
|
||||
BossSkillController.StopAllCoroutine();
|
||||
BehaviorTree.DisableBehavior();
|
||||
StopMove();
|
||||
|
||||
HitBoxCollider.enabled = false;
|
||||
if (Rigidbody)
|
||||
{
|
||||
Rigidbody.linearVelocity = Vector3.zero;
|
||||
Rigidbody.isKinematic = true;
|
||||
}
|
||||
|
||||
AnimationController.SetAnimationTrigger("isDead");
|
||||
ItemManager.Instance.ItemDropRandomPosition(BossData.CharacterIdx, transform.position);
|
||||
SpineController.SetSkin(SandMoleSkin.Idle.ToString());
|
||||
var dieTrack = SpineController.PlayAnimation(SandMoleAnimation.Die.ToString(), false);
|
||||
SandMoleMapController.ClearMap();
|
||||
|
||||
await SpineController.WaitForAnimationCompletion(dieTrack);
|
||||
ItemManager.Instance.ItemDropRandomPosition(BossData.CharacterIdx, transform.position);
|
||||
Destroy(gameObject);
|
||||
}
|
||||
|
||||
private void SummonMiniSandMole(int currentHp)
|
||||
{
|
||||
if (currentHp == 0) return;
|
||||
|
||||
var currentHealthPercentage = (float)currentHp / BossData.MaxHealthPoint * 100f;
|
||||
|
||||
|
||||
foreach (var element in _summonMiniSandMoles)
|
||||
{
|
||||
if (currentHealthPercentage > element.HealthPercentage || element.SummonTrigger) continue;
|
||||
@ -142,30 +145,6 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
element.SummonTrigger = true;
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using UnityEngine;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BlueWater.Enemies.Bosses.SandMole
|
||||
{
|
||||
@ -7,5 +8,8 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
{
|
||||
[field: SerializeField]
|
||||
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.Players;
|
||||
using BlueWater.Utility;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
@ -9,6 +11,9 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
{
|
||||
// Variables
|
||||
#region Variables
|
||||
|
||||
[SerializeField]
|
||||
private SpineController _spineController;
|
||||
|
||||
// Stun
|
||||
[Title("기절 효과")]
|
||||
@ -21,7 +26,18 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
private Coroutine _stunCoolDownCoroutine;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
InitializeComponents();
|
||||
}
|
||||
|
||||
[Button("컴포넌트 초기화")]
|
||||
private void InitializeComponents()
|
||||
{
|
||||
_spineController = GetComponent<SpineController>();
|
||||
}
|
||||
|
||||
// Stun
|
||||
public bool CanStun() => IsStunEnabled;
|
||||
|
||||
@ -29,6 +45,8 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
{
|
||||
if (!CanStun()) return;
|
||||
|
||||
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
_spineController.PlayAnimation(SandMoleAnimation.Stun.ToString(), false);
|
||||
IsStunned = true;
|
||||
if (_stunParticle)
|
||||
{
|
||||
@ -40,6 +58,9 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
|
||||
public void EndStun()
|
||||
{
|
||||
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
_spineController.PlayAnimation(SandMoleAnimation.Idle.ToString(), false);
|
||||
|
||||
Utils.EndUniqueCoroutine(this, ref _stunCoolDownCoroutine);
|
||||
_stunParticle.Stop();
|
||||
_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.Maps;
|
||||
using BlueWater.Uis;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BlueWater.Enemies.Bosses.TitanSlime
|
||||
{
|
||||
public class TitanSlime : Boss
|
||||
public class TitanSlime : AnimatorBoss
|
||||
{
|
||||
// Variables
|
||||
#region Variables
|
||||
|
||||
[Title("TitanSlime 컴포넌트")]
|
||||
[SerializeField]
|
||||
private SpriteRenderer _rabbit;
|
||||
|
||||
public TitanSlimeData TitanSlimeData { get; private set; }
|
||||
|
||||
[field: SerializeField]
|
||||
public TitanSlimeState TitanSlimeState { get; private set; }
|
||||
|
||||
private TitanSlimeMapController _titanSlimeMapController;
|
||||
@ -56,17 +60,17 @@ namespace BlueWater.Enemies.Bosses.TitanSlime
|
||||
// Methods
|
||||
#region Methods
|
||||
|
||||
protected override void HandleDie()
|
||||
protected override void Die()
|
||||
{
|
||||
BossSkillController.StopAllCoroutine();
|
||||
BehaviorTree.DisableBehavior();
|
||||
|
||||
HitBoxCollider.enabled = false;
|
||||
if (Rigidbody)
|
||||
{
|
||||
Rigidbody.linearVelocity = Vector3.zero;
|
||||
Rigidbody.isKinematic = true;
|
||||
}
|
||||
|
||||
if (TitanSlimeState.HasRabbit)
|
||||
{
|
||||
CombatUiManager.Instance.FieldBossHealthPointUi.SetActiveHpSlider(false);
|
||||
}
|
||||
|
||||
if (TitanSlimeState.Level == 4 && TitanSlimeState.HasRabbit)
|
||||
{
|
||||
|
@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Maps;
|
||||
using BlueWater.Uis;
|
||||
using BlueWater.Utility;
|
||||
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)
|
||||
{
|
||||
if (context.performed)
|
||||
|
@ -172,6 +172,9 @@ namespace BlueWater.Players.Combat
|
||||
CombatUiManager.Instance.GameOverPopupUi.Open(CombatUiManager.Instance.PopupUiList);
|
||||
}
|
||||
|
||||
public void SetCurrentHealthPoint(int value) => PlayerHealthPoint.SetCurrentHealthPoint(value);
|
||||
public void SetCurrentHealthPointMax() => PlayerHealthPoint.SetCurrentHealthPoint(PlayerHealthPoint.MaxHealthPoint);
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Sirenix.OdinInspector;
|
||||
using Spine;
|
||||
using Spine.Unity;
|
||||
using UnityEngine;
|
||||
using AnimationState = Spine.AnimationState;
|
||||
@ -48,18 +49,30 @@ namespace BlueWater.Players
|
||||
// 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))
|
||||
{
|
||||
Debug.LogError($"{animationName}의 애니메이션은 존재하지 않습니다.");
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
_animationState.TimeScale = speed;
|
||||
_animationState.SetAnimation(0, animationName, isLoopActive);
|
||||
_animationState.TimeScale = isReverse ? -Mathf.Abs(speed) : Mathf.Abs(speed);
|
||||
var trackEntry = _animationState.SetAnimation(0, animationName, isLoopActive);
|
||||
|
||||
if (isReverse)
|
||||
{
|
||||
trackEntry.TrackTime = trackEntry.AnimationEnd;
|
||||
}
|
||||
|
||||
return trackEntry;
|
||||
}
|
||||
|
||||
public void SetSkin(string skinName)
|
||||
@ -77,68 +90,24 @@ namespace BlueWater.Players
|
||||
_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;
|
||||
|
||||
var currentAnimation = _animationState.GetCurrent(trackIndex)?.Animation;
|
||||
return currentAnimation != null && currentAnimation.Name == animationName;
|
||||
if (isReverse)
|
||||
{
|
||||
await AwaitUntil(() => trackEntry.TrackTime <= 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
await AwaitUntil(() => trackEntry.IsComplete);
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerator WaitForAnimationToRun(string animationName, Action<bool> onSuccess, float timeout = 2f)
|
||||
public async Awaitable AwaitUntil(Func<bool> condition)
|
||||
{
|
||||
var elapsedTime = 0f;
|
||||
while (!IsComparingCurrentAnimation(animationName))
|
||||
while (!condition())
|
||||
{
|
||||
elapsedTime += Time.deltaTime;
|
||||
yield return null;
|
||||
if (elapsedTime > timeout)
|
||||
{
|
||||
Debug.Log("Timeout waiting for animation state: " + animationName);
|
||||
onSuccess?.Invoke(false);
|
||||
yield break;
|
||||
}
|
||||
await Awaitable.NextFrameAsync();
|
||||
}
|
||||
onSuccess?.Invoke(true);
|
||||
}
|
||||
|
||||
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;
|
||||
_animationState.TimeScale = animationLength / targetDuration;
|
||||
}
|
||||
}
|
||||
|
||||
public float GetCurrentAnimationNormalizedTime(int trackIndex = 0)
|
||||
{
|
||||
if (!_skeletonAnimation || _animationState == null) return 0f;
|
||||
|
||||
var currentTrackEntry = _animationState.GetCurrent(trackIndex);
|
||||
if (currentTrackEntry != null)
|
||||
{
|
||||
return currentTrackEntry.TrackTime / currentTrackEntry.Animation.Duration;
|
||||
}
|
||||
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
|
||||
|
@ -129,7 +129,7 @@ namespace BlueWater.Maps
|
||||
elapsedTime += Time.unscaledDeltaTime;
|
||||
yield return null;
|
||||
}
|
||||
DestroyAllEnemies();
|
||||
DestroyAllEnemiesExceptBoss();
|
||||
VisualFeedbackManager.Instance.SetBaseTimeScale(1f);
|
||||
|
||||
elapsedTime = 0f;
|
||||
|
@ -63,23 +63,14 @@ namespace BlueWater.Maps
|
||||
|
||||
private IEnumerator BossMapTriggerCoroutine()
|
||||
{
|
||||
var interactionAnimationName = BossMapTriggerAnimation.Animation.ToString();
|
||||
_spineController.PlayAnimation(interactionAnimationName, false);
|
||||
|
||||
var animationStarted = false;
|
||||
yield return StartCoroutine(_spineController.WaitForAnimationToRun(interactionAnimationName,
|
||||
success => animationStarted = success));
|
||||
|
||||
if (!animationStarted)
|
||||
var animationTrack = _spineController.PlayAnimation( BossMapTriggerAnimation.Animation.ToString(), false);
|
||||
if (animationTrack == null)
|
||||
{
|
||||
Debug.LogError("BossMapTriggerCoroutine animationTrack is null error");
|
||||
yield break;
|
||||
}
|
||||
|
||||
while (_spineController.IsComparingCurrentAnimation(interactionAnimationName)
|
||||
&& _spineController.GetCurrentAnimationNormalizedTime() <= 1f)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
yield return new WaitUntil(() => animationTrack.IsComplete);
|
||||
|
||||
gameObject.SetActive(false);
|
||||
OnInteractionActive?.Invoke();
|
||||
|
@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using BlueWater.Enemies.Bosses;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
@ -92,8 +93,31 @@ namespace BlueWater.Maps
|
||||
|
||||
public void DestroyAllEnemies()
|
||||
{
|
||||
var temps = new List<Transform>();
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -101,13 +125,36 @@ namespace BlueWater.Maps
|
||||
public void DestroyAllObjects()
|
||||
{
|
||||
DestroyAllEnemies();
|
||||
|
||||
|
||||
var temps = new List<Transform>();
|
||||
foreach (Transform element in ParticleInstanceLocation)
|
||||
{
|
||||
temps.Add(element);
|
||||
}
|
||||
|
||||
foreach (Transform element in temps)
|
||||
{
|
||||
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()
|
||||
{
|
||||
if (!GameManager.Instance.CurrentCombatPlayer) return;
|
||||
|
@ -70,9 +70,9 @@ namespace BlueWater.Maps
|
||||
AudioManager.Instance.StopBgm();
|
||||
}
|
||||
|
||||
public void CurrentMapRestart()
|
||||
public void RestartCurrentMap()
|
||||
{
|
||||
if (_currentMapController != null)
|
||||
if (_currentMapController)
|
||||
{
|
||||
_currentMapController.ResetMap();
|
||||
}
|
||||
@ -83,7 +83,7 @@ namespace BlueWater.Maps
|
||||
public void MoveSelectStage(int stage)
|
||||
{
|
||||
_currentMapController = GetMapController(DataManager.Instance.CurrentSaveStage);
|
||||
if (_currentMapController != null)
|
||||
if (_currentMapController)
|
||||
{
|
||||
_currentMapController.ResetMap();
|
||||
}
|
||||
@ -92,5 +92,15 @@ namespace BlueWater.Maps
|
||||
var moveMapController = GetMapController((SaveStage)stage);
|
||||
moveMapController.MovePlayer();
|
||||
}
|
||||
|
||||
public void ForceKillCurrentBoss()
|
||||
{
|
||||
_currentMapController = GetMapController(DataManager.Instance.CurrentSaveStage);
|
||||
if (!_currentMapController)
|
||||
{
|
||||
return;
|
||||
}
|
||||
_currentMapController.ForceKillBoss();
|
||||
}
|
||||
}
|
||||
}
|
@ -766,18 +766,27 @@
|
||||
"initialStateCheck": false
|
||||
},
|
||||
{
|
||||
"name": "OpenMenu",
|
||||
"name": "OpenDevelopMenu",
|
||||
"type": "Button",
|
||||
"id": "d7467711-57a8-4a31-a2ba-d14040cff3e7",
|
||||
"id": "a5d9ffcb-5c4f-4c6d-8335-9060bbea120a",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
},
|
||||
{
|
||||
"name": "OpenDevelopMenu",
|
||||
"name": "ForceKillBoss",
|
||||
"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": "",
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
@ -926,6 +935,17 @@
|
||||
"isComposite": 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": "",
|
||||
"id": "46591849-5c1e-4b83-b490-0a4ad29ed80f",
|
||||
|
@ -18,6 +18,6 @@ MonoBehaviour:
|
||||
- <BossType>k__BackingField: 2
|
||||
<Prefab>k__BackingField: {fileID: 4623786526972472839, guid: b3fede52cd9ea854fab2ad603b53dd77, type: 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
|
||||
<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: 6831508064570746451, guid: 4c632b5316acd35479cf545bc4752b7f, type: 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
|
||||
<Description>k__BackingField:
|
||||
<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
|
||||
<Name>k__BackingField: "\uD558\uD2B8 \uD55C \uAC1C"
|
||||
<Category>k__BackingField: 5
|
||||
@ -417,4 +417,4 @@ MonoBehaviour:
|
||||
<Weight>k__BackingField: 0
|
||||
<Description>k__BackingField:
|
||||
<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.Generic;
|
||||
using System.Linq;
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Maps;
|
||||
using BlueWater.Players;
|
||||
using BlueWater.Utility;
|
||||
using UnityEngine;
|
||||
using Random = UnityEngine.Random;
|
||||
@ -12,25 +14,22 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
public class GateOfSpikes : BaseSkill
|
||||
{
|
||||
private GateOfSpikesData _gateOfSpikesData;
|
||||
private SandMole _sandMole;
|
||||
private AnimationController _animationController;
|
||||
private SpineController _spineController;
|
||||
private Collider _userCollider;
|
||||
private Collider _targetCollider;
|
||||
private ICurrentDirection _currentDirection;
|
||||
private Transform _particleInstantiateLocation;
|
||||
|
||||
private List<Vector3> _spikes;
|
||||
|
||||
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;
|
||||
_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);
|
||||
|
||||
base.BasicSetting();
|
||||
@ -44,27 +43,26 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
private IEnumerator SkillCoroutine(params Action[] actions)
|
||||
{
|
||||
EnableSkill = false;
|
||||
_sandMole.StopMove();
|
||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.GateOfSpikes);
|
||||
|
||||
var animationStarted = false;
|
||||
yield return StartCoroutine(_animationController.WaitForAnimationToRun("GateOfSpikes",
|
||||
success => animationStarted = success));
|
||||
|
||||
if (!animationStarted || !SkillUser || !_userCollider)
|
||||
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
var roarTrack = _spineController.PlayAnimation(SandMoleAnimation.Roar.ToString(), false);
|
||||
if (roarTrack == null)
|
||||
{
|
||||
EndSkill(0, actions[0]);
|
||||
yield break;
|
||||
}
|
||||
|
||||
yield return new WaitUntil(() => roarTrack.IsComplete);
|
||||
|
||||
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
_spineController.PlayAnimation(SandMoleAnimation.Idle.ToString(), true);
|
||||
|
||||
IsUsingSkill = true;
|
||||
_animationController.ResetAnimationSpeed();
|
||||
var startPosition = SkillUser.transform.position;
|
||||
var targetCenterPosition = _targetCollider.transform.position;
|
||||
startPosition.y = targetCenterPosition.y;
|
||||
var targetVector = targetCenterPosition - startPosition;
|
||||
var targetDirection = targetVector.normalized;
|
||||
_sandMole.CurrentDirection = targetDirection;
|
||||
_currentDirection.CurrentDirection = targetDirection;
|
||||
var spikeSpawnPosition = _userCollider.bounds.center;
|
||||
var validAttackPositions = new List<Vector3>();
|
||||
|
||||
@ -97,7 +95,8 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
{
|
||||
Utils.EndUniqueCoroutine(this, ref SkillCoroutineInstance);
|
||||
|
||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.None);
|
||||
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
_spineController.PlayAnimation(SandMoleAnimation.Idle.ToString(), true);
|
||||
action?.Invoke();
|
||||
|
||||
Utils.StartUniqueCoroutine(this, ref CooldownCoroutineInstance,Utils.CoolDownCoroutine(cooldown, EndCooldown));
|
||||
|
@ -1,6 +1,8 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Maps;
|
||||
using BlueWater.Players;
|
||||
using BlueWater.Utility;
|
||||
using UnityEngine;
|
||||
|
||||
@ -9,21 +11,18 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
public class MultiThrowSpikes : BaseSkill
|
||||
{
|
||||
private MultiThrowSpikesData _multiThrowSpikesData;
|
||||
private SandMole _sandMole;
|
||||
private AnimationController _animationController;
|
||||
private SpineController _spineController;
|
||||
private Collider _targetCollider;
|
||||
private ICurrentDirection _currentDirection;
|
||||
private Transform _particleInstantiateLocation;
|
||||
|
||||
protected override void BasicSetting()
|
||||
{
|
||||
if (!_sandMole)
|
||||
{
|
||||
_sandMole = SkillUser.GetComponent<SandMole>();
|
||||
_animationController = _sandMole.AnimationController;
|
||||
_targetCollider = _sandMole.Target;
|
||||
_particleInstantiateLocation = MapManager.Instance.SandMoleMapController.ParticleInstanceLocation;
|
||||
}
|
||||
_multiThrowSpikesData = (MultiThrowSpikesData)SkillData;
|
||||
_spineController = SkillUser.GetComponent<SpineController>();
|
||||
_targetCollider = SkillUser.GetComponent<ITarget>().Target;
|
||||
_currentDirection = SkillUser.GetComponent<ICurrentDirection>();
|
||||
_particleInstantiateLocation = MapManager.Instance.SandMoleMapController.ParticleInstanceLocation;
|
||||
|
||||
base.BasicSetting();
|
||||
}
|
||||
@ -36,21 +35,25 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
private IEnumerator SkillCoroutine(params Action[] actions)
|
||||
{
|
||||
EnableSkill = false;
|
||||
_sandMole.StopMove();
|
||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.MultiThrowSpikes);
|
||||
_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 StartCoroutine(_animationController.WaitForAnimationToRun("MultiThrowSpikes",
|
||||
success => animationStarted = success));
|
||||
|
||||
if (!animationStarted || !SkillUser)
|
||||
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;
|
||||
}
|
||||
|
||||
IsUsingSkill = true;
|
||||
_animationController.ResetAnimationSpeed();
|
||||
var startPosition = SkillUser.transform.position;
|
||||
var waitForSeconds = new WaitForSeconds(_multiThrowSpikesData.SpikeInterval);
|
||||
for (var i = 0; i < _multiThrowSpikesData.SpikeCount; i++)
|
||||
@ -65,7 +68,7 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
startPosition.y = targetCenterPosition.y;
|
||||
var targetVector = targetCenterPosition - startPosition;
|
||||
var targetDirection = targetVector.normalized;
|
||||
_sandMole.CurrentDirection = targetDirection;
|
||||
_currentDirection.CurrentDirection = targetDirection;
|
||||
var rotation = Quaternion.LookRotation(targetDirection);
|
||||
var projectile = Instantiate(_multiThrowSpikesData.SpikePrefab, startPosition, rotation,
|
||||
_particleInstantiateLocation).GetComponent<ProjectileController>();
|
||||
@ -82,7 +85,8 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
{
|
||||
Utils.EndUniqueCoroutine(this, ref SkillCoroutineInstance);
|
||||
|
||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.None);
|
||||
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
_spineController.PlayAnimation(SandMoleAnimation.Idle.ToString(), true);
|
||||
action?.Invoke();
|
||||
|
||||
Utils.StartUniqueCoroutine(this, ref CooldownCoroutineInstance,Utils.CoolDownCoroutine(cooldown, EndCooldown));
|
||||
|
@ -2,6 +2,7 @@ using System;
|
||||
using System.Collections;
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Maps;
|
||||
using BlueWater.Players;
|
||||
using BlueWater.Utility;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
@ -16,18 +17,18 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
private bool _isDrawingGizmo = true;
|
||||
|
||||
private SingleRollData _singleRollData;
|
||||
private AnimationController _animationController;
|
||||
private SpineController _spineController;
|
||||
private Rigidbody _userRigidbody;
|
||||
private CapsuleCollider _userCollider;
|
||||
private Collider _targetCollider;
|
||||
private ICurrentDirection _iCurrentDirection;
|
||||
private BossMapController _sandMoleMapController;
|
||||
private Transform _particleInstantiateLocation;
|
||||
private float _colliderRadius;
|
||||
private float _attackRadius;
|
||||
|
||||
private void OnDrawGizmos()
|
||||
{
|
||||
if (!_isDrawingGizmo || !IsUsingSkill) return;
|
||||
if (!_isDrawingGizmo || !IsUsingSkill || !SkillUser) return;
|
||||
|
||||
Gizmos.color = Color.red;
|
||||
Gizmos.DrawWireSphere(SkillUser.transform.position, _attackRadius);
|
||||
@ -35,16 +36,16 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
|
||||
protected override void BasicSetting()
|
||||
{
|
||||
_animationController = SkillUser.GetComponent<AnimationController>();
|
||||
_singleRollData = (SingleRollData)SkillData;
|
||||
_spineController = SkillUser.GetComponent<SpineController>();
|
||||
_userRigidbody = SkillUser.GetComponent<Rigidbody>();
|
||||
_userCollider = SkillUser.GetComponent<CapsuleCollider>();
|
||||
_targetCollider = SkillUser.GetComponent<ITarget>().Target;
|
||||
_sandMoleMapController = MapManager.Instance.SandMoleMapController;
|
||||
_particleInstantiateLocation = MapManager.Instance.SandMoleMapController.ParticleInstanceLocation;
|
||||
_iCurrentDirection = SkillUser.GetComponent<ICurrentDirection>();
|
||||
|
||||
_colliderRadius = _userCollider.radius * SkillUser.transform.localScale.x;
|
||||
_attackRadius = _colliderRadius * 0.5f;
|
||||
_singleRollData = (SingleRollData)SkillData;
|
||||
HitColliders = new Collider[4];
|
||||
|
||||
base.BasicSetting();
|
||||
@ -58,20 +59,25 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
private IEnumerator SkillCoroutine(params Action[] actions)
|
||||
{
|
||||
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 StartCoroutine(_animationController.WaitForAnimationToRun("SingleRoll",
|
||||
success => animationStarted = success));
|
||||
|
||||
if (!animationStarted || !SkillUser)
|
||||
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;
|
||||
}
|
||||
|
||||
IsUsingSkill = true;
|
||||
_animationController.ResetAnimationSpeed();
|
||||
var startPosition = SkillUser.transform.position;
|
||||
var targetPosition = _targetCollider.transform.position;
|
||||
targetPosition.y = startPosition.y;
|
||||
@ -184,7 +190,7 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
+ -targetDirection * _singleRollData.RockfallInterval * i
|
||||
+ Vector3.up * _singleRollData.RockfallSpawnHeight;
|
||||
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);
|
||||
|
||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.None);
|
||||
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
_spineController.PlayAnimation(SandMoleAnimation.Idle.ToString(), true);
|
||||
action?.Invoke();
|
||||
IsUsingSkill = false;
|
||||
|
||||
|
@ -2,6 +2,7 @@ using System;
|
||||
using System.Collections;
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Maps;
|
||||
using BlueWater.Players;
|
||||
using BlueWater.Utility;
|
||||
using UnityEngine;
|
||||
|
||||
@ -10,30 +11,28 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
public class SpikeBarrage : BaseSkill
|
||||
{
|
||||
private SpikeBarrageData _spikeBarrageData;
|
||||
private AnimationController _animationController;
|
||||
private SpineController _spineController;
|
||||
private AiMovement _aiMovement;
|
||||
private Rigidbody _userRigidbody;
|
||||
private Collider _userCollider;
|
||||
private CapsuleCollider _userCollider;
|
||||
private BoxCollider _userHitBox;
|
||||
private Collider _targetCollider;
|
||||
private SpriteRenderer _userSpriteRenderer;
|
||||
private SandMoleMapController _sandMoleMapController;
|
||||
private Transform _particleInstantiateLocation;
|
||||
private Transform _centerSpawnTransform;
|
||||
|
||||
private static readonly int _dissolveValueHash = Shader.PropertyToID("_DissolveValue");
|
||||
|
||||
protected override void BasicSetting()
|
||||
{
|
||||
_animationController = SkillUser.GetComponent<AnimationController>();
|
||||
_spikeBarrageData = (SpikeBarrageData)SkillData;
|
||||
_spineController = SkillUser.GetComponent<SpineController>();
|
||||
_aiMovement = SkillUser.GetComponent<AiMovement>();
|
||||
_userRigidbody = SkillUser.GetComponent<Rigidbody>();
|
||||
_userCollider = SkillUser.GetComponent<CapsuleCollider>();
|
||||
_userHitBox = SkillUser.GetComponentInChildren<BoxCollider>();
|
||||
_targetCollider = SkillUser.GetComponent<ITarget>().Target;
|
||||
_userSpriteRenderer = SkillUser.GetComponentInChildren<SpriteRenderer>();
|
||||
_sandMoleMapController = MapManager.Instance.SandMoleMapController;
|
||||
_particleInstantiateLocation = _sandMoleMapController.ParticleInstanceLocation;
|
||||
_centerSpawnTransform = _sandMoleMapController.CenterSpawnTransform;
|
||||
_spikeBarrageData = (SpikeBarrageData)SkillData;
|
||||
|
||||
base.BasicSetting();
|
||||
}
|
||||
@ -46,62 +45,48 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
private IEnumerator SkillCoroutine(params Action[] actions)
|
||||
{
|
||||
EnableSkill = false;
|
||||
_aiMovement.StopMove();
|
||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.SpikeBarrage);
|
||||
|
||||
var animationStarted = false;
|
||||
yield return StartCoroutine(_animationController.WaitForAnimationToRun("SpikeBarrage",
|
||||
success => animationStarted = success));
|
||||
|
||||
if (!animationStarted || !SkillUser)
|
||||
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
var digTrack = _spineController.PlayAnimation(SandMoleAnimation.Dig.ToString(), false);
|
||||
if (digTrack == null || !SkillUser)
|
||||
{
|
||||
EndSkill(0, actions[0]);
|
||||
yield break;
|
||||
}
|
||||
|
||||
yield return new WaitUntil(() => digTrack.IsComplete);
|
||||
|
||||
_userRigidbody.isKinematic = true;
|
||||
_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);
|
||||
_userSpriteRenderer.material.SetFloat(_dissolveValueHash, value);
|
||||
elapsedTime += Time.deltaTime;
|
||||
|
||||
yield return null;
|
||||
}
|
||||
_userSpriteRenderer.material.SetFloat(_dissolveValueHash, 0f);
|
||||
_aiMovement.Teleport(SkillUser.transform.position + Vector3.up * 20f);
|
||||
_userHitBox.enabled = false;
|
||||
_aiMovement.Teleport(_centerSpawnTransform.position);
|
||||
|
||||
yield return new WaitForSeconds(1f);
|
||||
|
||||
_aiMovement.Teleport(_centerSpawnTransform.position);
|
||||
_userRigidbody.isKinematic = false;
|
||||
|
||||
elapsedTime = 0f;
|
||||
dissolveTime = _spikeBarrageData.SpawnDissolveTime;
|
||||
while (elapsedTime <= dissolveTime)
|
||||
_userHitBox.enabled = true;
|
||||
var reverseDigTrack = _spineController.PlayAnimation(SandMoleAnimation.Dig.ToString(), false, 1f, true);
|
||||
if (reverseDigTrack == null || !SkillUser)
|
||||
{
|
||||
if (!_userSpriteRenderer)
|
||||
{
|
||||
EndSkill(0, actions[0]);
|
||||
yield break;
|
||||
}
|
||||
|
||||
var value = Mathf.Lerp(0f, 1f, elapsedTime / dissolveTime);
|
||||
_userSpriteRenderer.material.SetFloat(_dissolveValueHash, value);
|
||||
elapsedTime += Time.deltaTime;
|
||||
|
||||
yield return null;
|
||||
EndSkill(0, actions[0]);
|
||||
yield break;
|
||||
}
|
||||
|
||||
yield return new WaitUntil(() => reverseDigTrack.TrackTime <= 0f);
|
||||
|
||||
_spineController.SetSkin(SandMoleSkin.Idle.ToString());
|
||||
var spinReady2Track = _spineController.PlayAnimation(SandMoleAnimation.SpinReady2.ToString(), false);
|
||||
if (spinReady2Track == 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 angleStep = _spikeBarrageData.AngleStep;
|
||||
@ -127,8 +112,8 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
{
|
||||
Utils.EndUniqueCoroutine(this, ref SkillCoroutineInstance);
|
||||
|
||||
_animationController.ResetAnimationSpeed();
|
||||
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.None);
|
||||
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
_spineController.PlayAnimation(SandMoleAnimation.Idle.ToString(), true);
|
||||
action?.Invoke();
|
||||
|
||||
Utils.StartUniqueCoroutine(this, ref CooldownCoroutineInstance,Utils.CoolDownCoroutine(cooldown, EndCooldown));
|
||||
|
@ -163,7 +163,7 @@ namespace BlueWater.Uis
|
||||
|
||||
public void RestartCurrentStage()
|
||||
{
|
||||
MapManager.Instance.CurrentMapRestart();
|
||||
MapManager.Instance.RestartCurrentMap();
|
||||
CloseAllPopup();
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Sirenix.OdinInspector;
|
||||
using TMPro;
|
||||
@ -21,6 +20,9 @@ namespace BlueWater.Uis
|
||||
[SerializeField]
|
||||
private float _duration = 1f;
|
||||
|
||||
private Coroutine _damageEffectCoroutineInstance;
|
||||
private bool _isInitialized;
|
||||
|
||||
[Button("컴포넌트 초기화")]
|
||||
private void InitializeComponents()
|
||||
{
|
||||
@ -37,6 +39,12 @@ namespace BlueWater.Uis
|
||||
public void SetBoss(int maxHp, string bossName)
|
||||
{
|
||||
if (!_slider || !_damageEffectSlider) return;
|
||||
|
||||
if (_damageEffectCoroutineInstance != null)
|
||||
{
|
||||
StopCoroutine(_damageEffectCoroutineInstance);
|
||||
_damageEffectCoroutineInstance = null;
|
||||
}
|
||||
|
||||
_slider.maxValue = maxHp;
|
||||
_damageEffectSlider.maxValue = maxHp;
|
||||
@ -53,7 +61,7 @@ namespace BlueWater.Uis
|
||||
{
|
||||
if (!_slider || !_damageEffectSlider) return;
|
||||
|
||||
StartCoroutine(DamageEffect(value));
|
||||
_damageEffectCoroutineInstance = StartCoroutine(DamageEffect(value));
|
||||
}
|
||||
|
||||
private IEnumerator DamageEffect(int value)
|
||||
@ -70,6 +78,11 @@ namespace BlueWater.Uis
|
||||
}
|
||||
|
||||
_damageEffectSlider.value = value;
|
||||
|
||||
if (_damageEffectSlider.value == 0)
|
||||
{
|
||||
SetActiveHpSlider(false);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetActiveHpSlider(bool value) => gameObject.SetActive(value);
|
||||
|
@ -46,8 +46,8 @@ TextureImporter:
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 7
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
alignment: 9
|
||||
spritePivot: {x: 0.5, y: 0.01}
|
||||
spritePixelsToUnits: 2048
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
@ -127,7 +127,7 @@ TextureImporter:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
internalID: 1537655665
|
||||
vertices: []
|
||||
indices:
|
||||
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:
|
||||
- MOTIONVECTORS
|
||||
- DepthOnly
|
||||
- SHADOWCASTER
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
|
@ -57,13 +57,13 @@ Transform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2736699741125954087}
|
||||
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_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 6255916646741457976}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0}
|
||||
--- !u!212 &6274137400612009998
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -213,7 +213,7 @@ GameObject:
|
||||
- component: {fileID: 6865346796134993564}
|
||||
- component: {fileID: 4159255405813448884}
|
||||
m_Layer: 10
|
||||
m_Name: BaseBoss
|
||||
m_Name: AnimatorBaseBoss
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5975a5a7434cc704c9d60c8ab3750550
|
||||
guid: 95f91f8d7fca3544fb0577a9dd14caf6
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
@ -100,6 +100,10 @@ PrefabInstance:
|
||||
propertyPath: m_WasSpriteAssigned
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6377054450616127915, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||
propertyPath: _renderer
|
||||
value:
|
||||
objectReference: {fileID: 8411583502041648826}
|
||||
- target: {fileID: 7170637981020870835, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Rhinoceros
|
||||
@ -200,15 +204,15 @@ MonoBehaviour:
|
||||
<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: c8e21ded50a36a549b51c846cf3640b3, 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}
|
||||
<SpriteRenderer>k__BackingField: {fileID: 8411583502041648826}
|
||||
<Animator>k__BackingField: {fileID: 2875096611673055428}
|
||||
<AnimationController>k__BackingField: {fileID: 8314565348215340790}
|
||||
--- !u!65 &5897569616117255232 stripped
|
||||
BoxCollider:
|
||||
m_CorrespondingSourceObject: {fileID: 8246553021837507316, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||
|
@ -1,312 +1,12 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1001 &2569800677110986420
|
||||
--- !u!1001 &2624839957929985237
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
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_TransformParent: {fileID: 8932196953512409498}
|
||||
m_Modifications:
|
||||
- target: {fileID: 3808140985359726233, guid: 5cf7cd372801c784a9875e0740cf9038, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
@ -373,13 +73,323 @@ PrefabInstance:
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 5cf7cd372801c784a9875e0740cf9038, type: 3}
|
||||
--- !u!4 &5672546178639089928 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 3808140985359726233, guid: 5cf7cd372801c784a9875e0740cf9038, type: 3}
|
||||
m_PrefabInstance: {fileID: 8818561255954491281}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!198 &6635401445434353523 stripped
|
||||
--- !u!198 &151207866041222199 stripped
|
||||
ParticleSystem:
|
||||
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}
|
||||
|
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e3a389dac3e524844ac42dabd7207e64
|
||||
guid: 58854203209bd294d817b319d4dafc4f
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
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
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6377054450616127915, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||
propertyPath: _renderer
|
||||
value:
|
||||
objectReference: {fileID: 5448061580005708447}
|
||||
- target: {fileID: 6377054450616127915, guid: db7798cbd0a93f44aac56d479a2994c7, type: 3}
|
||||
propertyPath: _dieSfxName
|
||||
value: TitanSlimeDie
|
||||
@ -340,13 +344,23 @@ MonoBehaviour:
|
||||
<CharacterCollider>k__BackingField: {fileID: 6888416268787095219}
|
||||
<BehaviorTree>k__BackingField: {fileID: 3336831312449989230}
|
||||
<VisualLook>k__BackingField: {fileID: 3221387912671045841}
|
||||
<SpriteRenderer>k__BackingField: {fileID: 5448061580005708447}
|
||||
<Animator>k__BackingField: {fileID: 1785378898368314593}
|
||||
<HitBoxCollider>k__BackingField: {fileID: 7996411433804189797}
|
||||
<BossData>k__BackingField: {fileID: 11400000, guid: c9c36628b677b854999f97966b3c5b14, type: 2}
|
||||
<AnimationController>k__BackingField: {fileID: 5495465377430151891}
|
||||
<BossHealthPoint>k__BackingField: {fileID: 4969309465389398842}
|
||||
<AIMovement>k__BackingField: {fileID: 4886349608629249037}
|
||||
<BossSkillController>k__BackingField: {fileID: 2680193030030060069}
|
||||
<Target>k__BackingField: {fileID: 0}
|
||||
<SpriteRenderer>k__BackingField: {fileID: 5448061580005708447}
|
||||
<Animator>k__BackingField: {fileID: 1785378898368314593}
|
||||
<AnimationController>k__BackingField: {fileID: 5495465377430151891}
|
||||
_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_ActionId: a5d9ffcb-5c4f-4c6d-8335-9060bbea120a
|
||||
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_DefaultControlScheme:
|
||||
m_DefaultActionMap: Combat
|
||||
@ -661,13 +677,13 @@ Transform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8540731795983184644}
|
||||
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_LocalScale: {x: 6, y: 6, z: 6}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 668700138157159316}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0}
|
||||
--- !u!212 &5558898291459354456
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -85,7 +85,7 @@ MeshRenderer:
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 5
|
||||
m_SortingOrder: 1
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!114 &545895004707295019
|
||||
MonoBehaviour:
|
||||
|
@ -115,7 +115,6 @@ Transform:
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 6052826474412574974}
|
||||
- {fileID: 8517595696594260902}
|
||||
- {fileID: 4108087243422214688}
|
||||
- {fileID: 6277086964971212290}
|
||||
@ -8880,69 +8879,6 @@ Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 1759992658637499492, guid: 6d17f81a406ca69439ac4e8f87c6b3ec, type: 3}
|
||||
m_PrefabInstance: {fileID: 5427090224258738352}
|
||||
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
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -79,7 +79,7 @@ PrefabInstance:
|
||||
- target: {fileID: 3580758810857167321, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
||||
propertyPath: m_Sprite
|
||||
value:
|
||||
objectReference: {fileID: 21300000, guid: aeefbca1d88d1ed4c9e8aa4d8d008383, type: 3}
|
||||
objectReference: {fileID: 21300000, guid: 27e9d61a31b61aa40ad14805e0c184eb, type: 3}
|
||||
- target: {fileID: 3580758810857167321, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3}
|
||||
propertyPath: m_WasSpriteAssigned
|
||||
value: 1
|
||||
@ -88,6 +88,34 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Rockfall
|
||||
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}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 1.5
|
||||
@ -170,6 +198,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
<MaxHealthPoint>k__BackingField: 1
|
||||
<CurrentHealthPoint>k__BackingField: 0
|
||||
<InvincibilityDuration>k__BackingField: 0
|
||||
_dieSfxName:
|
||||
_dieParticle: {fileID: 19826678, guid: 660dfd0ccf26cbf489a7556236949683, type: 3}
|
||||
_sphereCollider: {fileID: 2971964863692897937}
|
||||
|
@ -209,6 +209,12 @@ AnimatorController:
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
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:
|
||||
- serializedVersion: 5
|
||||
m_Name: Base Layer
|
||||
|
Binary file not shown.
@ -14,7 +14,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
atlasAssets:
|
||||
- {fileID: 11400000, guid: 1d31993ca2e2a364a99a30395604b3a8, type: 2}
|
||||
scale: 0.0005
|
||||
scale: 0.001
|
||||
skeletonJSON: {fileID: 4900000, guid: 8dde5b90ef9786042907ed6079c968f9, type: 3}
|
||||
isUpgradingBlendModeMaterials: 0
|
||||
blendModeMaterials:
|
||||
|
@ -1041,7 +1041,7 @@
|
||||
"m_AllowMaterialOverride": false,
|
||||
"m_SurfaceType": 1,
|
||||
"m_ZTestMode": 4,
|
||||
"m_ZWriteControl": 0,
|
||||
"m_ZWriteControl": 1,
|
||||
"m_AlphaMode": 0,
|
||||
"m_RenderFace": 0,
|
||||
"m_AlphaClip": true,
|
||||
@ -2009,10 +2009,10 @@
|
||||
"m_Expanded": true,
|
||||
"m_Position": {
|
||||
"serializedVersion": "2",
|
||||
"x": -523.9999389648438,
|
||||
"y": 117.00000762939453,
|
||||
"width": 207.99996948242188,
|
||||
"height": 301.9999694824219
|
||||
"x": -719.0000610351563,
|
||||
"y": 105.0000228881836,
|
||||
"width": 208.00006103515626,
|
||||
"height": 302.0000305175781
|
||||
}
|
||||
},
|
||||
"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
|
||||
guid: 95ddede70a8a6cc4dbd0849c7b976d1a
|
||||
guid: 25b64c74397178e47a04794eb9a74d8f
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
@ -21,7 +21,7 @@ MonoBehaviour:
|
||||
startIndex:
|
||||
variableStartIndex:
|
||||
JSONSerialization: '{"EntryTask":{"Type":"BehaviorDesigner.Runtime.Tasks.EntryTask","NodeData":{"Offset":"(707.6564,145.842773)"},"ID":0,"Name":"Entry","Instant":true},"RootTask":{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(3.069271,152.681244)"},"ID":1,"Name":"Start
|
||||
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(-76.66675,145.294128)"},"ID":2,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}},{"Type":"BehaviorDesigner.Runtime.Tasks.Repeater","NodeData":{"Offset":"(76.06769,146.666718)"},"ID":3,"Name":"Repeater","Instant":true,"SharedIntcount":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolrepeatForever":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":true},"SharedBoolendOnFailure":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(-3.44348145,154.9137)"},"ID":4,"Name":"Die
|
||||
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
|
||||
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
|
||||
|
@ -21,7 +21,7 @@ MonoBehaviour:
|
||||
startIndex:
|
||||
variableStartIndex:
|
||||
JSONSerialization: '{"EntryTask":{"Type":"BehaviorDesigner.Runtime.Tasks.EntryTask","NodeData":{"Offset":"(707.6564,145.842773)"},"ID":0,"Name":"Entry","Instant":true},"RootTask":{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(3.069271,152.681244)"},"ID":1,"Name":"Start
|
||||
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(-76.66675,145.294128)"},"ID":2,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":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
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user