diff --git a/BlueWater/Assets/01.Scenes/02.Ocean.unity b/BlueWater/Assets/01.Scenes/02.Ocean.unity index 1452cc06c..86a62db35 100644 --- a/BlueWater/Assets/01.Scenes/02.Ocean.unity +++ b/BlueWater/Assets/01.Scenes/02.Ocean.unity @@ -956,6 +956,41 @@ Transform: - {fileID: 44403557} m_Father: {fileID: 357776295} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &155619292 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 155619293} + m_Layer: 5 + m_Name: ItemsLoot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &155619293 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 155619292} + 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: 2105062291} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &155713052 GameObject: m_ObjectHideFlags: 0 @@ -3801,7 +3836,6 @@ MonoBehaviour: useBoostCameraShaking: 1 shakingForceCoefficient: 0.8 useBoostVignetteEffect: 1 - vignetteForceCoefficient: 0.4 isBoosting: 0 waterLayer: serializedVersion: 2 @@ -7617,6 +7651,9 @@ MonoBehaviour: m_EditorClassIdentifier: autoInit: 1 k__BackingField: {fileID: 168896974} + boostVignetteColor: {r: 0.15686275, g: 0, b: 0, a: 1} + boostIntermediateVignetteColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + vignetteIntensity: 0.4 --- !u!114 &776161963 MonoBehaviour: m_ObjectHideFlags: 0 @@ -8459,7 +8496,6 @@ MonoBehaviour: useBoostCameraShaking: 1 shakingForceCoefficient: 0.8 useBoostVignetteEffect: 1 - vignetteForceCoefficient: 0.3 isBoosting: 0 waterLayer: serializedVersion: 2 @@ -11857,8 +11893,8 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1485085414} serializedVersion: 2 - m_LocalRotation: {x: 0.3802523, y: 0.61872363, z: -0.4629525, w: 0.50819707} - m_LocalPosition: {x: -0.0011863708, y: 0, z: -0.0059661865} + m_LocalRotation: {x: 0.38025314, y: 0.6187227, z: -0.46295172, w: 0.50819826} + m_LocalPosition: {x: -0.0012207031, y: 0, z: -0.006149292} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -16708,6 +16744,7 @@ RectTransform: - {fileID: 480975273} - {fileID: 1446558450} - {fileID: 2014893525} + - {fileID: 155619293} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -16741,16 +16778,13 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: autoInit: 1 - k__BackingField: - k__BackingField: {fileID: 868726319} - k__BackingField: {fileID: 271798700} - k__BackingField: {fileID: 197341959} - k__BackingField: {fileID: 7415601899565865896} - k__BackingField: 0.5 - k__BackingField: 10 + k__BackingField: {fileID: 0} processBarOffset: {x: 0, y: 0, z: 0} k__BackingField: {fileID: 1446558451} k__BackingField: {fileID: 2014893524} + k__BackingField: {fileID: 8464029479315233580, guid: 0d213e978cd398441bcd61573163ca16, + type: 3} + itemLootOffset: {x: 0, y: 0} --- !u!1001 &2114222814 PrefabInstance: m_ObjectHideFlags: 0 @@ -22235,6 +22269,21 @@ PrefabInstance: propertyPath: isDirectionChange value: 1 objectReference: {fileID: 0} + - target: {fileID: 6023135201199208214, guid: f228040d76c9217409284544f353da47, + type: 3} + propertyPath: m_LocalScale.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 6023135201199208214, guid: f228040d76c9217409284544f353da47, + type: 3} + propertyPath: m_LocalScale.y + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 6023135201199208214, guid: f228040d76c9217409284544f353da47, + type: 3} + propertyPath: m_LocalScale.z + value: 20 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] diff --git a/BlueWater/Assets/01.Scenes/02.Ocean/OceanPostProcessingVolume.asset b/BlueWater/Assets/01.Scenes/02.Ocean/OceanPostProcessingVolume.asset index 2abea3cc8..b159f41e5 100644 --- a/BlueWater/Assets/01.Scenes/02.Ocean/OceanPostProcessingVolume.asset +++ b/BlueWater/Assets/01.Scenes/02.Ocean/OceanPostProcessingVolume.asset @@ -29,16 +29,16 @@ MonoBehaviour: active: 1 color: m_OverrideState: 1 - m_Value: {r: 0.262, g: 0, b: 0, a: 1} + m_Value: {r: 0.20745817, g: 0.6981132, b: 0.6667745, a: 1} center: m_OverrideState: 1 m_Value: {x: 0.5, y: 0.5} intensity: m_OverrideState: 1 - m_Value: 0 + m_Value: 0.3 smoothness: m_OverrideState: 1 - m_Value: 1 + m_Value: 0.36 rounded: m_OverrideState: 1 m_Value: 1 diff --git a/BlueWater/Assets/02.Scripts/Boids.cs b/BlueWater/Assets/02.Scripts/Boids.cs index 953aa73f5..19d05b040 100644 --- a/BlueWater/Assets/02.Scripts/Boids.cs +++ b/BlueWater/Assets/02.Scripts/Boids.cs @@ -3,7 +3,6 @@ using System.Collections; using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEngine; -using UnityEngine.Serialization; using Random = UnityEngine.Random; // ReSharper disable once CheckNamespace diff --git a/BlueWater/Assets/02.Scripts/Character/Player/Type/ShipPlayer.cs b/BlueWater/Assets/02.Scripts/Character/Player/Type/ShipPlayer.cs index cbb6f9010..fcb4cfe18 100644 --- a/BlueWater/Assets/02.Scripts/Character/Player/Type/ShipPlayer.cs +++ b/BlueWater/Assets/02.Scripts/Character/Player/Type/ShipPlayer.cs @@ -73,8 +73,6 @@ namespace BlueWaterProject [SerializeField] private float shakingForceCoefficient = 0.8f; [SerializeField] private bool useBoostVignetteEffect = true; - [ShowIf("@useBoostVignetteEffect")] - [SerializeField] private float vignetteForceCoefficient = 0.4f; [DisableIf("@true")] [SerializeField] private bool isBoosting; @@ -232,7 +230,7 @@ namespace BlueWaterProject if (useBoostVignetteEffect && UiManager.Inst.OceanUi.ShipBoostSlider.value > 0f) { - VisualFeedbackManager.Inst.SetVignetteIntensity(UiManager.Inst.OceanUi.ShipBoostSlider.value * vignetteForceCoefficient); + CameraManager.Inst.OceanCamera.BoostVignette(UiManager.Inst.OceanUi.ShipBoostSlider.value); } } @@ -405,10 +403,6 @@ namespace BlueWaterProject { CameraManager.Inst.OceanCamera.ChangeDistance(shrinkDistance, shrinkTime); } - if (useBoostVignetteEffect) - { - VisualFeedbackManager.Inst.ToggleEffect(true); - } } private void ShipStopBoost() diff --git a/BlueWater/Assets/02.Scripts/OceanCamera.cs b/BlueWater/Assets/02.Scripts/OceanCamera.cs index db5024110..57d02de17 100644 --- a/BlueWater/Assets/02.Scripts/OceanCamera.cs +++ b/BlueWater/Assets/02.Scripts/OceanCamera.cs @@ -3,6 +3,8 @@ using System.Collections.Generic; using Cinemachine; using Sirenix.OdinInspector; using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.Rendering.Universal; // ReSharper disable once CheckNamespace namespace BlueWaterProject @@ -15,6 +17,15 @@ namespace BlueWaterProject [field: Title("카메라")] [field: SerializeField] public CinemachineVirtualCamera BaseShipCam { get; private set; } + [Title("포스트 프로세싱")] + [SerializeField] private Color boostVignetteColor = Color.red; + [SerializeField] private Color boostIntermediateVignetteColor = Color.gray; + [Range(0f, 4f)] + [SerializeField] private float vignetteIntensity = 0.4f; + private Vignette vignette; + private Color defaultVignetteColor; + private float defaultVignetteIntensity; + private List cineCamList; private GameObject cineCams; private CinemachineFramingTransposer framingTransposer; @@ -33,6 +44,13 @@ namespace BlueWaterProject CameraManager.Inst.OceanCamera = this; CameraManager.Inst.MainCam = Camera.main; + + vignette = GetEffect(); + if (vignette) + { + defaultVignetteColor = vignette.color.value; + defaultVignetteIntensity = vignette.intensity.value; + } } [Button("셋팅 초기화")] @@ -114,5 +132,45 @@ namespace BlueWaterProject framingTransposer.m_CameraDistance = defaultDistance; yield return null; } + + #region PostProcessing + + public void ToggleEffect(bool value) where T : VolumeComponent + { + var effect = GetEffect(); + if (effect == null) + { + print(typeof(T) + "효과가 없습니다."); + return; + } + effect.active = value; + } + + private T GetEffect() where T : VolumeComponent + { + var postProcessVolume = FindAnyObjectByType(); + if (postProcessVolume == null) + { + print("Volume 컴포넌트를 가진 오브젝트가 없습니다."); + return null; + } + postProcessVolume.profile.TryGet(out T effect); + return effect; + } + + public void BoostVignette(float boostGauge) + { + if (boostGauge <= 0.3f) + { + vignette.color.value = Color.Lerp(defaultVignetteColor, boostIntermediateVignetteColor, boostGauge / 0.3f); + } + else + { + vignette.color.value = Color.Lerp(boostIntermediateVignetteColor, boostVignetteColor, (boostGauge - 0.3f) / 0.7f); + vignette.intensity.value = Mathf.Lerp(defaultVignetteIntensity, vignetteIntensity, (boostGauge - 0.3f) / 0.7f); + } + } + + #endregion } } \ No newline at end of file diff --git a/BlueWater/Assets/02.Scripts/OceanUi.cs b/BlueWater/Assets/02.Scripts/OceanUi.cs index c9cea9e1b..1be759373 100644 --- a/BlueWater/Assets/02.Scripts/OceanUi.cs +++ b/BlueWater/Assets/02.Scripts/OceanUi.cs @@ -1,77 +1,10 @@ -using System; -using System.Collections; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.UI; -using Random = UnityEngine.Random; // ReSharper disable once CheckNamespace namespace BlueWaterProject { - #region ProcessBar Class - - [Serializable] - public class ProcessBar - { - [field: SerializeField] public GameObject Obj { get; set; } - [field: SerializeField] public Image Fill { get; set; } - [field: SerializeField] public Transform PreviousGaugeLine { get; set; } - [field: SerializeField] public Slider ReloadSlider { get; set; } - [field: SerializeField] public float ShakeDuration { get; set; } = 0.5f; - [field: SerializeField] public float ShakePower { get; set; } = 10f; - - private AudioSource reloadingAttackSound; - private bool isShaking; - - public ProcessBar(GameObject obj, Image fill, Transform previousGaugeLine, Slider reloadSlider) - { - Obj = obj; - Fill = fill; - PreviousGaugeLine = previousGaugeLine; - ReloadSlider = reloadSlider; - - reloadingAttackSound = ReloadSlider.GetComponent(); - - SetFillAmount(0f); - } - - public void SetActive(bool value) => Obj.SetActive(value); - public void SetPosition(Vector3 value) => Obj.transform.position = value; - public void SetFillAmount(float value) => Fill.fillAmount = value; - public void SetRotateZ(float value) => PreviousGaugeLine.rotation = Quaternion.Euler(0f, 0f, value); - public void SetActiveReloadSlider(bool value) => ReloadSlider.gameObject.SetActive(value); - public void SetSliderValue(float value) => ReloadSlider.value = value; - public IEnumerator ShakeProcessBarCoroutine() - { - if (isShaking) yield break; - - isShaking = true; - reloadingAttackSound.Play(); - var time = 0f; - var processBarOriginalPos = Obj.transform.localPosition; - - while (time < ShakeDuration) - { - if (!Obj.gameObject.activeSelf) - { - Obj.transform.localPosition = processBarOriginalPos; - isShaking = false; - yield break; - } - - time += Time.deltaTime; - var shakeAmount = Random.Range(-1f, 1f) * ShakePower; - var processBarLocalPos = Obj.transform.localPosition; - Obj.transform.localPosition = new Vector3(processBarLocalPos.x + shakeAmount, processBarLocalPos.y, processBarLocalPos.z); - yield return null; - } - Obj.transform.localPosition = processBarOriginalPos; - isShaking = false; - } - } - - #endregion - public class OceanUi : MonoBehaviour { [Title("초기화 방식")] @@ -85,7 +18,12 @@ namespace BlueWaterProject [field: SerializeField] public GameObject SpeedLines { get; set; } + [field: SerializeField] public ItemLootUi ItemLootUi { get; set; } + [SerializeField] private Vector2 itemLootOffset; + private Canvas canvas; + private RectTransform canvasRectTransform; + private Transform itemsLoot; [Button("셋팅 초기화")] private void Init() @@ -96,6 +34,7 @@ namespace BlueWaterProject Debug.LogError("canvas is null error"); return; } + canvasRectTransform = canvas.GetComponent(); var processBar = canvas.transform.Find("ProcessBar").gameObject; var fill = processBar.transform.Find("Fill").GetComponent(); @@ -109,6 +48,8 @@ namespace BlueWaterProject SpeedLines = canvas.transform.Find("SpeedLines").gameObject; SpeedLines.SetActive(false); + + itemsLoot = canvas.transform.Find("ItemsLoot"); } private void Awake() @@ -132,6 +73,13 @@ namespace BlueWaterProject } } + public void CreateItemLootUi(Vector3 lootPos, Sprite sprite = null) + { + var screenPos = CameraManager.Inst.MainCam.WorldToScreenPoint(lootPos); + var itemLootUi = Instantiate(ItemLootUi, screenPos, Quaternion.identity, itemsLoot); + itemLootUi.Init(lootPos); + } + public void SetActiveSpeedLine(bool value) => SpeedLines.SetActive(value); } } \ No newline at end of file diff --git a/BlueWater/Assets/02.Scripts/Player/Cannon.cs b/BlueWater/Assets/02.Scripts/Player/Cannon.cs index d0d387418..e2a2288ab 100644 --- a/BlueWater/Assets/02.Scripts/Player/Cannon.cs +++ b/BlueWater/Assets/02.Scripts/Player/Cannon.cs @@ -26,6 +26,7 @@ namespace BlueWaterProject private float cannonRadius; private LayerMask boidsLayer; + private Collider[] hitColliders = new Collider[3]; private void Awake() { @@ -54,7 +55,6 @@ namespace BlueWaterProject var projectile = Instantiate(projectileObj, firePos.position, Quaternion.Euler(firePosRotation)); var particleWeapon = projectile.GetComponent(); particleWeapon.onHitAction.AddListener(HandleCannonHit); - //projectile.GetComponent().AddForce(projectile.transform.forward * (chargingGauge * speed)); projectile.GetComponent().velocity = projectile.transform.forward * speed; } @@ -62,22 +62,25 @@ namespace BlueWaterProject { if (hit.collider.gameObject.layer == LayerMask.NameToLayer("Water")) { - var start = hit.point; - var direction = Vector3.down; - var radius = cannonRadius; - var maxDistance = height; - - if (Physics.SphereCast(start, radius, direction, out var hitInfo, maxDistance, - boidsLayer, QueryTriggerInteraction.Collide)) - { - Debug.DrawRay(start, direction * height, Color.green, 3f); + var maxSize = Physics.OverlapSphereNonAlloc(hit.point, cannonRadius, hitColliders, boidsLayer, + QueryTriggerInteraction.Collide); - var hitBoids = hitInfo.collider.GetComponentInParent(); - hitBoids.CatchBoid(Random.Range((int)randomCatch.x, (int)randomCatch.y)); - } - else + for (var i = 0; i < maxSize; i++) { - Debug.DrawRay(start, direction * height, Color.red, 3f); + var hitBoids = hitColliders[i].GetComponentInParent(); + var catchSize = Random.Range((int)randomCatch.x, (int)randomCatch.y); + hitBoids.CatchBoid(catchSize); + + for (var j = 0; j < catchSize; j++) + { + var bounds = hitColliders[i].bounds; + var x = Random.Range(bounds.min.x, bounds.max.x); + //var y = Random.Range(bounds.min.y, bounds.max.y); + var z = Random.Range(bounds.min.z, bounds.max.z); + var randomPos = new Vector3(x, 0, z); + + UiManager.Inst.OceanUi.CreateItemLootUi(randomPos); + } } } else diff --git a/BlueWater/Assets/02.Scripts/Ui/ItemLootUi.cs b/BlueWater/Assets/02.Scripts/Ui/ItemLootUi.cs new file mode 100644 index 000000000..0b70af32d --- /dev/null +++ b/BlueWater/Assets/02.Scripts/Ui/ItemLootUi.cs @@ -0,0 +1,45 @@ +using System; +using Sirenix.OdinInspector; +using UnityEngine; +using UnityEngine.UI; + +// ReSharper disable once CheckNamespace +namespace BlueWaterProject +{ + public class ItemLootUi : MonoBehaviour + { + [SerializeField] private RectTransform rectTransform; + [SerializeField] private Image border; + [SerializeField] private Image icon; + [SerializeField] private RectTransform line; + + [SerializeField] private bool useAutoDestroy = true; + [ShowIf("@useAutoDestroy")] + [SerializeField] private float autoDestroyTime = 10f; + + private Vector3 lootWorldPos; + + public void Init(Vector3 value, Sprite sprite = null) + { + lootWorldPos = value; + if (sprite) + { + icon.sprite = sprite; + } + gameObject.SetActive(true); + } + + private void Start() + { + if (useAutoDestroy) + { + Destroy(gameObject, autoDestroyTime); + } + } + + private void Update() + { + rectTransform.position = CameraManager.Inst.MainCam.WorldToScreenPoint(lootWorldPos); + } + } +} \ No newline at end of file diff --git a/BlueWater/Assets/02.Scripts/Ui/ItemLootUi.cs.meta b/BlueWater/Assets/02.Scripts/Ui/ItemLootUi.cs.meta new file mode 100644 index 000000000..790a812ad --- /dev/null +++ b/BlueWater/Assets/02.Scripts/Ui/ItemLootUi.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3f8bfea5b12b9674dabae714608eb764 \ No newline at end of file diff --git a/BlueWater/Assets/02.Scripts/Ui/ProcessBar.cs b/BlueWater/Assets/02.Scripts/Ui/ProcessBar.cs new file mode 100644 index 000000000..bee794ea5 --- /dev/null +++ b/BlueWater/Assets/02.Scripts/Ui/ProcessBar.cs @@ -0,0 +1,69 @@ +using System.Collections; +using UnityEngine; +using UnityEngine.UI; + +// ReSharper disable once CheckNamespace +namespace BlueWaterProject +{ + public class ProcessBar : MonoBehaviour + { + [field: SerializeField] public GameObject Obj { get; set; } + [field: SerializeField] public Image Fill { get; set; } + [field: SerializeField] public Transform PreviousGaugeLine { get; set; } + [field: SerializeField] public Slider ReloadSlider { get; set; } + [field: SerializeField] public float ShakeDuration { get; set; } = 0.5f; + [field: SerializeField] public float ShakePower { get; set; } = 10f; + + private AudioSource reloadingAttackSound; + private bool isShaking; + + public ProcessBar(GameObject obj, Image fill, Transform previousGaugeLine, Slider reloadSlider) + { + Obj = obj; + Fill = fill; + PreviousGaugeLine = previousGaugeLine; + ReloadSlider = reloadSlider; + + reloadingAttackSound = ReloadSlider.GetComponent(); + + SetFillAmount(0f); + } + + public void SetActive(bool value) => Obj.SetActive(value); + public void SetPosition(Vector3 value) => Obj.transform.position = value; + public void SetFillAmount(float value) => Fill.fillAmount = value; + public void SetRotateZ(float value) => PreviousGaugeLine.rotation = Quaternion.Euler(0f, 0f, value); + public void SetActiveReloadSlider(bool value) => ReloadSlider.gameObject.SetActive(value); + public void SetSliderValue(float value) => ReloadSlider.value = value; + + public IEnumerator ShakeProcessBarCoroutine() + { + if (isShaking) yield break; + + isShaking = true; + reloadingAttackSound.Play(); + var time = 0f; + var processBarOriginalPos = Obj.transform.localPosition; + + while (time < ShakeDuration) + { + if (!Obj.gameObject.activeSelf) + { + Obj.transform.localPosition = processBarOriginalPos; + isShaking = false; + yield break; + } + + time += Time.deltaTime; + var shakeAmount = Random.Range(-1f, 1f) * ShakePower; + var processBarLocalPos = Obj.transform.localPosition; + Obj.transform.localPosition = new Vector3(processBarLocalPos.x + shakeAmount, processBarLocalPos.y, + processBarLocalPos.z); + yield return null; + } + + Obj.transform.localPosition = processBarOriginalPos; + isShaking = false; + } + } +} \ No newline at end of file diff --git a/BlueWater/Assets/02.Scripts/Ui/ProcessBar.cs.meta b/BlueWater/Assets/02.Scripts/Ui/ProcessBar.cs.meta new file mode 100644 index 000000000..58b72b36b --- /dev/null +++ b/BlueWater/Assets/02.Scripts/Ui/ProcessBar.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f86fa54994439bd4682548d17f8ebdbd \ No newline at end of file diff --git a/BlueWater/Assets/02.Scripts/VisualFeedbackManager.cs b/BlueWater/Assets/02.Scripts/VisualFeedbackManager.cs index f2f8bbe97..4c51994ed 100644 --- a/BlueWater/Assets/02.Scripts/VisualFeedbackManager.cs +++ b/BlueWater/Assets/02.Scripts/VisualFeedbackManager.cs @@ -1,37 +1,14 @@ -using System; using System.Collections; using Cinemachine; using MoreMountains.Feedbacks; using MoreMountains.FeedbacksForThirdParty; using UnityEngine; -using UnityEngine.Rendering; -using UnityEngine.Rendering.Universal; -using UnityEngine.SceneManagement; // ReSharper disable once CheckNamespace namespace BlueWaterProject { public class VisualFeedbackManager : Singleton { - private Vignette vignette; - - private void OnEnable() - { - SceneManager.sceneLoaded += OnSceneLoaded; - } - - private void OnDisable() - { - SceneManager.sceneLoaded -= OnSceneLoaded; - } - - private void OnSceneLoaded(Scene scene, LoadSceneMode mode) - { - vignette = null; - - vignette = GetEffect(); - } - #region HitStop /// @@ -71,50 +48,6 @@ namespace BlueWaterProject mmfPlayer.PlayFeedbacks(); } - #region PostProcessing - - public void ToggleEffect(bool value) where T : VolumeComponent - { - var effect = GetEffect(); - if (effect == null) - { - print(typeof(T) + "효과가 없습니다."); - return; - } - effect.active = value; - } - - private T GetEffect() where T : VolumeComponent - { - var postProcessVolume = FindAnyObjectByType(); - if (postProcessVolume == null) - { - print("Volume 컴포넌트를 가진 오브젝트가 없습니다."); - return null; - } - postProcessVolume.profile.TryGet(out T effect); - return effect; - } - - public void SetVignetteIntensity(float intensity) - { - if (vignette == null) - { - vignette = GetEffect(); - } - - if (vignette != null) - { - vignette.intensity.value = intensity; - } - else - { - print("vignette is null."); - } - } - - #endregion - #endregion } } diff --git a/BlueWater/Assets/05.Prefabs/Boids/Boids.prefab b/BlueWater/Assets/05.Prefabs/Boids/Boids.prefab index 57f95830a..abd778119 100644 --- a/BlueWater/Assets/05.Prefabs/Boids/Boids.prefab +++ b/BlueWater/Assets/05.Prefabs/Boids/Boids.prefab @@ -11,8 +11,7 @@ GameObject: - component: {fileID: 2854089398056668840} - component: {fileID: 3243186087995758770} - component: {fileID: 2486807546603369919} - - component: {fileID: 5287364424603291167} - m_Layer: 15 + m_Layer: 0 m_Name: Bounds m_TagString: Untagged m_Icon: {fileID: 0} @@ -86,27 +85,6 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!65 &5287364424603291167 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2441661978531314766} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 1 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} --- !u!1 &4541625270423798677 GameObject: m_ObjectHideFlags: 0 @@ -265,11 +243,47 @@ PrefabInstance: propertyPath: m_Name value: FishSpot objectReference: {fileID: 0} + - target: {fileID: 5897493926044192973, guid: 0051ffdc4c5db0d439d5d2c880040228, + type: 3} + propertyPath: m_Layer + value: 15 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 5897493926044192973, guid: 0051ffdc4c5db0d439d5d2c880040228, + type: 3} + insertIndex: -1 + addedObject: {fileID: 2919496038212792137} m_SourcePrefab: {fileID: 100100000, guid: 0051ffdc4c5db0d439d5d2c880040228, type: 3} +--- !u!1 &2873048866372186192 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5897493926044192973, guid: 0051ffdc4c5db0d439d5d2c880040228, + type: 3} + m_PrefabInstance: {fileID: 8504772753982791837} + m_PrefabAsset: {fileID: 0} +--- !u!65 &2919496038212792137 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2873048866372186192} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 0.5, y: 0.2, z: 0.5} + m_Center: {x: 0, y: 0, z: 0} --- !u!4 &6023135201199208214 stripped Transform: m_CorrespondingSourceObject: {fileID: 2707081533079000971, guid: 0051ffdc4c5db0d439d5d2c880040228, diff --git a/BlueWater/Assets/05.Prefabs/Ui/ItemLootUi.prefab b/BlueWater/Assets/05.Prefabs/Ui/ItemLootUi.prefab new file mode 100644 index 000000000..236210744 --- /dev/null +++ b/BlueWater/Assets/05.Prefabs/Ui/ItemLootUi.prefab @@ -0,0 +1,428 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &462042136712330508 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3178920409736748321} + - component: {fileID: 6178358912228675412} + - component: {fileID: 56263909834790550} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3178920409736748321 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 462042136712330508} + 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: 3090447943159425445} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -60, y: -60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6178358912228675412 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 462042136712330508} + m_CullTransparentMesh: 0 +--- !u!114 &56263909834790550 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 462042136712330508} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2cc86e3da070349219ca804ef98cfaba, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &642597180042958460 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1536933552086327455} + - component: {fileID: 8105446773979611040} + - component: {fileID: 5424528542303089367} + - component: {fileID: 842783453021988367} + m_Layer: 5 + m_Name: Line + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1536933552086327455 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642597180042958460} + 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: 3090447943159425445} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: -45} + m_SizeDelta: {x: 2, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8105446773979611040 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642597180042958460} + m_CullTransparentMesh: 0 +--- !u!114 &5424528542303089367 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642597180042958460} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 6e4f4c0390c77404fbc0e6716111c623, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &842783453021988367 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642597180042958460} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e5f45762bc9a84906b62fb6b794a6feb, type: 3} + m_Name: + m_EditorClassIdentifier: + Color1: {r: 1, g: 0, b: 0, a: 1} + Color2: {r: 1, g: 0.5019608, b: 0, a: 0} + Angle: -180 +--- !u!1 &3090447942859351756 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3090447942859351757} + - component: {fileID: 3090447942859351759} + - component: {fileID: 3090447942859351758} + - component: {fileID: 3159055945384670641} + m_Layer: 5 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3090447942859351757 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090447942859351756} + 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: 3090447943159425445} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3090447942859351759 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090447942859351756} + m_CullTransparentMesh: 0 +--- !u!114 &3090447942859351758 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090447942859351756} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.54509807, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 5f18cfb933b374f4db1f912fca1ec409, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3159055945384670641 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090447942859351756} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e5f45762bc9a84906b62fb6b794a6feb, type: 3} + m_Name: + m_EditorClassIdentifier: + Color1: {r: 0.13725491, g: 0.14509805, b: 0.15686275, a: 1} + Color2: {r: 0.73058826, g: 0.7671177, b: 0.8117647, a: 1} + Angle: -90 +--- !u!1 &3090447943159425444 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3090447943159425445} + - component: {fileID: 3090447943159425443} + - component: {fileID: 3090447943159425442} + - component: {fileID: 3090447943159425446} + - component: {fileID: 7030230213418535633} + - component: {fileID: 7380289147853920374} + - component: {fileID: 8464029479315233580} + m_Layer: 5 + m_Name: ItemLootUi + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3090447943159425445 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090447943159425444} + 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: + - {fileID: 3090447942859351757} + - {fileID: 3178920409736748321} + - {fileID: 1536933552086327455} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 70, y: 70} + m_Pivot: {x: 0.5, y: -1} +--- !u!222 &3090447943159425443 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090447943159425444} + m_CullTransparentMesh: 0 +--- !u!114 &3090447943159425442 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090447943159425444} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.5019608, b: 0, a: 0.19607843} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 4596b288f688240be9303691a0bce9a0, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3090447943159425446 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090447943159425444} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ad63971631c874d1aa33146b8079b8a5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3090447943159425442} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &7030230213418535633 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090447943159425444} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 684da8d3856b6400ca0468d3888c5374, type: 3} + m_Name: + m_EditorClassIdentifier: + fadeTime: 0.2 + onHoverAlpha: 0.6 + onClickAlpha: 0.7 +--- !u!225 &7380289147853920374 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090447943159425444} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &8464029479315233580 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090447943159425444} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f8bfea5b12b9674dabae714608eb764, type: 3} + m_Name: + m_EditorClassIdentifier: + rectTransform: {fileID: 3090447943159425445} + border: {fileID: 3090447942859351758} + icon: {fileID: 56263909834790550} + line: {fileID: 1536933552086327455} diff --git a/BlueWater/Assets/05.Prefabs/Ui/ItemLootUi.prefab.meta b/BlueWater/Assets/05.Prefabs/Ui/ItemLootUi.prefab.meta new file mode 100644 index 000000000..026757fc0 --- /dev/null +++ b/BlueWater/Assets/05.Prefabs/Ui/ItemLootUi.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0d213e978cd398441bcd61573163ca16 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: