using GFMain; using System; using System.Collections; using System.Collections.Generic; using UnityCommon; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; using UnityGameFramework.Runtime; namespace DTYJ { public class UIMainMenu : UIFormLogic { protected override void OnInit(object userData) { base.OnInit(userData); InitRoleSelect(); Init浮动菜单(); goHelpPanel.SetActive(false); //InitPositionJump(); } private void Update() { Update_View(); Update_FloatMenu(); } #region 角色选择 public GameObject goPane_角色选择; public Toggle toggle值班站长, toggle车站值班员, toggle站务员_站台, toggle站务员_站厅; void InitRoleSelect() { toggle值班站长.isOn = toggle车站值班员.isOn = toggle站务员_站台.isOn = false; toggle值班站长.onValueChanged.AddListener((v) => { OnToggleRole_Role(RoleName.值班站长, v); }); toggle车站值班员.onValueChanged.AddListener((v) => { OnToggleRole_Role(RoleName.车站值班员, v); }); toggle站务员_站台.onValueChanged.AddListener((v) => { OnToggleRole_Role(RoleName.站务员_站台, v); }); toggle站务员_站厅.onValueChanged.AddListener((v) => { OnToggleRole_Role(RoleName.站务员_站厅, v); }); SetToggleState(toggle站务员_站台, Main.Instance.onlineNetwork.networkManager.mode == Mirror.NetworkManagerMode.Host); Show角色选择面板(false); } RoleName roleSelected = 0; public void OnToggleRole_Role(RoleName roleName, bool value) { if (value) roleSelected = roleName; else roleSelected = 0; } bool isMan = true; public void OnDropdownGender(int index) { isMan = index == 0; } public void OnClickConfirmRole() { if (roleSelected == 0) MainEntry.CommonUI.messageBox.ShowMessage("请选择角色!"); else OnlineCtrl.Instance.SelecteRoleName(roleSelected, isMan); } RoleName roleList = 0; public void SetRoleSelected(RoleName roleName) { roleList = roleName; SetToggleState(toggle值班站长, (roleList & RoleName.值班站长) == RoleName.值班站长); SetToggleState(toggle车站值班员, (roleList & RoleName.车站值班员) == RoleName.车站值班员); //SetToggleState(toggle站务员_站台, (roleList & RoleName.站务员_站台) == RoleName.站务员_站台); SetToggleState(toggle站务员_站台, Main.Instance.onlineNetwork.networkManager.mode == Mirror.NetworkManagerMode.Host || (roleList & RoleName.站务员_站台) == RoleName.站务员_站台); SetToggleState(toggle站务员_站厅, (roleList & RoleName.站务员_站厅) == RoleName.站务员_站厅); } private void SetToggleState(Toggle toggle, bool isSelected) { if (toggle.isOn && isSelected) toggle.isOn = false; toggle.interactable = !isSelected; } public void Show角色选择面板(bool value) { goPane_角色选择.SetActive(value); if (value) { SetRoleSelected(roleList); } } #endregion #region 视角返回 public GameObject goPane_视角返回; private void Update_View() { if (MainEntry.CameraCtrl?.cameraStateCurrent != null) { goPane_视角返回.SetActive(MainEntry.CameraCtrl.cameraStateCurrent is MotionlessState); if (MainEntry.CameraCtrl.cameraStateCurrent is MotionlessState) { if (Input.GetKeyDown(KeyCode.W) || Input.GetKeyDown(KeyCode.A) || Input.GetKeyDown(KeyCode.S) || Input.GetKeyDown(KeyCode.D) || Input.GetMouseButtonDown(1)) { OnClick视角返回(); } } } } public void OnClick视角返回() { MainEntry.CameraCtrl?.ToPreCamerastate(); CloseFloatMenu(); } #endregion #region 浮动菜单 public GameObject goPanel_浮动菜单; private GameObject floatMenuItemOrig; private readonly List floatMenuItems = new List(); private Text textTitle; private void Init浮动菜单() { goPanel_浮动菜单.transform.GetChild(0).GetChild(1).GetComponent