From f9f5cc1f7e7fd4408237a203a39bb6e26cd96ab3 Mon Sep 17 00:00:00 2001 From: Nam Tae Gun Date: Thu, 27 Jun 2024 00:51:29 +0900 Subject: [PATCH] =?UTF-8?q?#30=20=EB=8C=80=EC=89=AC=20=EC=BF=A8=ED=83=80?= =?UTF-8?q?=EC=9E=84=20=EC=A4=91=EC=97=90=20=EC=BA=90=EB=A6=AD=ED=84=B0=20?= =?UTF-8?q?=ED=9D=94=EB=93=A4=EB=A6=AC=EB=8A=94=20=ED=9A=A8=EA=B3=BC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit + SandMole 맵 bgm 변경 + SandMole Dig 사운드 추가 + GateOfSpikeParticle 사운드 변경 Closes #30 --- Assets/01.Scenes/02.Combat.unity | 84 +++++++++++++++++- .../Character/Player/Combat/CombatMovement.cs | 52 ++++++++++- .../ScriptableObject/Audio/BgmData.asset | 2 +- .../ScriptableObject/Audio/SfxData.asset | 6 +- .../Skill/Enemy/Boss/SandMole/GateOfSpikes.cs | 4 - .../Skill/Enemy/Boss/SandMole/SpikeBarrage.cs | 1 + .../Characters/Players/CombatPlayer.prefab | 3 + .../SandMole/GateOfSpikeParticle.prefab | 2 +- .... Frieren Battle Theme (128 kbps).mp3.meta | 23 +++++ .../{digging.mp3 => SandMoleDigInSfx.mp3} | Bin .../Bosses/SandMole/SandMoleDigInSfx.mp3.meta | 23 +++++ .../HotReload_BuildInfo.json.meta | 7 -- 12 files changed, 188 insertions(+), 19 deletions(-) create mode 100644 Assets/06.Sounds/Bgm/Frieren VS. Frieren Battle Theme (128 kbps).mp3.meta rename Assets/06.Sounds/Sfx/Characters/Enemies/Bosses/SandMole/{digging.mp3 => SandMoleDigInSfx.mp3} (100%) create mode 100644 Assets/06.Sounds/Sfx/Characters/Enemies/Bosses/SandMole/SandMoleDigInSfx.mp3.meta delete mode 100644 Assets/StreamingAssets/HotReload_BuildInfo.json.meta diff --git a/Assets/01.Scenes/02.Combat.unity b/Assets/01.Scenes/02.Combat.unity index f19f81013..5f218e42e 100644 --- a/Assets/01.Scenes/02.Combat.unity +++ b/Assets/01.Scenes/02.Combat.unity @@ -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 diff --git a/Assets/02.Scripts/Character/Player/Combat/CombatMovement.cs b/Assets/02.Scripts/Character/Player/Combat/CombatMovement.cs index 764974d8f..afe1c9070 100644 --- a/Assets/02.Scripts/Character/Player/Combat/CombatMovement.cs +++ b/Assets/02.Scripts/Character/Player/Combat/CombatMovement.cs @@ -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(); } diff --git a/Assets/02.Scripts/ScriptableObject/Audio/BgmData.asset b/Assets/02.Scripts/ScriptableObject/Audio/BgmData.asset index b1a459fd8..ec947cebb 100644 --- a/Assets/02.Scripts/ScriptableObject/Audio/BgmData.asset +++ b/Assets/02.Scripts/ScriptableObject/Audio/BgmData.asset @@ -22,6 +22,6 @@ MonoBehaviour: - k__BackingField: RhinocerosMap k__BackingField: {fileID: 8300000, guid: 3120a718e36ab39419f53318deed3976, type: 3} - k__BackingField: SandMoleMap - k__BackingField: {fileID: 8300000, guid: 4914a1d514cce3f459a0af45d62eeeee, type: 3} + k__BackingField: {fileID: 8300000, guid: 436cec88a3723e74baf4088b9508c79c, type: 3} - k__BackingField: GhostBarrelMap k__BackingField: {fileID: 8300000, guid: d1f140d54184dc7449198f540d98d305, type: 3} diff --git a/Assets/02.Scripts/ScriptableObject/Audio/SfxData.asset b/Assets/02.Scripts/ScriptableObject/Audio/SfxData.asset index 68cb97a91..f68d109f3 100644 --- a/Assets/02.Scripts/ScriptableObject/Audio/SfxData.asset +++ b/Assets/02.Scripts/ScriptableObject/Audio/SfxData.asset @@ -39,10 +39,12 @@ MonoBehaviour: k__BackingField: {fileID: 8300000, guid: de54536a55703434b8ad53b9a7da3d35, type: 3} - k__BackingField: Shining k__BackingField: {fileID: 8300000, guid: 916b477636e0e544daf41db98f09e3ce, type: 3} - - k__BackingField: SandMoleCry - k__BackingField: {fileID: 8300000, guid: fe650001176ef0b46910e6c831e7a232, type: 3} - k__BackingField: MiniSandMoleCry k__BackingField: {fileID: 8300000, guid: 57e09a61748af294aa6010c75327d90e, type: 3} + - k__BackingField: SandMoleCry + k__BackingField: {fileID: 8300000, guid: fe650001176ef0b46910e6c831e7a232, type: 3} + - k__BackingField: SandMoleDigIn + k__BackingField: {fileID: 8300000, guid: 9b6504a200c0254409913f789b0d2c52, type: 3} - k__BackingField: SandMoleStunned k__BackingField: {fileID: 8300000, guid: 47e3d7492b6075a41b87468bf9801fcf, type: 3} - k__BackingField: SandMoleRoll diff --git a/Assets/02.Scripts/Skill/Enemy/Boss/SandMole/GateOfSpikes.cs b/Assets/02.Scripts/Skill/Enemy/Boss/SandMole/GateOfSpikes.cs index da4387e92..1671dff25 100644 --- a/Assets/02.Scripts/Skill/Enemy/Boss/SandMole/GateOfSpikes.cs +++ b/Assets/02.Scripts/Skill/Enemy/Boss/SandMole/GateOfSpikes.cs @@ -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); diff --git a/Assets/02.Scripts/Skill/Enemy/Boss/SandMole/SpikeBarrage.cs b/Assets/02.Scripts/Skill/Enemy/Boss/SandMole/SpikeBarrage.cs index a7df4ed50..e119cc781 100644 --- a/Assets/02.Scripts/Skill/Enemy/Boss/SandMole/SpikeBarrage.cs +++ b/Assets/02.Scripts/Skill/Enemy/Boss/SandMole/SpikeBarrage.cs @@ -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; diff --git a/Assets/05.Prefabs/Characters/Players/CombatPlayer.prefab b/Assets/05.Prefabs/Characters/Players/CombatPlayer.prefab index 0d90d7f46..634d71a15 100644 --- a/Assets/05.Prefabs/Characters/Players/CombatPlayer.prefab +++ b/Assets/05.Prefabs/Characters/Players/CombatPlayer.prefab @@ -512,6 +512,9 @@ MonoBehaviour: k__BackingField: 20 k__BackingField: 0.2 k__BackingField: 0.5 + k__BackingField: 1 + k__BackingField: 0.1 + k__BackingField: 2 --- !u!114 &3889238742570113982 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/05.Prefabs/Particles/Enemies/Bosses/SandMole/GateOfSpikeParticle.prefab b/Assets/05.Prefabs/Particles/Enemies/Bosses/SandMole/GateOfSpikeParticle.prefab index 2de83b6e0..0587a05c8 100644 --- a/Assets/05.Prefabs/Particles/Enemies/Bosses/SandMole/GateOfSpikeParticle.prefab +++ b/Assets/05.Prefabs/Particles/Enemies/Bosses/SandMole/GateOfSpikeParticle.prefab @@ -106,4 +106,4 @@ MonoBehaviour: m_Bits: 2240 _useAutoDestroy: 1 _autoDestroyTime: 10 - _awakeSfxName: + _awakeSfxName: ThrowSpike diff --git a/Assets/06.Sounds/Bgm/Frieren VS. Frieren Battle Theme (128 kbps).mp3.meta b/Assets/06.Sounds/Bgm/Frieren VS. Frieren Battle Theme (128 kbps).mp3.meta new file mode 100644 index 000000000..ff8ff5961 --- /dev/null +++ b/Assets/06.Sounds/Bgm/Frieren VS. Frieren Battle Theme (128 kbps).mp3.meta @@ -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: diff --git a/Assets/06.Sounds/Sfx/Characters/Enemies/Bosses/SandMole/digging.mp3 b/Assets/06.Sounds/Sfx/Characters/Enemies/Bosses/SandMole/SandMoleDigInSfx.mp3 similarity index 100% rename from Assets/06.Sounds/Sfx/Characters/Enemies/Bosses/SandMole/digging.mp3 rename to Assets/06.Sounds/Sfx/Characters/Enemies/Bosses/SandMole/SandMoleDigInSfx.mp3 diff --git a/Assets/06.Sounds/Sfx/Characters/Enemies/Bosses/SandMole/SandMoleDigInSfx.mp3.meta b/Assets/06.Sounds/Sfx/Characters/Enemies/Bosses/SandMole/SandMoleDigInSfx.mp3.meta new file mode 100644 index 000000000..1383161ac --- /dev/null +++ b/Assets/06.Sounds/Sfx/Characters/Enemies/Bosses/SandMole/SandMoleDigInSfx.mp3.meta @@ -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: diff --git a/Assets/StreamingAssets/HotReload_BuildInfo.json.meta b/Assets/StreamingAssets/HotReload_BuildInfo.json.meta deleted file mode 100644 index e104ed23a..000000000 --- a/Assets/StreamingAssets/HotReload_BuildInfo.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 27a762b0337996843b33a98c4c1f03b8 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: