- fixed possible null on show tooltip of consumable item that was just used. - fixed an issue preventing all characters from being loaded on character list if one in between was pointing to a null reference in playerprefs
72 lines
2.2 KiB
C#
72 lines
2.2 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class CharacterListController : MonoBehaviour
|
|
{
|
|
public GameObject togglePrefab;
|
|
public StringSharedField playerAccountName;
|
|
|
|
public Transform listParent;
|
|
public Button confirmButton;
|
|
|
|
GameObject characterToggleGO;
|
|
CharacterToggleInstance characterToggle;
|
|
|
|
PlayerAccountData playerAccount;
|
|
CharacterData characterData;
|
|
|
|
private void Awake()
|
|
{
|
|
playerAccount = PlayerDataHandler.Instance.LoadPlayerAccountData(playerAccountName.Value);
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
if (playerAccount != null)
|
|
{
|
|
if (playerAccount.characterNames.Count > 0)
|
|
{
|
|
GenerateCharacterListFromAccountData(playerAccount);
|
|
confirmButton.interactable = true;
|
|
}
|
|
else
|
|
confirmButton.interactable = false;
|
|
}
|
|
else
|
|
{
|
|
playerAccount = new PlayerAccountData(playerAccountName.Value);
|
|
PlayerDataHandler.Instance.SavePlayerAccountData(playerAccountName.Value, playerAccount);
|
|
confirmButton.interactable = false;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
private void GenerateCharacterListFromAccountData(PlayerAccountData accountData)
|
|
{
|
|
foreach (string characterName in accountData.characterNames)
|
|
{
|
|
characterData = PlayerDataHandler.Instance.LoadCharacterData(playerAccountName.Value, characterName);
|
|
|
|
if (characterData == null) continue;
|
|
if (characterData.characterClass == null) continue;
|
|
if (characterData.characterName == null) continue;
|
|
if (characterData.playerOwnerID == null) continue;
|
|
|
|
Debug.Log("CD " + characterData);
|
|
Debug.Log("CD " + (characterData == null).ToString());
|
|
Debug.Log("CD " + characterData.characterClass);
|
|
Debug.Log("CD " + characterData.characterName);
|
|
Debug.Log("CD " + characterData.playerOwnerID);
|
|
|
|
characterToggleGO = Instantiate(togglePrefab, listParent);
|
|
characterToggle = characterToggleGO.GetComponent<CharacterToggleInstance>();
|
|
|
|
characterToggle.InitializeCharacterToggle(characterData);
|
|
|
|
}
|
|
}
|
|
}
|