This commit is contained in:
SweetJJuya 2024-12-16 20:25:27 +09:00
parent 50523c903a
commit 4a54f11319
12 changed files with 6767 additions and 2943 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: b833bcae75f3f004684676cf4de35160 guid: 61138f3cb5a646049b07b230edd40727
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1,5 +1,6 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using UnityEngine.UI; using UnityEngine.UI;
@ -20,7 +21,7 @@ using UnityEngine.UI;
namespace BlueWater.Uis namespace BlueWater.Uis
{ {
public class TycoonCardArea : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler, public class TycoonCardArea : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler,
IPointerMoveHandler IPointerMoveHandler , ISelectHandler , IDeselectHandler
{ {
private Coroutine _currentRotationCoroutine; private Coroutine _currentRotationCoroutine;
@ -42,6 +43,15 @@ namespace BlueWater.Uis
private bool _enable = false; private bool _enable = false;
private Action<TycoonCard> _onSelectAction; private Action<TycoonCard> _onSelectAction;
public void OnSelect(BaseEventData eventData)
{
OnPointerEnter(null);
}
public void OnDeselect(BaseEventData eventData)
{
OnPointerExit(null);
}
private void Awake() private void Awake()
{ {
@ -71,6 +81,7 @@ namespace BlueWater.Uis
// 마우스가 이미지 위에 올라갔을 때 호출 // 마우스가 이미지 위에 올라갔을 때 호출
public void OnPointerEnter(PointerEventData eventData) public void OnPointerEnter(PointerEventData eventData)
{ {
if (_endRotationCoroutine != null) if (_endRotationCoroutine != null)
{ {
StopCoroutine(_endRotationCoroutine); StopCoroutine(_endRotationCoroutine);
@ -120,6 +131,11 @@ namespace BlueWater.Uis
} }
} }
public void SelectCard()
{
OnPointerClick(null);
}
// 마우스 클릭 시 호출 // 마우스 클릭 시 호출
public void OnPointerClick(PointerEventData eventData) public void OnPointerClick(PointerEventData eventData)
{ {

View File

@ -84,11 +84,13 @@ namespace BlueWater.Uis
public override void EnableInput() public override void EnableInput()
{ {
_interactionEAction.performed += OnInteractionE; _interactionEAction.performed += OnInteractionE;
this.GetComponent<UiEventsController>().EnableAutoNavigate();
} }
public override void DisableInput() public override void DisableInput()
{ {
_interactionEAction.performed -= OnInteractionE; _interactionEAction.performed -= OnInteractionE;
this.GetComponent<UiEventsController>().DisableAutoNavigate();
} }
@ -146,6 +148,8 @@ namespace BlueWater.Uis
_tycoonCardController.SelectCard(element); _tycoonCardController.SelectCard(element);
} }
this.GetComponent<UiEventsController>().SetSelectObject(_tycoonCards[2].CardArea.gameObject);
} }
private void OpenCard(TycoonCard tycoonCard) private void OpenCard(TycoonCard tycoonCard)

View File

@ -1,9 +1,12 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Runtime.InteropServices;
using BlueWater.Audios; using BlueWater.Audios;
using BlueWater.Tycoons; using BlueWater.Tycoons;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
using UnityEngine.UI; using UnityEngine.UI;
using Random = UnityEngine.Random; using Random = UnityEngine.Random;
@ -26,10 +29,14 @@ namespace BlueWater.Uis
private TycoonManager _tycoonManager; private TycoonManager _tycoonManager;
private TycoonCardController _tycoonCardController; private TycoonCardController _tycoonCardController;
private InputAction _interactionEAction;
private void Start() private void Start()
{ {
_panel.SetActive(false); _panel.SetActive(false);
_interactionEAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE);
_tycoonManager = TycoonManager.Instance; _tycoonManager = TycoonManager.Instance;
_tycoonCardController = _tycoonManager.TycoonCardController; _tycoonCardController = _tycoonManager.TycoonCardController;
@ -39,6 +46,11 @@ namespace BlueWater.Uis
private void OnDestroy() private void OnDestroy()
{ {
EventManager.OnOpenedNormalRewardBox -= CreateCard; EventManager.OnOpenedNormalRewardBox -= CreateCard;
if (_interactionEAction != null)
{
_interactionEAction.performed -= OnInteractionE;
}
} }
public override void Open() public override void Open()
@ -60,6 +72,28 @@ namespace BlueWater.Uis
VisualFeedbackManager.Instance.ResetTimeScale(); VisualFeedbackManager.Instance.ResetTimeScale();
} }
public override void EnableInput()
{
_interactionEAction.performed += OnInteractionE;
this.GetComponent<UiEventsController>().EnableAutoNavigate();
}
public override void DisableInput()
{
_interactionEAction.performed -= OnInteractionE;
this.GetComponent<UiEventsController>().DisableAutoNavigate();
}
public void OnInteractionE(InputAction.CallbackContext context)
{
var current = EventSystem.current.currentSelectedGameObject;
if (!current) return;
var currenButton = current.GetComponent<Button>();
currenButton.onClick.Invoke();
}
[Button("카드 생성하기(레벨업)")] [Button("카드 생성하기(레벨업)")]
private void CreateCard() private void CreateCard()
{ {
@ -104,6 +138,8 @@ namespace BlueWater.Uis
StartCoroutine(FadeInPanel()); StartCoroutine(FadeInPanel());
} }
this.GetComponent<UiEventsController>().SetSelectObject(_tycoonCards[0].CardArea.gameObject);
} }
private IEnumerator FadeInPanel() private IEnumerator FadeInPanel()
@ -122,10 +158,13 @@ namespace BlueWater.Uis
yield return null; yield return null;
} }
// _tycoonCards[1].CardArea.OnSelect(null);
} }
private void SelectedCard(TycoonCard currentTycoonCard) private void SelectedCard(TycoonCard currentTycoonCard)
{ {
DisableInput();
_tycoonCardController.SelectCard(currentTycoonCard); _tycoonCardController.SelectCard(currentTycoonCard);
currentTycoonCard.CardArea.SuccessClick(); currentTycoonCard.CardArea.SuccessClick();
StartCoroutine(SelectedAnimation(currentTycoonCard)); StartCoroutine(SelectedAnimation(currentTycoonCard));
@ -171,7 +210,7 @@ namespace BlueWater.Uis
float time = 0.0f; // 타이머 초기화 float time = 0.0f; // 타이머 초기화
while (time < 1.0f) while (time < 0.5f)
{ {
time += Time.unscaledDeltaTime; // 시간 업데이트 time += Time.unscaledDeltaTime; // 시간 업데이트
@ -189,12 +228,12 @@ namespace BlueWater.Uis
time = 0.0f; // 타이머 초기화 time = 0.0f; // 타이머 초기화
startScale03 = rect03.localScale; // 시작 위치 startScale03 = rect03.localScale; // 시작 위치
while (time < 1.0f) while (time < 0.5f)
{ {
time += Time.unscaledDeltaTime; // 시간 업데이트 time += Time.unscaledDeltaTime; // 시간 업데이트
float _Time = time / 0.5f; float _Time = time / 0.25f;
float _FadeTime = time / 1.0f; float _FadeTime = time / 0.5f;
float easedTIn = EaseEffect.ExpoIn(_Time); float easedTIn = EaseEffect.ExpoIn(_Time);
rect03.localScale = Vector3.Lerp(startScale03, new Vector3(0.0f, 0.0f, 0.0f), easedTIn); rect03.localScale = Vector3.Lerp(startScale03, new Vector3(0.0f, 0.0f, 0.0f), easedTIn);
@ -208,5 +247,6 @@ namespace BlueWater.Uis
_tycoonCardController.DestroyCardList(_tycoonCards); _tycoonCardController.DestroyCardList(_tycoonCards);
Close(); Close();
} }
} }
} }

View File

@ -9,6 +9,7 @@ using UnityEngine;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using TMPro; using TMPro;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
using UnityEngine.UI; using UnityEngine.UI;
namespace BlueWater.Uis namespace BlueWater.Uis
@ -64,6 +65,8 @@ namespace BlueWater.Uis
private Sequence _failedPurchaseSequence; private Sequence _failedPurchaseSequence;
private Coroutine _changeGoldInstance; private Coroutine _changeGoldInstance;
private InputAction _interactionEAction;
private Color _originalColor; private Color _originalColor;
private void OnValidate() private void OnValidate()
@ -78,6 +81,8 @@ namespace BlueWater.Uis
{ {
_panel.SetActive(false); _panel.SetActive(false);
_interactionEAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE);
_tycoonManager = TycoonManager.Instance; _tycoonManager = TycoonManager.Instance;
_tycoonCardController = _tycoonManager.TycoonCardController; _tycoonCardController = _tycoonManager.TycoonCardController;
_endGold = ES3.Load(SaveData.EndGold, 0); _endGold = ES3.Load(SaveData.EndGold, 0);
@ -116,6 +121,7 @@ namespace BlueWater.Uis
private void OnDestroy() private void OnDestroy()
{ {
_failedPurchaseSequence.Kill(); _failedPurchaseSequence.Kill();
_interactionEAction = null;
} }
public override void Open() public override void Open()
@ -143,6 +149,19 @@ namespace BlueWater.Uis
EventManager.InvokeTycoonGameStarted(); EventManager.InvokeTycoonGameStarted();
} }
public override void EnableInput()
{
_interactionEAction.performed += OnInteractionE;
this.GetComponent<UiEventsController>().EnableAutoNavigate();
}
public override void DisableInput()
{
_interactionEAction.performed -= OnInteractionE;
this.GetComponent<UiEventsController>().DisableAutoNavigate();
}
[Button("상점 열기")] [Button("상점 열기")]
private void CreateCard() private void CreateCard()
{ {
@ -182,6 +201,8 @@ namespace BlueWater.Uis
element.SetPrice(cardShopData.Price); element.SetPrice(cardShopData.Price);
element.Rotation_Start(); element.Rotation_Start();
} }
this.GetComponent<UiEventsController>().SetSelectObject(_tycoonCards[0].CardArea.gameObject);
} }
private void SelectedCard(TycoonCard currentTycoonCard) private void SelectedCard(TycoonCard currentTycoonCard)
@ -219,5 +240,16 @@ namespace BlueWater.Uis
} }
_endGoldText.text = targetGold.ToString("N0"); _endGoldText.text = targetGold.ToString("N0");
} }
public void OnInteractionE(InputAction.CallbackContext context)
{
var current = EventSystem.current.currentSelectedGameObject;
if (!current) return;
var currenButton = current.GetComponent<Button>();
currenButton?.onClick?.Invoke();
}
} }
} }

View File

@ -987,7 +987,7 @@ MonoBehaviour:
m_Calls: m_Calls:
- m_Target: {fileID: 2953333486680660764} - m_Target: {fileID: 2953333486680660764}
m_TargetAssemblyTypeName: BlueWater.Uis.TycoonCardArea, Assembly-CSharp m_TargetAssemblyTypeName: BlueWater.Uis.TycoonCardArea, Assembly-CSharp
m_MethodName: OnClick m_MethodName: SelectCard
m_Mode: 1 m_Mode: 1
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}

View File

@ -1,66 +1,65 @@
CardUpgradeSpine.png CardUpgradeSpine.png
size:2034,1903 size:1931,1818
filter:Linear,Linear filter:Linear,Linear
1 1
bounds:2,1133,287,353 bounds:2,1047,287,360
rotate:90 rotate:90
10 10
bounds:433,1675,485,226 bounds:437,1592,487,224
11 11
bounds:846,1379,500,280 bounds:842,1295,511,281
12 12
bounds:1525,665,372,359 bounds:2,357,370,358
13 13
bounds:2,1686,215,429 bounds:2,1601,215,433
rotate:90 rotate:90
14 14
bounds:1448,1648,253,372 bounds:1453,1563,253,370
rotate:90 rotate:90
15 15
bounds:1724,1026,335,308 bounds:360,717,335,308
rotate:90
16 16
bounds:2,1422,370,262 bounds:2,1336,368,263
17 17
bounds:2,799,356,306 bounds:2,740,356,305
18 18
bounds:775,760,331,393 bounds:1113,650,329,391
rotate:90 rotate:90
19 19
bounds:812,1093,284,490 bounds:817,1008,285,488
rotate:90 rotate:90
2 2
bounds:360,785,320,413 bounds:697,688,318,414
rotate:90 rotate:90
20 20
bounds:477,90,642,712 bounds:849,2,642,710
rotate:90 rotate:90
21
bounds:1191,2,701,661
3 3
bounds:1304,1068,293,418 bounds:1307,981,297,438
rotate:90 rotate:90
4 4
bounds:374,1396,277,470 bounds:372,1315,275,468
rotate:90 rotate:90
5 5
bounds:1170,734,332,353 bounds:1506,646,333,352
rotate:90 rotate:90
6 6
bounds:1348,1363,573,283 bounds:1355,1280,574,281
7 7
bounds:2,314,473,469 bounds:374,217,473,469
8 8
bounds:357,1107,453,287 bounds:364,1027,451,286
9 9
bounds:920,1661,526,240 bounds:926,1578,525,238
CardUpgradeSpine_2.png CardUpgradeSpine_2.png
size:1950,1460 size:1960,1712
filter:Linear,Linear filter:Linear,Linear
21
bounds:1084,2,700,660
22 22
bounds:1077,415,1043,871 bounds:1084,664,1046,874
rotate:90 rotate:90
23 23
bounds:2,2,1456,1073 bounds:2,256,1454,1080
rotate:90 rotate:90

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 2.2 MiB