diff --git a/Assets/01.Scenes/02.Combat.unity b/Assets/01.Scenes/02.Combat.unity index ec175d293..4f503f3c8 100644 --- a/Assets/01.Scenes/02.Combat.unity +++ b/Assets/01.Scenes/02.Combat.unity @@ -11006,7 +11006,7 @@ MonoBehaviour: k__BackingField: {fileID: 36953787} k__BackingField: {fileID: 1011270532} k__BackingField: {fileID: 1213070730} - _dailyBgm: DailyBgm2 + k__BackingField: DailyBgm1 --- !u!4 &1597727070 Transform: m_ObjectHideFlags: 0 diff --git a/Assets/02.Scripts/Item/ItemDropTableSo.cs b/Assets/02.Scripts/Item/ItemDropTableSo.cs index 678cf8a7a..db6b69dbb 100644 --- a/Assets/02.Scripts/Item/ItemDropTableSo.cs +++ b/Assets/02.Scripts/Item/ItemDropTableSo.cs @@ -2,9 +2,12 @@ using System.Collections.Generic; using System.IO; using BlueWater.Items; using Newtonsoft.Json.Linq; -using UnityEditor; using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif + namespace BlueWater { public class ItemDropTableSo : ScriptableObject @@ -15,6 +18,7 @@ namespace BlueWater private const string CharacterDataJsonPath = "Assets/Resources/Json/CharacterData.json"; private const string FilePath = "Assets/02.Scripts/ScriptableObject/Item/ItemDropTable.asset"; +#if UNITY_EDITOR [MenuItem("Tools/ItemDropTable ScriptableObject 생성")] private static void CreateItemDropTable() { @@ -26,6 +30,7 @@ namespace BlueWater AssetDatabase.SaveAssets(); Debug.Log("ItemDropTable ScriptableObject created successfully in ItemDropTableScriptableObject class."); } +#endif private static ItemDropTableSo CreateFromJson(string itemDropJsonString, string characterDataJsonString) { diff --git a/Assets/02.Scripts/Map/BossMapController.cs b/Assets/02.Scripts/Map/BossMapController.cs index fd454732f..033f43b78 100644 --- a/Assets/02.Scripts/Map/BossMapController.cs +++ b/Assets/02.Scripts/Map/BossMapController.cs @@ -143,6 +143,7 @@ namespace BlueWater.Maps OpenMapEntrances(); GameManager.Instance.CurrentCombatPlayer.DeactivateInvincibility(); + AudioManager.Instance.PlayBgm(MapManager.Instance.DailyBgm); } } } \ No newline at end of file diff --git a/Assets/02.Scripts/Map/MapManager.cs b/Assets/02.Scripts/Map/MapManager.cs index aede851d4..076055dd9 100644 --- a/Assets/02.Scripts/Map/MapManager.cs +++ b/Assets/02.Scripts/Map/MapManager.cs @@ -16,8 +16,8 @@ namespace BlueWater.Maps [field: SerializeField] public SandMoleMapController SandMoleMapController { get; private set; } - [SerializeField] - private string _dailyBgm = "DailyBgm1"; + [field: SerializeField] + public string DailyBgm { get; private set; }= "DailyBgm1"; private List _mapControllers; private MapController _currentMapController; @@ -34,7 +34,7 @@ namespace BlueWater.Maps private void Start() { - AudioManager.Instance.PlayBgm(_dailyBgm); + AudioManager.Instance.PlayBgm(DailyBgm); } public MapController GetMapController(SaveStage saveStage) @@ -61,7 +61,7 @@ namespace BlueWater.Maps element.ResetMap(true); } GameManager.Instance.CurrentCombatPlayer.SetCurrentHealthPointMax(); - AudioManager.Instance.PlayBgm(_dailyBgm); + AudioManager.Instance.PlayBgm(DailyBgm); } public void RestartCurrentMap() @@ -72,7 +72,7 @@ namespace BlueWater.Maps } _currentMapController = GetMapController(DataManager.Instance.CurrentSaveStage); _currentMapController.RestartMap(); - AudioManager.Instance.PlayBgm(_dailyBgm); + AudioManager.Instance.PlayBgm(DailyBgm); } public void MoveSelectStage(int stage) @@ -85,7 +85,7 @@ namespace BlueWater.Maps var moveMapController = GetMapController((SaveStage)stage); moveMapController.MovePlayer(); - AudioManager.Instance.PlayBgm(_dailyBgm); + AudioManager.Instance.PlayBgm(DailyBgm); } public void ForceKillCurrentBoss() diff --git a/Assets/02.Scripts/Prop/Rockfall.cs b/Assets/02.Scripts/Prop/Rockfall.cs index 45ce4dcd6..86ea13b65 100644 --- a/Assets/02.Scripts/Prop/Rockfall.cs +++ b/Assets/02.Scripts/Prop/Rockfall.cs @@ -13,6 +13,9 @@ namespace BlueWater [Title("컴포넌트")] [SerializeField, Required] private SphereCollider _sphereCollider; + + [SerializeField, Required] + private GameObject _visualLook; [SerializeField] private DecalProjector _indicator; @@ -28,11 +31,17 @@ namespace BlueWater [SerializeField] private LayerMask _groundLayer; + [SerializeField, Range(0f, 5f), ShowIf("@_isUsingIndicator")] + private float _indicatorTime = 0.5f; + [SerializeField, Range(0f, 5f)] - private float _fallTime = 1f; + private float _fallTime = 0.5f; [SerializeField, Range(0, 5)] private int _attackDamage = 1; + + [SerializeField] + private bool _isAcceleratedFall = true; [Title("Ground Crash 설정")] [SerializeField] @@ -52,6 +61,7 @@ namespace BlueWater private IEnumerator Start() { + _visualLook.SetActive(false); _sphereCollider.enabled = false; _startPosition = transform.position; SpawnLocation = MapManager.Instance.SandMoleMapController.ParticleInstanceLocation; @@ -67,15 +77,15 @@ namespace BlueWater ShowIndicator(); var elapsedTime = 0f; - while (elapsedTime <= _fallTime) + while (elapsedTime <= _indicatorTime) { - var time = elapsedTime / _fallTime; + var time = elapsedTime / _indicatorTime; if (_isUsingIndicator && _indicator) { var fillValue = Mathf.Lerp(0f, 1f, time); _indicator.material.SetFloat(_fillHash, fillValue); } - transform.position = Vector3.Lerp(_startPosition, _endPosition, time); + //transform.position = Vector3.Lerp(_startPosition, _endPosition, time); elapsedTime += Time.deltaTime; yield return null; @@ -83,6 +93,37 @@ namespace BlueWater _indicator.material.SetFloat(_fillHash, 1f); HideIndicator(); + _visualLook.SetActive(true); + + if (_isAcceleratedFall) + { + var distance = Vector3.Distance(_startPosition, _endPosition); + var acceleration = 2 * distance / (_fallTime * _fallTime); // a = 2d / t^2 + elapsedTime = 0f; + + while (elapsedTime <= _fallTime) + { + var time = elapsedTime; + var displacement = 0.5f * acceleration * time * time; + var progress = displacement / distance; + transform.position = Vector3.Lerp(_startPosition, _endPosition, progress); + elapsedTime += Time.deltaTime; + + yield return null; + } + } + else + { + elapsedTime = 0f; + while (elapsedTime <= _fallTime) + { + var time = elapsedTime / _fallTime; + transform.position = Vector3.Lerp(_startPosition, _endPosition, time); + elapsedTime += Time.deltaTime; + + yield return null; + } + } if (!string.IsNullOrEmpty(_groundCrashSfxName)) { diff --git a/Assets/02.Scripts/ScriptableObject/Skill/Enemy/Boss/SandMole/SingleRollData.asset b/Assets/02.Scripts/ScriptableObject/Skill/Enemy/Boss/SandMole/SingleRollData.asset index 56e4ba9aa..72348749b 100644 --- a/Assets/02.Scripts/ScriptableObject/Skill/Enemy/Boss/SandMole/SingleRollData.asset +++ b/Assets/02.Scripts/ScriptableObject/Skill/Enemy/Boss/SandMole/SingleRollData.asset @@ -38,4 +38,4 @@ MonoBehaviour: k__BackingField: {fileID: 403575580428700795, guid: 28e4d21533af9b949a4cb910f2d4fa4c, type: 3} k__BackingField: {x: -2, y: 2} k__BackingField: 2 - k__BackingField: 5 + k__BackingField: 10 diff --git a/Assets/02.Scripts/Ui/Combat/CombatSkillUi.cs b/Assets/02.Scripts/Ui/Combat/CombatSkillUi.cs index 98c7bd13d..6f0f754a7 100644 --- a/Assets/02.Scripts/Ui/Combat/CombatSkillUi.cs +++ b/Assets/02.Scripts/Ui/Combat/CombatSkillUi.cs @@ -1,8 +1,6 @@ -using System; using DG.Tweening; using Sirenix.OdinInspector; using TMPro; -using UnityEditor.Searcher; using UnityEngine; using UnityEngine.UI; diff --git a/Assets/04.Materials/TransparentUnlit.mat b/Assets/04.Materials/TransparentUnlit.mat index 74419980d..ba3dd85f9 100644 --- a/Assets/04.Materials/TransparentUnlit.mat +++ b/Assets/04.Materials/TransparentUnlit.mat @@ -30,7 +30,7 @@ Material: m_InvalidKeywords: [] m_LightmapFlags: 4 m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 + m_DoubleSidedGI: 1 m_CustomRenderQueue: 3000 stringTagMap: RenderType: Transparent @@ -109,7 +109,7 @@ Material: - _BumpScale: 1 - _ClearCoatMask: 0 - _ClearCoatSmoothness: 0 - - _Cull: 2 + - _Cull: 0 - _Cutoff: 0.5 - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 diff --git a/Assets/05.Prefabs/Particles/Enemies/Bosses/SandMole/SpikeProjectileParticle2.prefab b/Assets/05.Prefabs/Particles/Enemies/Bosses/SandMole/SpikeProjectileParticle2.prefab index 4ab4df72b..9463ad04f 100644 --- a/Assets/05.Prefabs/Particles/Enemies/Bosses/SandMole/SpikeProjectileParticle2.prefab +++ b/Assets/05.Prefabs/Particles/Enemies/Bosses/SandMole/SpikeProjectileParticle2.prefab @@ -9603,7 +9603,8 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: -0.5} m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} m_ConstrainProportionsScale: 1 - m_Children: [] + m_Children: + - {fileID: 3599876572271264589} m_Father: {fileID: 32251738312703202} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!198 &6923984020879853499 @@ -14404,6 +14405,93 @@ ParticleSystemRenderer: m_MeshWeighting2: 1 m_MeshWeighting3: 1 m_MaskInteraction: 0 +--- !u!1 &5070106774423968683 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3599876572271264589} + - component: {fileID: 3564601698978461781} + m_Layer: 0 + m_Name: Shadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3599876572271264589 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5070106774423968683} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7962525787573650407} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!212 &3564601698978461781 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5070106774423968683} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: d3c87e7ec1e83654cb2bff3178900c99, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 27e9d61a31b61aa40ad14805e0c184eb, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &8140003656796606540 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/05.Prefabs/Props/DamageableProps/Rockfall.prefab b/Assets/05.Prefabs/Props/DamageableProps/Rockfall.prefab index 1ee299387..fd82d2b22 100644 --- a/Assets/05.Prefabs/Props/DamageableProps/Rockfall.prefab +++ b/Assets/05.Prefabs/Props/DamageableProps/Rockfall.prefab @@ -1,5 +1,92 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &2120541508449996527 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6229300703101880482} + - component: {fileID: 5119753316800573436} + m_Layer: 8 + m_Name: Shadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6229300703101880482 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2120541508449996527} + 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: 6241053207180088262} + m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0} +--- !u!212 &5119753316800573436 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2120541508449996527} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: d3c87e7ec1e83654cb2bff3178900c99, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 + m_Sprite: {fileID: 21300000, guid: 27e9d61a31b61aa40ad14805e0c184eb, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &8995215974275723360 GameObject: m_ObjectHideFlags: 0 @@ -27,7 +114,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} m_LocalPosition: {x: 0, y: 5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 10} + m_LocalScale: {x: 1, y: 1, z: 20} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 6877682250950493550} @@ -84,6 +171,10 @@ PrefabInstance: propertyPath: m_WasSpriteAssigned value: 1 objectReference: {fileID: 0} + - target: {fileID: 3580758810857167321, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 33fe0716974723b4db51774fcb38b8c7, type: 2} - target: {fileID: 3764902268943045601, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3} propertyPath: m_Name value: Rockfall @@ -116,6 +207,10 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 7835622629792856689, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 7986070582027999988, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3} propertyPath: m_LocalScale.x value: 1.5 @@ -174,6 +269,9 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 7986070582027999988, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3} insertIndex: -1 addedObject: {fileID: 1426941151981288099} + - targetCorrespondingSourceObject: {fileID: 7438534416270888028, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3} + insertIndex: -1 + addedObject: {fileID: 6229300703101880482} m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 3764902268943045601, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3} insertIndex: -1 @@ -202,6 +300,7 @@ MonoBehaviour: DieSfxName: SpikeAttacked DieParticle: {fileID: 0} _sphereCollider: {fileID: 2971964863692897937} + _visualLook: {fileID: 6709217980892358123} _indicator: {fileID: 6370181286260610806} _isUsingIndicator: 1 _targetLayer: @@ -210,8 +309,10 @@ MonoBehaviour: _groundLayer: serializedVersion: 2 m_Bits: 64 - _fallTime: 1 + _indicatorTime: 0.5 + _fallTime: 0.5 _attackDamage: 1 + _isAcceleratedFall: 1 _groundCrashSfxName: _groundCrashParticle: {fileID: 19826678, guid: 660dfd0ccf26cbf489a7556236949683, type: 3} --- !u!135 &2971964863692897937 stripped @@ -219,6 +320,16 @@ SphereCollider: m_CorrespondingSourceObject: {fileID: 1772409705626034443, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3} m_PrefabInstance: {fileID: 3577643095578124186} m_PrefabAsset: {fileID: 0} +--- !u!4 &6241053207180088262 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7438534416270888028, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3} + m_PrefabInstance: {fileID: 3577643095578124186} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6709217980892358123 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7835622629792856689, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3} + m_PrefabInstance: {fileID: 3577643095578124186} + m_PrefabAsset: {fileID: 0} --- !u!4 &6877682250950493550 stripped Transform: m_CorrespondingSourceObject: {fileID: 7986070582027999988, guid: bfc5c806b2fa3ba40850df302d3db0b7, type: 3} diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 0460ac304..3b1c1db95 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -140,7 +140,7 @@ PlayerSettings: loadStoreDebugModeEnabled: 0 visionOSBundleVersion: 1.0 tvOSBundleVersion: 1.0 - bundleVersion: 0.2.2.1 + bundleVersion: 0.2.3.0 preloadedAssets: - {fileID: -944628639613478452, guid: 4ed6540e2f7ce234888adf8deff1f241, type: 3} metroInputSource: 0