+ 물고기를 잡으면 드랍 가능한 형태의 오브젝트와 아이콘이 생성되게 변경되었습니다. + 플레이어(배)와 아이콘의 위치가 가까워지면 플레이어는 아이콘을 흡수하면서 아이템을 얻게됩니다. + 아이템 획득 시에 효과음을 추가하였습니다. + 아이템 획득 시에 좌측 중단에 UI를 통해서 어떠한 아이템을 얻었는지 확인할 수 있게 표시합니다. + 물고기 스팟 이펙트를 2가지 합치는 방식으로 변경하였습니다. + 물고기 스팟을 기준으로 플레이어와의 거리를 체크해 물고기 스팟이 도망치는 방식으로 변경되었습니다. (기존에는 Bound의 중심) + 물고기 스팟의 크기를 원하는 크기로 변경할 수 있도록 변경했습니다. + 인터페이스 IItem을 추가하였습니다. + Item,FishItem 로직을 변경했습니다.
74 lines
2.5 KiB
C#
74 lines
2.5 KiB
C#
using Sirenix.OdinInspector;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
// ReSharper disable once CheckNamespace
|
|
namespace BlueWaterProject
|
|
{
|
|
public class OceanUi : MonoBehaviour
|
|
{
|
|
[Title("초기화 방식")]
|
|
[SerializeField] private bool autoInit = true;
|
|
|
|
[field: Title("UI")]
|
|
[field: SerializeField] public ProcessBar ProcessBar { get; set; }
|
|
[SerializeField] private Vector3 processBarOffset = Vector3.zero;
|
|
|
|
[field: SerializeField] public Slider ShipBoostSlider { get; set; }
|
|
|
|
[field: SerializeField] public GameObject SpeedLines { get; set; }
|
|
|
|
[field: SerializeField] public DropItemGroupController DropItemGroupController { get; set; }
|
|
|
|
public Canvas MainCanvas { get; private set; }
|
|
|
|
[Button("셋팅 초기화")]
|
|
private void Init()
|
|
{
|
|
MainCanvas = GetComponent<Canvas>();
|
|
if (!MainCanvas)
|
|
{
|
|
Debug.LogError("canvas is null error");
|
|
return;
|
|
}
|
|
|
|
var processBar = MainCanvas.transform.Find("ProcessBar").gameObject;
|
|
var fill = processBar.transform.Find("Fill").GetComponent<Image>();
|
|
var previousGaugeLine = processBar.transform.Find("PreviousGaugeLine").transform;
|
|
var reloadSlider = MainCanvas.transform.Find("ReloadSlider").GetComponent<Slider>();
|
|
ProcessBar = new ProcessBar(processBar, fill, previousGaugeLine, reloadSlider);
|
|
ProcessBar.SetActiveReloadSlider(false);
|
|
|
|
ShipBoostSlider = MainCanvas.transform.Find("ShipBoostSlider").GetComponent<Slider>();
|
|
ShipBoostSlider.value = 0f;
|
|
|
|
SpeedLines = MainCanvas.transform.Find("SpeedLines").gameObject;
|
|
SpeedLines.SetActive(false);
|
|
|
|
DropItemGroupController = MainCanvas.transform.Find("DropItemGroup").GetComponent<DropItemGroupController>();
|
|
}
|
|
|
|
private void Awake()
|
|
{
|
|
if (autoInit)
|
|
{
|
|
Init();
|
|
}
|
|
|
|
UiManager.Inst.OceanUi = this;
|
|
ProcessBar.SetActive(false);
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (ProcessBar.Obj.activeSelf)
|
|
{
|
|
var mousePos = Input.mousePosition;
|
|
var result = mousePos + processBarOffset;
|
|
ProcessBar.SetPosition(result);
|
|
}
|
|
}
|
|
|
|
public void SetActiveSpeedLine(bool value) => SpeedLines.SetActive(value);
|
|
}
|
|
} |