Files
test/Assets/Scripts/CanvasController.cs
T
2025-09-08 16:28:54 +07:00

59 lines
1.7 KiB
C#

using BrewMonster.UI;
using CSNetwork.Protocols.RPCData;
using System.Collections.Generic;
using System.Threading;
using UnityEngine;
public class CanvasController : MonoBehaviour
{
[SerializeField] private ScreenLogin screenLogin;
[SerializeField] private SelecScreenCharacter screenCharacter;
[SerializeField] private GameObject bgr;
[SerializeField] private GameController gameController;
GameObject screenLoginOb;
GameObject screenCharacterOb;
private SynchronizationContext context;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
bgr.gameObject.SetActive(true);
screenLogin.gameObject.SetActive(true);
screenCharacter.gameObject.SetActive(false);
context = SynchronizationContext.Current;
}
public void ShowScreenSelectCharacter(List<RoleInfo> roleInfos)
{
context.Post(_ =>
{
screenLogin.gameObject.SetActive(false);
screenCharacter.gameObject.SetActive(true);
screenCharacter.InitScreen(roleInfos, OnClickSelectChacter);
}, null);
}
private void OnClickSelectChacter(RoleInfo roleInfo)
{
TestClientProgram.HandleSelectRole(roleInfo, (result) =>
{
context.Post(_ =>
{
bgr.gameObject.SetActive(false);
screenLogin.gameObject.SetActive(false);
screenCharacter.gameObject.SetActive(false);
gameController.InitCharacter(result);
}, null);
});
}
private void OnDestroy()
{
TestClientProgram.HandleLogOut((result) =>
{
Debug.LogError(result);
});
}
}