You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.2 KiB
70 lines
2.2 KiB
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class CharacterSelectManager : MonoBehaviour
|
|
{
|
|
[SerializeField] private MainScreensManager mainScreensManager;
|
|
|
|
[Header("Avatars")]
|
|
[SerializeField] private GameObject avatar;
|
|
[SerializeField] private GameObject avatarModel;
|
|
[SerializeField] private CharacterButton characterButtonPrefab;
|
|
[SerializeField] private Transform charactersContent;
|
|
|
|
private List<CharacterButton> characterButtons = new List<CharacterButton>();
|
|
|
|
[Header("Data")]
|
|
[SerializeField] private CharactersList charactersList;
|
|
[SerializeField] private Character characterConfirmed;
|
|
[SerializeField] private Character character;
|
|
|
|
private CharacterButton selectedButton;
|
|
|
|
private void Start()
|
|
{
|
|
string charIDName = "char_james"; //GET_NAME
|
|
foreach (Character character in charactersList.Characters)
|
|
{
|
|
CharacterButton button = Instantiate(characterButtonPrefab, charactersContent);
|
|
button.Initialize(character, (Character selectedCharacter) =>
|
|
{
|
|
selectedButton = button;
|
|
SetAvatar(selectedCharacter);
|
|
}, character.IDName == charIDName);
|
|
|
|
characterButtons.Add(button);
|
|
|
|
if (character.IDName == charIDName)
|
|
{
|
|
characterConfirmed = character;
|
|
SetAvatar(character);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void SetAvatar(Character character)
|
|
{
|
|
this.character = character;
|
|
if (avatarModel) Destroy(avatarModel);
|
|
|
|
avatarModel = Instantiate(character.Prefab, avatar.transform);
|
|
|
|
string anim = character.SelectAnimation == "" ? "Waving" : character.SelectAnimation;
|
|
avatarModel.GetComponent<Animator>().Play(anim);
|
|
}
|
|
|
|
public void ConfirmAvatar()
|
|
{
|
|
characterConfirmed = character;
|
|
GameManager.Instance.SetCharacter(character);
|
|
mainScreensManager.SetGameScreen();
|
|
}
|
|
|
|
public void RevertAvatar()
|
|
{
|
|
selectedButton?.Deselect();
|
|
CharacterButton button = characterButtons.Find(x => x.Character == characterConfirmed);
|
|
button?.Select();
|
|
selectedButton = button;
|
|
}
|
|
}
|
|
|