#30 대쉬 쿨타임 중에 캐릭터 흔들리는 효과 추가

+ SandMole 맵 bgm 변경
+ SandMole Dig 사운드 추가
+ GateOfSpikeParticle 사운드 변경

Closes #30
This commit is contained in:
Nam Tae Gun 2024-06-27 00:51:29 +09:00
parent d698d5c87b
commit f9f5cc1f7e
12 changed files with 188 additions and 19 deletions

View File

@ -2752,6 +2752,80 @@ MonoBehaviour:
m_EditorClassIdentifier:
SwitchMapsOpened: 5
SwitchMapsClosed: 4
--- !u!1001 &456764211
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1959431164}
m_Modifications:
- target: {fileID: 125726, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: m_Name
value: SmokeExplosionDark
objectReference: {fileID: 0}
- target: {fileID: 464840, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 464840, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 464840, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 464840, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 464840, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: m_LocalRotation.x
value: -0.7071068
objectReference: {fileID: 0}
- target: {fileID: 464840, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 464840, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 464840, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: -90
objectReference: {fileID: 0}
- target: {fileID: 464840, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 464840, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 19844120, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: looping
value: 1
objectReference: {fileID: 0}
- target: {fileID: 19915054, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 19944218, guid: 28237332098b6a54a92d770e23648a92, type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 28237332098b6a54a92d770e23648a92, type: 3}
--- !u!4 &456764212 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 464840, guid: 28237332098b6a54a92d770e23648a92, type: 3}
m_PrefabInstance: {fileID: 456764211}
m_PrefabAsset: {fileID: 0}
--- !u!1 &457545153
GameObject:
m_ObjectHideFlags: 0
@ -6895,7 +6969,10 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: 6697035683559506932, guid: 680ce017bd2b7d34a99245242d032120, type: 3}
insertIndex: -1
addedObject: {fileID: 456764212}
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 680ce017bd2b7d34a99245242d032120, type: 3}
--- !u!1 &1179122868 stripped
@ -12775,6 +12852,11 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1921707981}
m_CullTransparentMesh: 1
--- !u!4 &1959431164 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 6697035683559506932, guid: 680ce017bd2b7d34a99245242d032120, type: 3}
m_PrefabInstance: {fileID: 1179122867}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1980749791
GameObject:
m_ObjectHideFlags: 0

View File

@ -64,6 +64,7 @@ namespace BlueWater.Players.Combat
private float _finalSpeed;
// Dash
[field: Title("대쉬")]
[field: SerializeField, Range(1f, 50f), Tooltip("대쉬 속도")]
public float DashSpeed { get; private set; } = 20f;
@ -72,6 +73,15 @@ namespace BlueWater.Players.Combat
[field: SerializeField, Range(0f, 5f), Tooltip("대쉬 쿨타임")]
public float DashCooldown { get; private set; } = 0.5f;
[field: SerializeField, Tooltip("대쉬가 쿨타임일 때 이펙트 사용 여부")]
public bool EnableDashCooldownEffect { get; private set; } = true;
[field: SerializeField, Range(0f, 1f), Tooltip("대쉬가 쿨타임일 때, VisualLook이 x축 좌우로 움직이는 범위")]
public float DashCooldownShakingOffset { get; private set; } = 0.1f;
[field: SerializeField, Range(0, 10f), Tooltip("대쉬가 쿨타임일 때, VisualLook이 x축 좌우로 움직이는 횟수")]
public int DashCooldownShakingCount { get; private set; } = 2;
public bool IsDashEnabled { get; private set; } = true;
@ -89,6 +99,7 @@ namespace BlueWater.Players.Combat
public bool IsDashCoolDownActive { get; private set; }
private Coroutine _dashCoroutine;
private Coroutine _dashCooldownEffectCoroutineInstance;
#endregion
@ -191,7 +202,23 @@ namespace BlueWater.Players.Combat
// Dash
public bool CanDash()
{
if (!IsDashEnabled || IsDashing || IsDashCoolDownActive) return false;
if (!IsDashEnabled || IsDashing) return false;
if (IsDashCoolDownActive)
{
if (EnableDashCooldownEffect)
{
Utils.StartUniqueCoroutine(this, ref _dashCooldownEffectCoroutineInstance, DashCoolDownEffectCoroutine());
}
return false;
}
if (EnableDashCooldownEffect && _dashCooldownEffectCoroutineInstance != null)
{
StopCoroutine(_dashCooldownEffectCoroutineInstance);
_dashCooldownEffectCoroutineInstance = null;
_visualLook.localPosition = Vector3.zero;
}
var isActivatingSkill = _skillHandler?.IsActivatingSkill ?? false;
var isStunned = _stunnable?.IsStunned ?? false;
@ -206,6 +233,21 @@ namespace BlueWater.Players.Combat
return true;
}
private IEnumerator DashCoolDownEffectCoroutine()
{
var newLocalPosition = _visualLook.localPosition;
for (var i = 0; i < DashCooldownShakingCount; i++)
{
newLocalPosition.x = DashCooldownShakingOffset;
_visualLook.localPosition = newLocalPosition;
yield return null;
newLocalPosition.x = -DashCooldownShakingOffset;
_visualLook.localPosition = newLocalPosition;
yield return null;
}
}
public void Dash()
{
@ -236,8 +278,12 @@ namespace BlueWater.Players.Combat
while (_animationController.IsComparingCurrentAnimation("DashState") &&
_animationController.GetCurrentAnimationNormalizedTime() < 1f)
{
var finalVelocity = transform.position + dashDirection * (DashSpeed * Time.fixedDeltaTime);
Rigidbody.MovePosition(finalVelocity);
// MovePosition()는 벽을 뚫는 현상이 있음
// var finalVelocity = transform.position + dashDirection * (DashSpeed * Time.fixedDeltaTime);
// Rigidbody.MovePosition(finalVelocity);
var finalVelocity = dashDirection * DashSpeed;
Rigidbody.linearVelocity = finalVelocity;
yield return new WaitForFixedUpdate();
}

View File

@ -22,6 +22,6 @@ MonoBehaviour:
- <BgmName>k__BackingField: RhinocerosMap
<Clip>k__BackingField: {fileID: 8300000, guid: 3120a718e36ab39419f53318deed3976, type: 3}
- <BgmName>k__BackingField: SandMoleMap
<Clip>k__BackingField: {fileID: 8300000, guid: 4914a1d514cce3f459a0af45d62eeeee, type: 3}
<Clip>k__BackingField: {fileID: 8300000, guid: 436cec88a3723e74baf4088b9508c79c, type: 3}
- <BgmName>k__BackingField: GhostBarrelMap
<Clip>k__BackingField: {fileID: 8300000, guid: d1f140d54184dc7449198f540d98d305, type: 3}

View File

@ -39,10 +39,12 @@ MonoBehaviour:
<Clip>k__BackingField: {fileID: 8300000, guid: de54536a55703434b8ad53b9a7da3d35, type: 3}
- <SfxName>k__BackingField: Shining
<Clip>k__BackingField: {fileID: 8300000, guid: 916b477636e0e544daf41db98f09e3ce, type: 3}
- <SfxName>k__BackingField: SandMoleCry
<Clip>k__BackingField: {fileID: 8300000, guid: fe650001176ef0b46910e6c831e7a232, type: 3}
- <SfxName>k__BackingField: MiniSandMoleCry
<Clip>k__BackingField: {fileID: 8300000, guid: 57e09a61748af294aa6010c75327d90e, type: 3}
- <SfxName>k__BackingField: SandMoleCry
<Clip>k__BackingField: {fileID: 8300000, guid: fe650001176ef0b46910e6c831e7a232, type: 3}
- <SfxName>k__BackingField: SandMoleDigIn
<Clip>k__BackingField: {fileID: 8300000, guid: 9b6504a200c0254409913f789b0d2c52, type: 3}
- <SfxName>k__BackingField: SandMoleStunned
<Clip>k__BackingField: {fileID: 8300000, guid: 47e3d7492b6075a41b87468bf9801fcf, type: 3}
- <SfxName>k__BackingField: SandMoleRoll

View File

@ -54,10 +54,6 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
yield return new WaitUntil(() => roarTrack.IsComplete);
AudioManager.Instance.PlaySfx("ThrowSpike");
AudioManager.Instance.PlaySfx("ThrowSpike");
AudioManager.Instance.PlaySfx("ThrowSpike");
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
_spineController.PlayAnimation(SandMoleAnimation.Idle.ToString(), true);

View File

@ -54,6 +54,7 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
yield break;
}
AudioManager.Instance.PlaySfx("SandMoleDigIn");
yield return new WaitUntil(() => digInTrack.IsComplete);
_userHitBox.enabled = false;

View File

@ -512,6 +512,9 @@ MonoBehaviour:
<DashSpeed>k__BackingField: 20
<DashTime>k__BackingField: 0.2
<DashCooldown>k__BackingField: 0.5
<EnableDashCooldownEffect>k__BackingField: 1
<DashCooldownShakingOffset>k__BackingField: 0.1
<DashCooldownShakingCount>k__BackingField: 2
--- !u!114 &3889238742570113982
MonoBehaviour:
m_ObjectHideFlags: 0

View File

@ -106,4 +106,4 @@ MonoBehaviour:
m_Bits: 2240
_useAutoDestroy: 1
_autoDestroyTime: 10
_awakeSfxName:
_awakeSfxName: ThrowSpike

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 436cec88a3723e74baf4088b9508c79c
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 9b6504a200c0254409913f789b0d2c52
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 27a762b0337996843b33a98c4c1f03b8
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: