#17 모래두더지 가시 연발 스킬(MultiThrowSpikes) 추가

+ ParticleWeapon class -> ProjectileController 변경
+ SandMole 스킬관련 Enum, 애니메이션 변경
+ 가시 연발 관련 Spike 파티클 추가
This commit is contained in:
Nam Tae Gun 2024-06-15 05:36:32 +09:00
parent ea1ff2dfd8
commit cc382747f0
25 changed files with 64355 additions and 73 deletions

View File

@ -24,10 +24,9 @@ namespace BlueWater.Enemies.Bosses
SeismicThrust,
SkyFallSmash,
___SandMoleSkillList___,
Rockfall,
RollingBarrage,
GateOfSpikes,
MultiThrowSpikes,
SingleRoll,
SpikeBarrage,
SummonMiniSandMole
}

View File

@ -6,10 +6,9 @@ namespace BlueWater.Enemies.Bosses.SandMole
public enum SandMoleSkill
{
None = 0,
Rockfall,
RollingBarrage,
GateOfSpikes,
MultiThrowSpikes,
SingleRoll,
SpikeBarrage,
SummonMiniSandMole
}

View File

@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 7d160672a84624441af068504bf1b8c9

View File

@ -1,25 +1,33 @@
using System;
using System.Collections.Generic;
using BlueWater.Interfaces;
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.Serialization;
namespace BlueWater
{
public class ParticleWeapon : MonoBehaviour
public class ProjectileController : MonoBehaviour
{
[field: Title("파티클 설정")]
[field: SerializeField]
public GameObject ImpactParticle { get; private set; }
[Title("컴포넌트")]
[SerializeField, Required]
private Rigidbody _rigidbody;
[SerializeField]
private GameObject _projectileParticle;
private SphereCollider _sphereCollider;
[field: Title("파티클 설정")]
[FormerlySerializedAs("_projectileParticle")]
[SerializeField]
private GameObject _projectilePrefab;
[SerializeField]
private GameObject _muzzleParticle;
[field: SerializeField]
public GameObject ImpactParticle { get; private set; }
[Title("충돌체 설정")]
[SerializeField, Tooltip("Sphere Collider가 없는 경우, 기본 충돌 크기(반지름)")]
[SerializeField, Tooltip("Sphere Collider가 없는 경우, 기본 충돌 크기(반지름)"), ShowIf("@!_sphereCollider")]
private float _colliderRadius = 1f;
[SerializeField, Range(0f, 1f), Tooltip("타겟보다 해당 값만큼 떨어진 위치에서 충돌")]
private float _collideOffset;
@ -36,8 +44,6 @@ namespace BlueWater
[SerializeField, ShowIf("@_useAutoDestroy")]
private float _autoDestroyTime = 10f;
private Rigidbody _rigidbody;
private SphereCollider _sphereCollider;
private float _detectionDistance;
public Action OnHitAction;
@ -52,20 +58,18 @@ namespace BlueWater
Gizmos.DrawLine(transform.position, transform.position + direction * _detectionDistance);
}
private void Awake()
{
_rigidbody = GetComponent<Rigidbody>();
_sphereCollider = GetComponent<SphereCollider>();
}
private void Start()
{
if (_useAutoDestroy)
{
Destroy(gameObject, _autoDestroyTime);
}
if (_projectilePrefab)
{
_projectilePrefab = Instantiate(_projectilePrefab, transform.position, transform.rotation, transform);
}
_projectileParticle = Instantiate(_projectileParticle, transform.position, transform.rotation, transform);
if (_muzzleParticle)
{
_muzzleParticle = Instantiate(_muzzleParticle, transform.position, transform.rotation, transform);
@ -108,7 +112,7 @@ namespace BlueWater
OnHitAction?.Invoke();
}
Destroy(_projectileParticle, 3f);
Destroy(_projectilePrefab, 3f);
if (impactParticle)
{
Destroy(impactParticle, 3.5f);

View File

@ -5,7 +5,6 @@ using BlueWater.Maps;
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.Rendering.Universal;
using UnityEngine.Serialization;
namespace BlueWater
{

View File

@ -20,4 +20,5 @@ MonoBehaviour:
m_Bits: 2048
<SkillDataList>k__BackingField:
- {fileID: 6760430575876107212, guid: a09fc16b8b3c86a4e88ac3f049b5fd89, type: 3}
- {fileID: 2789312915140829590, guid: 8f4a84b8b6727c64ea203026334a60c2, type: 3}
<MoveSpeed>k__BackingField: 3

View File

@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e974c134ba74f924ab3f6aff70a231b9, type: 3}
m_Name: MultiThrowSpikesData
m_EditorClassIdentifier:
<Name>k__BackingField: MultiThrowSpikes
<DisplayName>k__BackingField: "\uAC00\uC2DC \uC5F0\uBC1C"
<Description>k__BackingField:
<Damage>k__BackingField: 1
<Cooldown>k__BackingField: 5
<Radius>k__BackingField: 0
<CastingTime>k__BackingField: 0
<Duration>k__BackingField: 0
<TargetLayer>k__BackingField:
serializedVersion: 2
m_Bits: 2432
<SpikePrefab>k__BackingField: {fileID: 194276104676398060, guid: 74d380cc223e6a5419f3aa88df2d767c, type: 3}
<SpikeCount>k__BackingField: 4
<SpikeInterval>k__BackingField: 0.5
<ProjectileSpeed>k__BackingField: 25

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f57dcbbea1cf2bf4694e7981607e5d7f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -142,7 +142,7 @@ namespace BlueWater.Enemies.Bosses.Rhinoceros.Skills
var currentAngle = startAngle + angleStep * i;
var rotation = Quaternion.Euler(0, currentAngle, 0);
var projectile = Instantiate(_meteorSwingData.ProjectilePrefab,
startPosition + Vector3.up, rotation, _particleInstantiateLocation).GetComponent<ParticleWeapon>();
startPosition + Vector3.up, rotation, _particleInstantiateLocation).GetComponent<ProjectileController>();
projectile.Initialize(_meteorSwingData.ProjectileDamage, _meteorSwingData.TargetLayer);
projectile.AddForce(projectile.transform.forward * _meteorSwingData.ProjectileSpeed, ForceMode.Impulse);
}

View File

@ -0,0 +1,20 @@
using UnityEngine;
namespace BlueWater.Enemies.Bosses.SandMole.Skills
{
[CreateAssetMenu(fileName = "MultiThrowSpikesData", menuName = "ScriptableObjects/Skills/SandMole/MultiThrowSpikesData", order = (int)SandMoleSkill.MultiThrowSpikes)]
public class MultiThrowSpikesData : SkillData
{
[field: SerializeField]
public GameObject SpikePrefab { get; private set; }
[field: SerializeField]
public int SpikeCount { get; private set; } = 4;
[field: SerializeField]
public float SpikeInterval { get; private set; } = 0.5f;
[field: SerializeField]
public float ProjectileSpeed { get; private set; } = 25f;
}
}

View File

@ -0,0 +1,98 @@
using System;
using System.Collections;
using BlueWater.Maps;
using BlueWater.Utility;
using UnityEngine;
namespace BlueWater.Enemies.Bosses.SandMole.Skills
{
public class MultiThrowSpikes : BaseSkill
{
private MultiThrowSpikesData _multiThrowSpikesData;
private SandMole _sandMole;
private AnimationController _animationController;
private Collider _targetCollider;
private float _colliderRadius;
private float _attackRadius;
private Transform _particleInstantiateLocation;
protected override void BasicSetting()
{
if (!_sandMole)
{
_sandMole = SkillUser.GetComponent<SandMole>();
_animationController = _sandMole.AnimationController;
_targetCollider = _sandMole.Target;
_particleInstantiateLocation = MapManager.Instance.SandMoleMapController.ParticleInstantiateLocation;
}
_multiThrowSpikesData = (MultiThrowSpikesData)SkillData;
base.BasicSetting();
}
public override void ActivateSkill(params Action[] actions)
{
Utils.StartUniqueCoroutine(this, ref SkillCoroutineInstance, SkillCoroutine(actions));
}
private IEnumerator SkillCoroutine(params Action[] actions)
{
EnableSkill = false;
_sandMole.StopMove();
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.MultiThrowSpikes);
var animationStarted = false;
yield return StartCoroutine(_animationController.WaitForAnimationToRun("MultiThrowSpikes",
success => animationStarted = success));
print("1");
if (!animationStarted || !SkillUser)
{
print("2");
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++)
{
print("3");
if (!SkillUser || !_targetCollider)
{
print("4");
EndSkill(SkillData.Cooldown, actions[0]);
yield break;
}
// 실시간으로 일정 간격으로 Target의 위치를 받아와서 방향을 맞춰서 발사한다.
var targetCenterPosition = _targetCollider.bounds.center;
startPosition.y = targetCenterPosition.y;
var targetVector = targetCenterPosition - startPosition;
var targetDirection = targetVector.normalized;
_sandMole.CurrentDirection = targetDirection;
var rotation = Quaternion.LookRotation(targetDirection);
var projectile = Instantiate(_multiThrowSpikesData.SpikePrefab, startPosition, rotation,
_particleInstantiateLocation).GetComponent<ProjectileController>();
projectile.Initialize(_multiThrowSpikesData.Damage, _multiThrowSpikesData.TargetLayer);
projectile.AddForce(projectile.transform.forward * _multiThrowSpikesData.ProjectileSpeed, ForceMode.Impulse);
yield return waitForSeconds;
}
EndSkill(SkillData.Cooldown, actions[0]);
}
private void EndSkill(float cooldown, Action action)
{
Utils.EndUniqueCoroutine(this, ref SkillCoroutineInstance);
_animationController.SetAnimationParameter("skillIndex", (int)SandMoleSkill.None);
action?.Invoke();
Utils.StartUniqueCoroutine(this, ref CooldownCoroutineInstance,Utils.CoolDownCoroutine(cooldown, EndCooldown));
}
}
}

View File

@ -82,12 +82,12 @@ public abstract class Singleton<T> : Singleton where T : MonoBehaviour
{
if (count == 1)
return _instance = instances[0];
Debug.LogWarning($"[{nameof(Singleton)}<{typeof(T)}>] There should never be more than one {nameof(Singleton)} of type {typeof(T)} in the scene, but {count} were found. The first instance found will be used, and all others will be destroyed.");
//Debug.LogWarning($"[{nameof(Singleton)}<{typeof(T)}>] There should never be more than one {nameof(Singleton)} of type {typeof(T)} in the scene, but {count} were found. The first instance found will be used, and all others will be destroyed.");
for (var i = 1; i < instances.Length; i++)
Destroy(instances[i]);
return _instance = instances[0];
}
Debug.LogWarning($"[{nameof(Singleton)}<{typeof(T)}>] Instance will not be returned because the application is quitting.");
//Debug.LogWarning($"[{nameof(Singleton)}<{typeof(T)}>] Instance will not be returned because the application is quitting.");
return null;
}
lock (_lock)

View File

@ -9,8 +9,8 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 8021796126892704736}
- component: {fileID: 8035217722497169373}
- component: {fileID: 5534983560125118465}
- component: {fileID: 8035217722497169373}
- component: {fileID: 1370849024704300366}
m_Layer: 0
m_Name: MeteorParticle
@ -34,6 +34,33 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!54 &5534983560125118465
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 194276104676398060}
serializedVersion: 4
m_Mass: 1
m_Drag: 0
m_AngularDrag: 0
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: 0
m_IsKinematic: 0
m_Interpolate: 1
m_Constraints: 0
m_CollisionDetection: 0
--- !u!135 &8035217722497169373
SphereCollider:
m_ObjectHideFlags: 0
@ -55,33 +82,6 @@ SphereCollider:
serializedVersion: 3
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!54 &5534983560125118465
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 194276104676398060}
serializedVersion: 4
m_Mass: 1
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: 0
m_IsKinematic: 0
m_Interpolate: 1
m_Constraints: 0
m_CollisionDetection: 0
--- !u!114 &1370849024704300366
MonoBehaviour:
m_ObjectHideFlags: 0
@ -94,9 +94,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7d160672a84624441af068504bf1b8c9, type: 3}
m_Name:
m_EditorClassIdentifier:
<ImpactParticle>k__BackingField: {fileID: 151374, guid: 349d61d7e99fa484bb25bbffddabd8bc, type: 3}
_projectileParticle: {fileID: 5781643060117381191, guid: ace55d0b13e99a0419ef6fec503cf8d1, type: 3}
_rigidbody: {fileID: 5534983560125118465}
_sphereCollider: {fileID: 8035217722497169373}
_projectilePrefab: {fileID: 5781643060117381191, guid: ace55d0b13e99a0419ef6fec503cf8d1, type: 3}
_muzzleParticle: {fileID: 0}
<ImpactParticle>k__BackingField: {fileID: 151374, guid: 349d61d7e99fa484bb25bbffddabd8bc, type: 3}
_colliderRadius: 0.5
_collideOffset: 0
_attackDamage: 1

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 02c25e70f96b2a34c92ae40dc6e32c35
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 82c2f5f04b06a78449817259830635fe
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,109 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &194276104676398060
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8021796126892704736}
- component: {fileID: 5534983560125118465}
- component: {fileID: 8035217722497169373}
- component: {fileID: 1370849024704300366}
m_Layer: 0
m_Name: SpikeParticle
m_TagString: Missile
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8021796126892704736
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 194276104676398060}
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: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!54 &5534983560125118465
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 194276104676398060}
serializedVersion: 4
m_Mass: 1
m_Drag: 0
m_AngularDrag: 0
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: 0
m_IsKinematic: 0
m_Interpolate: 1
m_Constraints: 0
m_CollisionDetection: 0
--- !u!135 &8035217722497169373
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 194276104676398060}
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_Radius: 0.25
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &1370849024704300366
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 194276104676398060}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7d160672a84624441af068504bf1b8c9, type: 3}
m_Name:
m_EditorClassIdentifier:
_rigidbody: {fileID: 5534983560125118465}
_sphereCollider: {fileID: 8035217722497169373}
_projectilePrefab: {fileID: 1339409385940702124, guid: cb0210513f94b074db3d5cdeda82fef1, type: 3}
_muzzleParticle: {fileID: 8379670427772074999, guid: 82c2f5f04b06a78449817259830635fe, type: 3}
<ImpactParticle>k__BackingField: {fileID: 4957782242376068896, guid: 02c25e70f96b2a34c92ae40dc6e32c35, type: 3}
_colliderRadius: 0.25
_collideOffset: 0
_attackDamage: 1
_targetLayer:
serializedVersion: 2
m_Bits: 2432
_useAutoDestroy: 1
_autoDestroyTime: 10

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 74d380cc223e6a5419f3aa88df2d767c
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: cb0210513f94b074db3d5cdeda82fef1
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,91 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &6575159217317842605
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 817830973935461002, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
propertyPath: m_Name
value: MultiThrowSpikes
objectReference: {fileID: 0}
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3155538962647367913, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7266951372888583716, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
propertyPath: m_Material
value:
objectReference: {fileID: 2100000, guid: a1e8e71505dd71149a84a361110dac07, type: 2}
- target: {fileID: 8663005856679327762, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 817830973935461002, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
insertIndex: -1
addedObject: {fileID: 2789312915140829590}
m_SourcePrefab: {fileID: 100100000, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
--- !u!1 &5793366936479968295 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 817830973935461002, guid: 1e5a4659704853944abea5a17e13cf6a, type: 3}
m_PrefabInstance: {fileID: 6575159217317842605}
m_PrefabAsset: {fileID: 0}
--- !u!114 &2789312915140829590
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5793366936479968295}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cbd369eaed06e6240a1ef742bc49b4b9, type: 3}
m_Name:
m_EditorClassIdentifier:
SkillData: {fileID: 11400000, guid: f57dcbbea1cf2bf4694e7981607e5d7f, type: 2}
EnableSkill: 1
IsUsingIndicator: 0
Indicator: {fileID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8f4a84b8b6727c64ea203026334a60c2
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -10,7 +10,7 @@ AnimatorStateTransition:
m_Conditions:
- m_ConditionMode: 6
m_ConditionEvent: skillIndex
m_EventTreshold: 5
m_EventTreshold: 4
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 7184740733897293241}
m_Solo: 0
@ -85,7 +85,7 @@ AnimatorStateTransition:
m_Conditions:
- m_ConditionMode: 6
m_ConditionEvent: skillIndex
m_EventTreshold: 5
m_EventTreshold: 4
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 7184740733897293241}
m_Solo: 0
@ -220,7 +220,7 @@ AnimatorStateTransition:
m_Conditions:
- m_ConditionMode: 6
m_ConditionEvent: skillIndex
m_EventTreshold: 2
m_EventTreshold: 1
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 738300769568541194}
m_Solo: 0
@ -358,7 +358,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SpikeBarrage
m_Name: SingleRoll
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
@ -484,7 +484,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: RollingBarrage
m_Name: GateOfSpikes
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
@ -514,7 +514,7 @@ AnimatorStateTransition:
m_Conditions:
- m_ConditionMode: 6
m_ConditionEvent: skillIndex
m_EventTreshold: 3
m_EventTreshold: 2
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 6774117770736358250}
m_Solo: 0
@ -539,7 +539,7 @@ AnimatorStateTransition:
m_Conditions:
- m_ConditionMode: 6
m_ConditionEvent: skillIndex
m_EventTreshold: 4
m_EventTreshold: 3
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -239926944250279742}
m_Solo: 0
@ -564,7 +564,7 @@ AnimatorStateTransition:
m_Conditions:
- m_ConditionMode: 6
m_ConditionEvent: skillIndex
m_EventTreshold: 4
m_EventTreshold: 3
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -239926944250279742}
m_Solo: 0
@ -636,7 +636,7 @@ AnimatorStateTransition:
m_Conditions:
- m_ConditionMode: 6
m_ConditionEvent: skillIndex
m_EventTreshold: 3
m_EventTreshold: 2
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 6774117770736358250}
m_Solo: 0
@ -658,7 +658,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SingleRoll
m_Name: MultiThrowSpikes
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
@ -715,7 +715,7 @@ AnimatorStateTransition:
m_Conditions:
- m_ConditionMode: 6
m_ConditionEvent: skillIndex
m_EventTreshold: 2
m_EventTreshold: 1
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 738300769568541194}
m_Solo: 0

View File

@ -21,17 +21,20 @@ 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":"(89.99982,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":"(242.734253,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":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
Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-547.465149,148.989136)"},"ID":5,"Name":"Die
Sequence","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Unity.SharedVariables.CompareSharedInt","NodeData":{"Offset":"(-104.999634,149.904846)","Comment":"CurrentHealthPoint
== 0"},"ID":6,"Name":"Compare Shared Int","Instant":true,"SharedIntvariable":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"CurrentHealthPoint","IsShared":true,"Int32mValue":0},"SharedIntcompareTo":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0}},{"Type":"BehaviorDesigner.Runtime.Tasks.StopBehaviorTree","NodeData":{"Offset":"(93.47067,153.019165)"},"ID":7,"Name":"Stop
Behavior Tree","Instant":true,"SharedGameObjectbehaviorGameObject":{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},"SharedIntgroup":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":0},"SharedBoolpauseBehavior":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(1.07836533,154.29248)"},"ID":8,"Name":"Skill
Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.UntilSuccess","NodeData":{"Offset":"(-4.999878,154.166809)"},"ID":9,"Name":"Until
Success","Instant":true,"Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.RandomSelector","NodeData":{"Offset":"(-0.8695679,146.086731)"},"ID":10,"Name":"Random
Selector","Instant":true,"Int32seed":0,"BooleanuseSeed":false,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-1254.71313,148.733643)"},"ID":11,"Name":"Single
Selector","Instant":true,"Int32seed":0,"BooleanuseSeed":false,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-665.4279,148.733643)"},"ID":11,"Name":"Single
Roll","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Enemies.Bosses.Conditionals.CanSkill","NodeData":{"Offset":"(-150,150)"},"ID":12,"Name":"Can
Skill","Instant":true,"BossSkillName_bossSkillName":"SingleRoll"},{"Type":"BlueWater.BehaviorTrees.Enemies.Bosses.Actions.ActivateSkill","NodeData":{"Offset":"(0,150)"},"ID":13,"Name":"Activate
Skill","Instant":true,"BossSkillName_bossSkillName":"SingleRoll"},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(154.705811,153.681122)"},"ID":14,"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}}]}]}]}]}]}]}]},"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"CurrentHealthPoint","IsShared":true,"Int32mValue":0},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true}]}'
Skill","Instant":true,"BossSkillName_bossSkillName":"SingleRoll"},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(154.705811,153.681122)"},"ID":14,"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.Sequence","NodeData":{"Offset":"(-45.71466,160)"},"ID":15,"Name":"Multi
Throw Spikes","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Enemies.Bosses.Conditionals.CanSkill","NodeData":{"Offset":"(-150,150)"},"ID":16,"Name":"Can
Skill","Instant":true,"BossSkillName_bossSkillName":"MultiThrowSpikes"},{"Type":"BlueWater.BehaviorTrees.Enemies.Bosses.Actions.ActivateSkill","NodeData":{"Offset":"(0,150)"},"ID":17,"Name":"Activate
Skill","Instant":true,"BossSkillName_bossSkillName":"MultiThrowSpikes"},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(150,150)"},"ID":18,"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}}]}]}]}]}]}]}]},"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":"CurrentHealthPoint","IsShared":true,"Int32mValue":0},{"Type":"BehaviorDesigner.Runtime.SharedCollider","Name":"Target","IsShared":true}]}'
fieldSerializationData:
typeName: []
fieldNameHash: