선택한 캐릭터 데이터로 캐릭터 이미지 불러올수 있도록 적용
This commit is contained in:
@@ -739,7 +739,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 1968431293}
|
- component: {fileID: 1968431293}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Player
|
m_Name: TON.Player
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
|
|||||||
@@ -7,6 +7,10 @@ namespace TON
|
|||||||
{
|
{
|
||||||
public class LobbyScene : SceneBase
|
public class LobbyScene : SceneBase
|
||||||
{
|
{
|
||||||
|
public SerializableDictionary<string, Sprite> CharacterSpriteDict = new SerializableDictionary<string, Sprite>();
|
||||||
|
|
||||||
|
[SerializeField] private List<PlayerData> playerDatas;
|
||||||
|
|
||||||
public override IEnumerator OnStart()
|
public override IEnumerator OnStart()
|
||||||
{
|
{
|
||||||
// Lobby 씬을 비동기로 로드한다.
|
// Lobby 씬을 비동기로 로드한다.
|
||||||
@@ -17,6 +21,49 @@ namespace TON
|
|||||||
{
|
{
|
||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SpawnPlayerCharacter();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SpawnPlayerCharacter()
|
||||||
|
{
|
||||||
|
playerDatas = PlayerDataManager.Singleton.players;
|
||||||
|
// 저장된 인덱스 가져오기
|
||||||
|
int selectedIndex = PlayerPrefs.GetInt("SelectedPlayerIndex", 0);
|
||||||
|
|
||||||
|
// 인덱스가 범위를 벗어나지 않는지 확인
|
||||||
|
if (selectedIndex < 0 || selectedIndex >= playerDatas.Count)
|
||||||
|
{
|
||||||
|
Debug.LogError($"Invalid player index: {selectedIndex}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string prefabName = playerDatas[selectedIndex].type == "b" ? "TON.Player_B" : "TON.Player_W";
|
||||||
|
// Resources에서 프리팹 로드
|
||||||
|
GameObject characterPrefab = Resources.Load<GameObject>($"Player/{prefabName}");
|
||||||
|
if (characterPrefab == null)
|
||||||
|
{
|
||||||
|
Debug.LogError($"Failed to load character prefab: {playerDatas[selectedIndex].type}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TON.Player 오브젝트 찾기
|
||||||
|
GameObject playerObj = GameObject.Find("TON.Player");
|
||||||
|
if (playerObj == null)
|
||||||
|
{
|
||||||
|
Debug.LogError("TON.Player not found in the scene!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 기존 플레이어 제거 (필요 시)
|
||||||
|
foreach (Transform child in playerObj.transform)
|
||||||
|
{
|
||||||
|
GameObject.Destroy(child.gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 캐릭터 프리팹을 TON.Player 위치에 배치
|
||||||
|
GameObject playerInstance = Instantiate(characterPrefab, playerObj.transform.position, Quaternion.identity);
|
||||||
|
playerInstance.transform.SetParent(playerObj.transform);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerator OnEnd()
|
public override IEnumerator OnEnd()
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace TON
|
|||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(selectedCharacter))
|
if (string.IsNullOrEmpty(selectedCharacter))
|
||||||
{
|
{
|
||||||
Debug.Log("캐릭터를 선택하세요!");
|
// 캐릭터 선택되지 않은 상태에서 버튼 동작 되지 않도록 적용
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -60,6 +60,9 @@ namespace TON
|
|||||||
PlayerPrefs.SetInt("SelectedPlayerIndex", currentSelectCharacterIndex);
|
PlayerPrefs.SetInt("SelectedPlayerIndex", currentSelectCharacterIndex);
|
||||||
|
|
||||||
Debug.Log(currentSelectCharacterIndex);
|
Debug.Log(currentSelectCharacterIndex);
|
||||||
|
UIManager.Hide<CharaterSelectUI>(UIList.CharaterSelectUI);
|
||||||
|
|
||||||
|
Main.Singleton?.ChangeScene(SceneType.Lobby);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnClickCreateButton()
|
public void OnClickCreateButton()
|
||||||
|
|||||||
Reference in New Issue
Block a user