#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_FillCenter: 1
m_FillMethod: 1
m_FillAmount: 0.613
m_FillAmount: 0.3
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0

View File

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

View File

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

View File

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

View File

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using BlueWater.Items;
using BlueWater.Maps;
@ -27,7 +28,8 @@ namespace BlueWater.Enemies.Bosses.SandMole
{
None = 0,
Die,
Dig,
DigIn,
DigOut,
Idle,
Roar,
Spin,
@ -90,6 +92,17 @@ namespace BlueWater.Enemies.Bosses.SandMole
public override async void Initialize()
{
StartCoroutine(InitializeCoroutine());
}
#endregion
// Methods
#region Methods
private IEnumerator InitializeCoroutine()
{
HitBoxCollider.enabled = false;
BossHealthPoint.Initialize(true, SandMoleData.MaxHealthPoint,
SandMoleData.DisplayName, SandMoleMapController.ParticleInstanceLocation);
BossHealthPoint.OnHealthChanged += SummonMiniSandMole;
@ -98,17 +111,25 @@ namespace BlueWater.Enemies.Bosses.SandMole
StopMove();
SpineController.SetSkin(SandMoleSkin.Normal.ToString());
var isCameraShakeActive = 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();
HitBoxCollider.enabled = true;
}
#endregion
// Methods
#region Methods
protected override async void Die()
{
BossSkillController.StopAllCoroutine();

View File

@ -18,7 +18,7 @@ namespace BlueWater.Enemies.Bosses
// Classes
[field: SerializeField]
public SpineController SpineController { get; private set; }
public bool IsMoving { get; private set; }
private Vector3 _currentDirection = Vector3.right;

View File

@ -16,6 +16,9 @@ namespace BlueWater.Players.Combat
// Components
[SerializeField]
private Rigidbody _rigidbody;
[SerializeField]
private CapsuleCollider _capsuleCollider;
[SerializeField]
private AnimationController _animationController;
@ -91,6 +94,7 @@ namespace BlueWater.Players.Combat
private void InitializeComponents()
{
_rigidbody = GetComponent<Rigidbody>();
_capsuleCollider = GetComponent<CapsuleCollider>();
_animationController = GetComponent<AnimationController>();
_iPhysicMovable = GetComponent<IPhysicMovable>();
@ -257,9 +261,10 @@ namespace BlueWater.Players.Combat
{
iDamageable.TakeDamage(ComboAttacks[comboAttackCount - 1].Damage);
// 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;
Instantiate(_swordAttackParticle, closestPoint, Quaternion.identity);
Instantiate(_swordAttackParticle, spawnPosition, Quaternion.identity);
}
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)
{
if (context.performed)

View File

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

View File

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

View File

@ -1,5 +1,7 @@
using System.Collections.Generic;
using BlueWater.Audios;
using BlueWater.Enemies.Bosses;
using BlueWater.Uis;
using Sirenix.OdinInspector;
using UnityEngine;
@ -160,6 +162,8 @@ namespace BlueWater.Maps
if (!GameManager.Instance.CurrentCombatPlayer) return;
GameManager.Instance.CurrentCombatPlayer.transform.position = PlayerSpawnLocation.position;
CombatUiManager.Instance.FieldBossHealthPointUi.SetActiveHpSlider(false);
AudioManager.Instance.StopBgm();
}
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)
{
switch (saveStage)
@ -87,8 +73,7 @@ namespace BlueWater.Maps
{
_currentMapController.ResetMap();
}
GameManager.Instance.CurrentCombatPlayer.SetCurrentHealthPointMax();
AudioManager.Instance.StopBgm();
var moveMapController = GetMapController((SaveStage)stage);
moveMapController.MovePlayer();
}

View File

@ -783,6 +783,15 @@
"interactions": "",
"initialStateCheck": false
},
{
"name": "HealthPointMax",
"type": "Button",
"id": "0dbf1015-499a-43fe-b252-11c232b9a1ae",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "OpenMenu",
"type": "Button",
@ -946,6 +955,17 @@
"isComposite": 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": "",
"id": "46591849-5c1e-4b83-b490-0a4ad29ed80f",

View File

@ -46,14 +46,14 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
{
EnableSkill = false;
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
var digTrack = _spineController.PlayAnimation(SandMoleAnimation.Dig.ToString(), false);
if (digTrack == null || !SkillUser)
var digInTrack = _spineController.PlayAnimation(SandMoleAnimation.DigIn.ToString(), false);
if (digInTrack == null || !SkillUser)
{
EndSkill(0, actions[0]);
yield break;
}
yield return new WaitUntil(() => digTrack.IsComplete);
yield return new WaitUntil(() => digInTrack.IsComplete);
_userHitBox.enabled = false;
_aiMovement.Teleport(_centerSpawnTransform.position);
@ -61,14 +61,14 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
yield return new WaitForSeconds(1f);
_userHitBox.enabled = true;
var reverseDigTrack = _spineController.PlayAnimation(SandMoleAnimation.Dig.ToString(), false, 1f, true);
if (reverseDigTrack == null || !SkillUser)
var digOutTrack = _spineController.PlayAnimation(SandMoleAnimation.DigOut.ToString(), false);
if (digOutTrack == null || !SkillUser)
{
EndSkill(0, actions[0]);
yield break;
}
yield return new WaitUntil(() => reverseDigTrack.TrackTime <= 0f);
yield return new WaitUntil(() => digOutTrack.IsComplete);
_spineController.SetSkin(SandMoleSkin.Idle.ToString());
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}
propertyPath: 'm_Materials.Array.data[0]'
value:
objectReference: {fileID: 2100000, guid: d9ca9344cd131c049810707093126ca7, type: 2}
objectReference: {fileID: 2100000, guid: cd85759cb00b35c4b9d52d8814bf680b, type: 2}
- target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: customMaterialOverrides.Array.size
value: 1
@ -126,15 +126,23 @@ PrefabInstance:
- target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: customMaterialOverrides.Array.data[0].replacementMaterial
value:
objectReference: {fileID: 2100000, guid: d9ca9344cd131c049810707093126ca7, type: 2}
objectReference: {fileID: 2100000, guid: 9d32cf8bfac003345a3e86211d6fb83c, type: 2}
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: _initialSkinName
value: Normal
objectReference: {fileID: 0}
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: _originalMaterial
value:
objectReference: {fileID: 0}
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
propertyPath: _skeletonAnimation
value:
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}
propertyPath: m_LocalScale.x
value: 2

View File

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

View File

@ -431,6 +431,22 @@ MonoBehaviour:
m_CallState: 2
m_ActionId: 2f6cc7b3-e806-4b78-b11f-e6ed70bb67ac
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_DefaultControlScheme:
m_DefaultActionMap: Combat
@ -522,6 +538,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
_rigidbody: {fileID: 1951754024224882079}
_capsuleCollider: {fileID: 195447075763637701}
_animationController: {fileID: 3889238742570113982}
<MaxHitCount>k__BackingField: 10
<ComboAttacks>k__BackingField:

View File

@ -96,11 +96,10 @@ MonoBehaviour:
m_EditorClassIdentifier:
_rigidbody: {fileID: 5534983560125118465}
_sphereCollider: {fileID: 8035217722497169373}
_projectilePrefab: {fileID: 1339409385940702124, guid: 54af6d1c262ce644085eb5fcb3bc84e5, type: 3}
_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

View File

@ -80,7 +80,7 @@ SphereCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 0.25
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &1370849024704300366
MonoBehaviour:
@ -96,11 +96,10 @@ MonoBehaviour:
m_EditorClassIdentifier:
_rigidbody: {fileID: 5534983560125118465}
_sphereCollider: {fileID: 8035217722497169373}
_projectilePrefab: {fileID: 1339409385940702124, guid: cb0210513f94b074db3d5cdeda82fef1, type: 3}
_projectilePrefab: {fileID: 8140003656796606540, guid: 4365e8e583da1f641a0fe88127be80c3, 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

View File

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