개인 씬에서 패널 동작 구현

This commit is contained in:
99jamin 2025-03-14 16:14:24 +09:00
parent 6d32eae0df
commit 0f38d4ad83
9 changed files with 1641 additions and 1519 deletions

View File

@ -16,6 +16,24 @@ PluginImporter:
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 0
settings:
AndroidSharedLibraryType: Executable
CPU: ARMv7
- first:
Any:
second:
@ -26,7 +44,33 @@ PluginImporter:
second:
enabled: 1
settings:
CPU: ARM64
DefaultValueInitialized: true
OS: OSX
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Windows Store Apps: WindowsStoreApps
second:

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 502f8b696dbf4d34b9f8cf73c92eb871
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,55 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3333826112655416783
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 259651450925461204}
- component: {fileID: 9120269285994385312}
m_Layer: 0
m_Name: GameManager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &259651450925461204
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3333826112655416783}
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: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &9120269285994385312
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3333826112655416783}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6dbc92c41f18a5640b01bba5eba07b13, type: 3}
m_Name:
m_EditorClassIdentifier:
confirmPanel: {fileID: 8145365568262946399, guid: 76f1fe6b5243faf4f9b8caee7312d336, type: 3}
settingsPanel: {fileID: 2861881646994438329, guid: ea820246b5075c54d9f614291ca41c5d, type: 3}
rankingPanel: {fileID: 154459105952450598, guid: bf4bb18aa323fe748b3eb1d537503596, type: 3}
shopPanel: {fileID: 8190964574954487140, guid: eb257b0a685b2254f860f294ce8cba54, type: 3}
giboPanel: {fileID: 3090474328172188941, guid: c63914e01332f8d479ada92325335e41, type: 3}
profileSprites:
- {fileID: 21300000, guid: 2122f6b13f8bb394f9c0196cc035d366, type: 3}
- {fileID: 21300000, guid: 18ae4aac85f6d444b9ffb2ac80f27c45, type: 3}
canvas: {fileID: 0}

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: cecd201912b5f074283ce16fbcfe78cf
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -7,6 +7,11 @@ public class GameManager : Singleton<GameManager>
{
[SerializeField] private GameObject signinPanel;
[SerializeField] private GameObject signupPanel;
[SerializeField] private GameObject settingsPanel;
[SerializeField] private GameObject confirmPanel;
[SerializeField] private GameObject rankingPanel;
[SerializeField] private GameObject shopPanel;
[SerializeField] private GameObject giboPanel;
[SerializeField] private Canvas canvas;
private UserManager _userManager; // UserManager 인스턴스 관리
@ -16,7 +21,7 @@ public class GameManager : Singleton<GameManager>
private StoneController _stoneController;
private Canvas _canvas;
public Sprite[] profileSprites; //패널에서 사용할 테스트 배열
public Sprite[] profileSprites; //스크롤 패널에서 사용할 테스트 배열
private void Awake()
{
@ -105,4 +110,50 @@ public class GameManager : Singleton<GameManager>
}
_canvas = GameObject.Find("Canvas").GetComponent<Canvas>();
}
public void OpenConfirmPanel(string message, ConfirmPanelController.OnConfirmButtonClick onConfirmButtonClick)
{
if (_canvas != null)
{
var confirmPanelObject = Instantiate(confirmPanel, _canvas.transform);
confirmPanelObject.GetComponent<ConfirmPanelController>()
.Show(message, onConfirmButtonClick);
}
}
public void OpenSettingsPanel()
{
if (_canvas != null)
{
var settingsPanelObject = Instantiate(settingsPanel, _canvas.transform);
settingsPanelObject.GetComponent<PanelController>().Show();
}
}
public void OpenRankingPanel(List<RankingItem> rankingItems)
{
if (_canvas != null)
{
var settingsPanelObject = Instantiate(rankingPanel, _canvas.transform);
settingsPanelObject.GetComponent<RankingPanelController>().Show(rankingItems);
}
}
public void OpenShopPanel(List<ShopItem> shopItems)
{
if (_canvas != null)
{
var settingsPanelObject = Instantiate(shopPanel, _canvas.transform);
settingsPanelObject.GetComponent<ShopPanelController>().Show(shopItems);
}
}
public void OpenGiboPanel(List<GiboItem> giboItems)
{
if (_canvas != null)
{
var settingsPanelObject = Instantiate(giboPanel, _canvas.transform);
settingsPanelObject.GetComponent<GiboPanelController>().Show(giboItems);
}
}
}

View File

@ -0,0 +1,84 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Random = UnityEngine.Random;
/// <summary>
/// 패널 생성 테스트 코드
/// 버튼을 누르면 팝업 생성
/// 상점, 랭크, 기보 패널은 각 데이터타입 리스트를 전달해야함
/// </summary>
public class TestPanelController : MonoBehaviour
{
public void OnConfirmPanelClick()
{
GameManager.Instance.OpenConfirmPanel("확인 패널 입니다.", () =>
{
Debug.Log("확인 버튼을 누르셨습니다.");
});
return;
}
public void OnSettingPanelClick()
{
GameManager.Instance.OpenSettingsPanel();
}
public void OnRankingPanelClick()
{
List<RankingItem> rankingItems = new List<RankingItem>(); //테스트 데이터 리스트 생성
for (int i = 0; i < 30; i++)
{
RankingItem rankingItem = new RankingItem
{
ProfileSpriteIndex = Random.Range(0, 2),
Name = i.ToString(),
WinRate = Random.Range(0f, 1f)
};
rankingItems.Add(rankingItem);
}
GameManager.Instance.OpenRankingPanel(rankingItems);
}
public void OnShopPanelClick()
{
List<ShopItem> shopItems = new List<ShopItem>(); //테스트 데이터 리스트 생성
for (int i = 0; i < 30; i++)
{
ShopItem shopItem = new ShopItem
{
ItemSpriteIndex = Random.Range(0, 2),
Name = i.ToString(),
Price = (i * 1000)+ "원"
};
shopItems.Add(shopItem);
}
GameManager.Instance.OpenShopPanel(shopItems);
}
public void OnGiboPanelClick()
{
List<GiboItem> giboItems = new List<GiboItem>(); //테스트 데이터 리스트 생성
for (int i = 0; i < 30; i++)
{
GiboItem giboItem = new GiboItem
{
WinLoseSpriteIndex = Random.Range(0, 2),
Date = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),
Name = i.ToString(),
};
giboItems.Add(giboItem);
}
GameManager.Instance.OpenGiboPanel(giboItems);
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 03aef985a8b802a409630fdcab7be09b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: