#27 SandMole, MiniSandMole 스파인 동기화 완료

+ 스파인 오브젝트에 커스텀 Material 추가 및 MaterialPropertyBlock 방식 추가
+ 개발자 키(F3) 전투플레이어 체력 회복 기능 추가
+ SandMole Spike 파티클 변경
+ 맵 이동할 때, 재시작할 때, 보스 체력 바 제거
This commit is contained in:
Nam Tae Gun 2024-06-24 04:52:28 +09:00
parent c766d4879b
commit c9e2a6ab5d
24 changed files with 19598 additions and 65 deletions

View File

@ -10772,7 +10772,7 @@ MonoBehaviour:
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 1 m_FillMethod: 1
m_FillAmount: 0.613 m_FillAmount: 0.3
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0

View File

@ -71,6 +71,7 @@ namespace BlueWater.Enemies.Bosses
public Collider Target { get; protected set; } public Collider Target { get; protected set; }
public IAstarAI AstarAi; public IAstarAI AstarAi;
protected MaterialPropertyBlock MaterialPropertyBlock;
#endregion #endregion
@ -133,6 +134,9 @@ namespace BlueWater.Enemies.Bosses
BossSkillController = GetComponent<BossSkillController>(); BossSkillController = GetComponent<BossSkillController>();
AstarAi = GetComponent<IAstarAI>(); AstarAi = GetComponent<IAstarAI>();
MaterialPropertyBlock = new MaterialPropertyBlock();
BossHealthPoint.SetMaterialPropertyBlock(MaterialPropertyBlock);
} }
#endregion #endregion

View File

@ -55,6 +55,7 @@ namespace BlueWater.Enemies.Bosses
private Coroutine _damageIntervalCoroutine; private Coroutine _damageIntervalCoroutine;
private bool _enableHealthChangedEvent; private bool _enableHealthChangedEvent;
private MaterialPropertyBlock _materialPropertyBlock;
// Hashes // Hashes
private static readonly int _isHitHash = Shader.PropertyToID("_IsHit"); private static readonly int _isHitHash = Shader.PropertyToID("_IsHit");
@ -77,10 +78,9 @@ namespace BlueWater.Enemies.Bosses
private void OnDestroy() private void OnDestroy()
{ {
if (_enableHealthChangedEvent && _fieldBossHealthPointUi) if (!_enableHealthChangedEvent || !_fieldBossHealthPointUi) return;
{
OnHealthChanged -= _fieldBossHealthPointUi.SetCurrentHealthPoint; OnHealthChanged -= _fieldBossHealthPointUi.SetCurrentHealthPoint;
}
} }
// Initialize methods // Initialize methods
@ -122,10 +122,12 @@ namespace BlueWater.Enemies.Bosses
var changeHp = Mathf.Max(CurrentHealthPoint - damageAmount, 0); var changeHp = Mathf.Max(CurrentHealthPoint - damageAmount, 0);
SetCurrentHealthPoint(changeHp); SetCurrentHealthPoint(changeHp);
if (_renderer.material.HasInt(_isHitHash)) Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
{
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine()); // if (_renderer.material.HasInt(_isHitHash))
} // {
// Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
// }
// 죽었는지 체크 // 죽었는지 체크
if (changeHp == 0) if (changeHp == 0)
@ -175,9 +177,13 @@ namespace BlueWater.Enemies.Bosses
private IEnumerator FlashWhiteCoroutine() private IEnumerator FlashWhiteCoroutine()
{ {
_renderer.material.SetInt(_isHitHash, 1); _materialPropertyBlock.SetInteger(_isHitHash, 1);
_renderer.SetPropertyBlock(_materialPropertyBlock);
yield return _flashWhiteWaitTime; yield return _flashWhiteWaitTime;
_renderer.material.SetInt(_isHitHash, 0);
_materialPropertyBlock.SetInteger(_isHitHash, 0);
_renderer.SetPropertyBlock(_materialPropertyBlock);
Utils.EndUniqueCoroutine(this, ref _flashWhiteCoroutine); Utils.EndUniqueCoroutine(this, ref _flashWhiteCoroutine);
} }
@ -188,12 +194,6 @@ namespace BlueWater.Enemies.Bosses
Utils.EndUniqueCoroutine(this, ref _damageIntervalCoroutine); Utils.EndUniqueCoroutine(this, ref _damageIntervalCoroutine);
} }
public void HideFieldBossHealthPointUi() public void SetMaterialPropertyBlock(MaterialPropertyBlock materialPropertyBlock) => _materialPropertyBlock = materialPropertyBlock;
{
if (_fieldBossHealthPointUi.gameObject.activeSelf)
{
_fieldBossHealthPointUi.SetActiveHpSlider(false);
}
}
} }
} }

View File

@ -24,28 +24,33 @@ namespace BlueWater.Enemies.Bosses.SandMole
public override async void Initialize() public override async void Initialize()
{ {
HitBoxCollider.enabled = false;
BossHealthPoint.Initialize(false, BossData.MaxHealthPoint, BossHealthPoint.Initialize(false, BossData.MaxHealthPoint,
BossData.DisplayName, SandMoleMapController.ParticleInstanceLocation); BossData.DisplayName, SandMoleMapController.ParticleInstanceLocation);
BossSkillController.Initialize(BossData.SkillDataList); BossSkillController.Initialize(BossData.SkillDataList);
SetMoveSpeed(SandMoleData.MoveSpeed); SetMoveSpeed(SandMoleData.MoveSpeed);
StopMove(); StopMove();
MeshRenderer.material.SetFloat(_dissolveValueHash, 0f); MaterialPropertyBlock.SetFloat(_dissolveValueHash, 0f);
MeshRenderer.SetPropertyBlock(MaterialPropertyBlock);
var elapsedTime = 0f; var elapsedTime = 0f;
while (elapsedTime <= _spawnDissolveTime) while (elapsedTime <= _spawnDissolveTime)
{ {
var value = Mathf.Lerp(0f, 1f, elapsedTime / _spawnDissolveTime); var value = Mathf.Lerp(0f, 1f, elapsedTime / _spawnDissolveTime);
MeshRenderer.material.SetFloat(_dissolveValueHash, value); MaterialPropertyBlock.SetFloat(_dissolveValueHash, value);
MeshRenderer.SetPropertyBlock(MaterialPropertyBlock);
elapsedTime += Time.deltaTime; elapsedTime += Time.deltaTime;
await Awaitable.NextFrameAsync(); await Awaitable.NextFrameAsync();
} }
MeshRenderer.material.SetFloat(_dissolveValueHash, 1f); MaterialPropertyBlock.SetFloat(_dissolveValueHash, 1f);
MeshRenderer.SetPropertyBlock(MaterialPropertyBlock);
SpineController.SetSkin(SandMoleSkin.Normal.ToString()); SpineController.SetSkin(SandMoleSkin.Normal.ToString());
var roarTrack = SpineController.PlayAnimation(SandMoleAnimation.Roar.ToString(), false); var roarTrack = SpineController.PlayAnimation(SandMoleAnimation.Roar.ToString(), false);
await SpineController.WaitForAnimationCompletion(roarTrack); await SpineController.WaitForAnimationCompletion(roarTrack);
BehaviorTree.EnableBehavior(); BehaviorTree.EnableBehavior();
HitBoxCollider.enabled = true;
} }
#endregion #endregion

View File

@ -1,4 +1,5 @@
using System.Collections.Generic; using System.Collections;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using BlueWater.Items; using BlueWater.Items;
using BlueWater.Maps; using BlueWater.Maps;
@ -27,7 +28,8 @@ namespace BlueWater.Enemies.Bosses.SandMole
{ {
None = 0, None = 0,
Die, Die,
Dig, DigIn,
DigOut,
Idle, Idle,
Roar, Roar,
Spin, Spin,
@ -90,6 +92,17 @@ namespace BlueWater.Enemies.Bosses.SandMole
public override async void Initialize() public override async void Initialize()
{ {
StartCoroutine(InitializeCoroutine());
}
#endregion
// Methods
#region Methods
private IEnumerator InitializeCoroutine()
{
HitBoxCollider.enabled = false;
BossHealthPoint.Initialize(true, SandMoleData.MaxHealthPoint, BossHealthPoint.Initialize(true, SandMoleData.MaxHealthPoint,
SandMoleData.DisplayName, SandMoleMapController.ParticleInstanceLocation); SandMoleData.DisplayName, SandMoleMapController.ParticleInstanceLocation);
BossHealthPoint.OnHealthChanged += SummonMiniSandMole; BossHealthPoint.OnHealthChanged += SummonMiniSandMole;
@ -98,17 +111,25 @@ namespace BlueWater.Enemies.Bosses.SandMole
StopMove(); StopMove();
SpineController.SetSkin(SandMoleSkin.Normal.ToString()); SpineController.SetSkin(SandMoleSkin.Normal.ToString());
var isCameraShakeActive = false;
var roarTrack = SpineController.PlayAnimation(SandMoleAnimation.Roar.ToString(), false); var roarTrack = SpineController.PlayAnimation(SandMoleAnimation.Roar.ToString(), false);
while (!roarTrack.IsComplete)
{
if (CurrentHealthPoint == 0) yield break;
if (roarTrack.TrackTime >= 1f && !isCameraShakeActive)
{
VisualFeedbackManager.Instance.CameraShake(CombatCameraManager.Instance.BaseCombatCamera, 2f, 1f);
isCameraShakeActive = true;
}
yield return null;
}
await SpineController.WaitForAnimationCompletion(roarTrack);
BehaviorTree.EnableBehavior(); BehaviorTree.EnableBehavior();
HitBoxCollider.enabled = true;
} }
#endregion
// Methods
#region Methods
protected override async void Die() protected override async void Die()
{ {
BossSkillController.StopAllCoroutine(); BossSkillController.StopAllCoroutine();

View File

@ -17,6 +17,9 @@ namespace BlueWater.Players.Combat
[SerializeField] [SerializeField]
private Rigidbody _rigidbody; private Rigidbody _rigidbody;
[SerializeField]
private CapsuleCollider _capsuleCollider;
[SerializeField] [SerializeField]
private AnimationController _animationController; private AnimationController _animationController;
@ -91,6 +94,7 @@ namespace BlueWater.Players.Combat
private void InitializeComponents() private void InitializeComponents()
{ {
_rigidbody = GetComponent<Rigidbody>(); _rigidbody = GetComponent<Rigidbody>();
_capsuleCollider = GetComponent<CapsuleCollider>();
_animationController = GetComponent<AnimationController>(); _animationController = GetComponent<AnimationController>();
_iPhysicMovable = GetComponent<IPhysicMovable>(); _iPhysicMovable = GetComponent<IPhysicMovable>();
@ -257,9 +261,10 @@ namespace BlueWater.Players.Combat
{ {
iDamageable.TakeDamage(ComboAttacks[comboAttackCount - 1].Damage); iDamageable.TakeDamage(ComboAttacks[comboAttackCount - 1].Damage);
// TODO : Collider에 따라 잘 안보이는 경우가 있음 // TODO : Collider에 따라 잘 안보이는 경우가 있음
var closestPoint = hitCollider.ClosestPoint(transform.position); var spawnPosition = _capsuleCollider.bounds.center + targetDirection * 1.5f;
//var closestPoint = hitCollider.ClosestPoint(_capsuleCollider.bounds.center);
//var spawnPosition = closestPoint + Random.insideUnitSphere * 0.2f; //var spawnPosition = closestPoint + Random.insideUnitSphere * 0.2f;
Instantiate(_swordAttackParticle, closestPoint, Quaternion.identity); Instantiate(_swordAttackParticle, spawnPosition, Quaternion.identity);
} }
if (comboAttackCount == 2) if (comboAttackCount == 2)

View File

@ -182,6 +182,14 @@ namespace BlueWater.Players.Combat
} }
} }
public void OnHealthPointMax(InputAction.CallbackContext context)
{
if (context.performed)
{
GameManager.Instance.CurrentCombatPlayer.SetCurrentHealthPointMax();
}
}
public void OnCancel(InputAction.CallbackContext context) public void OnCancel(InputAction.CallbackContext context)
{ {
if (context.performed) if (context.performed)

View File

@ -1,5 +1,4 @@
using System; using System;
using System.Collections;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using Spine; using Spine;
using Spine.Unity; using Spine.Unity;
@ -15,6 +14,7 @@ namespace BlueWater.Players
// Components // Components
[SerializeField] [SerializeField]
private SkeletonAnimation _skeletonAnimation; private SkeletonAnimation _skeletonAnimation;
private AnimationState _animationState; private AnimationState _animationState;
// Variables // Variables

View File

@ -102,6 +102,7 @@ namespace BlueWater.Maps
DestroyAllObjects(); DestroyAllObjects();
DataManager.Instance.CurrentSaveStage = SaveStage; DataManager.Instance.CurrentSaveStage = SaveStage;
CombatUiManager.Instance.FieldBossHealthPointUi.SetActiveHpSlider(false);
AudioManager.Instance.StopBgm(); AudioManager.Instance.StopBgm();
CombatUiManager.Instance.FadeInOut(InitializeFadeInOutTime.x, InitializeFadeInOutTime.y, CombatUiManager.Instance.FadeInOut(InitializeFadeInOutTime.x, InitializeFadeInOutTime.y,
new Color(0f, 0f, 0f, 0f), 1f); new Color(0f, 0f, 0f, 0f), 1f);

View File

@ -1,5 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using BlueWater.Audios;
using BlueWater.Enemies.Bosses; using BlueWater.Enemies.Bosses;
using BlueWater.Uis;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;
@ -160,6 +162,8 @@ namespace BlueWater.Maps
if (!GameManager.Instance.CurrentCombatPlayer) return; if (!GameManager.Instance.CurrentCombatPlayer) return;
GameManager.Instance.CurrentCombatPlayer.transform.position = PlayerSpawnLocation.position; GameManager.Instance.CurrentCombatPlayer.transform.position = PlayerSpawnLocation.position;
CombatUiManager.Instance.FieldBossHealthPointUi.SetActiveHpSlider(false);
AudioManager.Instance.StopBgm();
} }
public abstract void ResetMap(bool isHardReset = false); public abstract void ResetMap(bool isHardReset = false);

View File

@ -29,20 +29,6 @@ namespace BlueWater.Maps
}; };
} }
// public void InitializeMap()
// {
// if (_currentMapController != null)
// {
// _currentMapController.AllDestroyObjects();
// }
//
// _currentMapController = GetMapController(DataManager.Instance.CurrentSaveStage);
// if (_currentMapController != null)
// {
// _currentMapController.InitializeMap();
// }
// }
public MapController GetMapController(SaveStage saveStage) public MapController GetMapController(SaveStage saveStage)
{ {
switch (saveStage) switch (saveStage)
@ -87,8 +73,7 @@ namespace BlueWater.Maps
{ {
_currentMapController.ResetMap(); _currentMapController.ResetMap();
} }
GameManager.Instance.CurrentCombatPlayer.SetCurrentHealthPointMax();
AudioManager.Instance.StopBgm();
var moveMapController = GetMapController((SaveStage)stage); var moveMapController = GetMapController((SaveStage)stage);
moveMapController.MovePlayer(); moveMapController.MovePlayer();
} }

View File

@ -783,6 +783,15 @@
"interactions": "", "interactions": "",
"initialStateCheck": false "initialStateCheck": false
}, },
{
"name": "HealthPointMax",
"type": "Button",
"id": "0dbf1015-499a-43fe-b252-11c232b9a1ae",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{ {
"name": "OpenMenu", "name": "OpenMenu",
"type": "Button", "type": "Button",
@ -946,6 +955,17 @@
"isComposite": false, "isComposite": false,
"isPartOfComposite": false "isPartOfComposite": false
}, },
{
"name": "",
"id": "e222deb0-5edd-446d-a834-6224ea05eb2e",
"path": "<Keyboard>/f3",
"interactions": "",
"processors": "",
"groups": ";Keyboard&Mouse",
"action": "HealthPointMax",
"isComposite": false,
"isPartOfComposite": false
},
{ {
"name": "", "name": "",
"id": "46591849-5c1e-4b83-b490-0a4ad29ed80f", "id": "46591849-5c1e-4b83-b490-0a4ad29ed80f",

View File

@ -46,14 +46,14 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
{ {
EnableSkill = false; EnableSkill = false;
_spineController.SetSkin(SandMoleSkin.Normal.ToString()); _spineController.SetSkin(SandMoleSkin.Normal.ToString());
var digTrack = _spineController.PlayAnimation(SandMoleAnimation.Dig.ToString(), false); var digInTrack = _spineController.PlayAnimation(SandMoleAnimation.DigIn.ToString(), false);
if (digTrack == null || !SkillUser) if (digInTrack == null || !SkillUser)
{ {
EndSkill(0, actions[0]); EndSkill(0, actions[0]);
yield break; yield break;
} }
yield return new WaitUntil(() => digTrack.IsComplete); yield return new WaitUntil(() => digInTrack.IsComplete);
_userHitBox.enabled = false; _userHitBox.enabled = false;
_aiMovement.Teleport(_centerSpawnTransform.position); _aiMovement.Teleport(_centerSpawnTransform.position);
@ -61,14 +61,14 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
yield return new WaitForSeconds(1f); yield return new WaitForSeconds(1f);
_userHitBox.enabled = true; _userHitBox.enabled = true;
var reverseDigTrack = _spineController.PlayAnimation(SandMoleAnimation.Dig.ToString(), false, 1f, true); var digOutTrack = _spineController.PlayAnimation(SandMoleAnimation.DigOut.ToString(), false);
if (reverseDigTrack == null || !SkillUser) if (digOutTrack == null || !SkillUser)
{ {
EndSkill(0, actions[0]); EndSkill(0, actions[0]);
yield break; yield break;
} }
yield return new WaitUntil(() => reverseDigTrack.TrackTime <= 0f); yield return new WaitUntil(() => digOutTrack.IsComplete);
_spineController.SetSkin(SandMoleSkin.Idle.ToString()); _spineController.SetSkin(SandMoleSkin.Idle.ToString());
var spinReady2Track = _spineController.PlayAnimation(SandMoleAnimation.SpinReady2.ToString(), false); var spinReady2Track = _spineController.PlayAnimation(SandMoleAnimation.SpinReady2.ToString(), false);

View 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: MiniSandMole
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: 0
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _GlowSize: 0.1
- _IsHit: 0
- _IsSeeThrough: 0
- _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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9d32cf8bfac003345a3e86211d6fb83c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -114,7 +114,7 @@ PrefabInstance:
- target: {fileID: 3216521486739552858, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3} - target: {fileID: 3216521486739552858, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: 'm_Materials.Array.data[0]' propertyPath: 'm_Materials.Array.data[0]'
value: value:
objectReference: {fileID: 2100000, guid: d9ca9344cd131c049810707093126ca7, type: 2} objectReference: {fileID: 2100000, guid: cd85759cb00b35c4b9d52d8814bf680b, type: 2}
- target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3} - target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: customMaterialOverrides.Array.size propertyPath: customMaterialOverrides.Array.size
value: 1 value: 1
@ -126,15 +126,23 @@ PrefabInstance:
- target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3} - target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: customMaterialOverrides.Array.data[0].replacementMaterial propertyPath: customMaterialOverrides.Array.data[0].replacementMaterial
value: value:
objectReference: {fileID: 2100000, guid: d9ca9344cd131c049810707093126ca7, type: 2} objectReference: {fileID: 2100000, guid: 9d32cf8bfac003345a3e86211d6fb83c, type: 2}
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3} - target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: _initialSkinName propertyPath: _initialSkinName
value: Normal value: Normal
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: _originalMaterial
value:
objectReference: {fileID: 0}
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3} - target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: _skeletonAnimation propertyPath: _skeletonAnimation
value: value:
objectReference: {fileID: 8381193314241175309} objectReference: {fileID: 8381193314241175309}
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: _replacementMaterial
value:
objectReference: {fileID: 2100000, guid: 9d32cf8bfac003345a3e86211d6fb83c, type: 2}
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3} - target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: m_LocalScale.x propertyPath: m_LocalScale.x
value: 2 value: 2

View File

@ -114,7 +114,7 @@ PrefabInstance:
- target: {fileID: 3216521486739552858, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3} - target: {fileID: 3216521486739552858, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: 'm_Materials.Array.data[0]' propertyPath: 'm_Materials.Array.data[0]'
value: value:
objectReference: {fileID: 2100000, guid: cd85759cb00b35c4b9d52d8814bf680b, type: 2} objectReference: {fileID: 2100000, guid: d9ca9344cd131c049810707093126ca7, type: 2}
- target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3} - target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: customSlotMaterials.Array.size propertyPath: customSlotMaterials.Array.size
value: 1 value: 1
@ -139,10 +139,18 @@ PrefabInstance:
propertyPath: _initialSkinName propertyPath: _initialSkinName
value: Normal value: Normal
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: _originalMaterial
value:
objectReference: {fileID: 0}
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3} - target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: _skeletonAnimation propertyPath: _skeletonAnimation
value: value:
objectReference: {fileID: 8381193314241175309} objectReference: {fileID: 8381193314241175309}
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: _replacementMaterial
value:
objectReference: {fileID: 2100000, guid: d9ca9344cd131c049810707093126ca7, type: 2}
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3} - target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: m_LocalScale.x propertyPath: m_LocalScale.x
value: 5 value: 5
@ -341,7 +349,6 @@ MonoBehaviour:
<MeshRenderer>k__BackingField: {fileID: 8739437251540422414} <MeshRenderer>k__BackingField: {fileID: 8739437251540422414}
<SpineController>k__BackingField: {fileID: 1835238398239900901} <SpineController>k__BackingField: {fileID: 1835238398239900901}
<SandMoleStatus>k__BackingField: {fileID: 4802344397510425122} <SandMoleStatus>k__BackingField: {fileID: 4802344397510425122}
_summonMiniSandMoles: []
--- !u!114 &4802344397510425122 --- !u!114 &4802344397510425122
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -431,6 +431,22 @@ MonoBehaviour:
m_CallState: 2 m_CallState: 2
m_ActionId: 2f6cc7b3-e806-4b78-b11f-e6ed70bb67ac m_ActionId: 2f6cc7b3-e806-4b78-b11f-e6ed70bb67ac
m_ActionName: 'Combat/ForceKillBoss[/Keyboard/f2]' m_ActionName: 'Combat/ForceKillBoss[/Keyboard/f2]'
- m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 522031830802304584}
m_TargetAssemblyTypeName: BlueWater.Players.Combat.CombatInput, Assembly-CSharp
m_MethodName: OnHealthPointMax
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: 0dbf1015-499a-43fe-b252-11c232b9a1ae
m_ActionName: 'Combat/HealthPointMax[/Keyboard/f3]'
m_NeverAutoSwitchControlSchemes: 0 m_NeverAutoSwitchControlSchemes: 0
m_DefaultControlScheme: m_DefaultControlScheme:
m_DefaultActionMap: Combat m_DefaultActionMap: Combat
@ -522,6 +538,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_rigidbody: {fileID: 1951754024224882079} _rigidbody: {fileID: 1951754024224882079}
_capsuleCollider: {fileID: 195447075763637701}
_animationController: {fileID: 3889238742570113982} _animationController: {fileID: 3889238742570113982}
<MaxHitCount>k__BackingField: 10 <MaxHitCount>k__BackingField: 10
<ComboAttacks>k__BackingField: <ComboAttacks>k__BackingField:

View File

@ -96,11 +96,10 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_rigidbody: {fileID: 5534983560125118465} _rigidbody: {fileID: 5534983560125118465}
_sphereCollider: {fileID: 8035217722497169373} _sphereCollider: {fileID: 8035217722497169373}
_projectilePrefab: {fileID: 1339409385940702124, guid: 54af6d1c262ce644085eb5fcb3bc84e5, type: 3} _projectilePrefab: {fileID: 1339409385940702124, guid: cb0210513f94b074db3d5cdeda82fef1, type: 3}
_muzzleParticle: {fileID: 8379670427772074999, guid: 82c2f5f04b06a78449817259830635fe, type: 3} _muzzleParticle: {fileID: 8379670427772074999, guid: 82c2f5f04b06a78449817259830635fe, type: 3}
<ImpactParticle>k__BackingField: {fileID: 4957782242376068896, guid: 02c25e70f96b2a34c92ae40dc6e32c35, type: 3} <ImpactParticle>k__BackingField: {fileID: 4957782242376068896, guid: 02c25e70f96b2a34c92ae40dc6e32c35, type: 3}
_colliderRadius: 0.25 _colliderRadius: 0.25
_collideOffset: 0
_attackDamage: 1 _attackDamage: 1
_targetLayer: _targetLayer:
serializedVersion: 2 serializedVersion: 2

View File

@ -80,7 +80,7 @@ SphereCollider:
m_ProvidesContacts: 0 m_ProvidesContacts: 0
m_Enabled: 1 m_Enabled: 1
serializedVersion: 3 serializedVersion: 3
m_Radius: 0.25 m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0} m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &1370849024704300366 --- !u!114 &1370849024704300366
MonoBehaviour: MonoBehaviour:
@ -96,11 +96,10 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_rigidbody: {fileID: 5534983560125118465} _rigidbody: {fileID: 5534983560125118465}
_sphereCollider: {fileID: 8035217722497169373} _sphereCollider: {fileID: 8035217722497169373}
_projectilePrefab: {fileID: 1339409385940702124, guid: cb0210513f94b074db3d5cdeda82fef1, type: 3} _projectilePrefab: {fileID: 8140003656796606540, guid: 4365e8e583da1f641a0fe88127be80c3, type: 3}
_muzzleParticle: {fileID: 8379670427772074999, guid: 82c2f5f04b06a78449817259830635fe, type: 3} _muzzleParticle: {fileID: 8379670427772074999, guid: 82c2f5f04b06a78449817259830635fe, type: 3}
<ImpactParticle>k__BackingField: {fileID: 4957782242376068896, guid: 02c25e70f96b2a34c92ae40dc6e32c35, type: 3} <ImpactParticle>k__BackingField: {fileID: 4957782242376068896, guid: 02c25e70f96b2a34c92ae40dc6e32c35, type: 3}
_colliderRadius: 0.25 _colliderRadius: 0.25
_collideOffset: 0
_attackDamage: 1 _attackDamage: 1
_targetLayer: _targetLayer:
serializedVersion: 2 serializedVersion: 2

View File

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