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 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); }); } }