| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- using GameFramework.Event;
- using GFMain;
- using Mirror;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using UGFExtensions.Await;
- using UnityCommon;
- using UnityEngine;
- using UnityGameFramework.Runtime;
- namespace DTYJ
- {
- public class Main : MonoSingleton<Main>
- {
- [HideInInspector]
- public OnlineNetwork onlineNetwork;
- private void Start()
- {
- string resolution = MainEntry.Config["Resolution"];
- string[] res = resolution.Split('*');
- if (res.Length == 2)
- {
- int w = int.Parse(res[0]);
- int h = int.Parse(res[1]);
- bool isFull = MainEntry.Config["FullScreen"].ToLower() == "true";
- Screen.SetResolution(w, h, isFull);
- }
- var strReg = PlayerPrefs.GetString("RegistrationCode");
- var mac = SystemInfo.deviceUniqueIdentifier;
- if (string.IsNullOrEmpty(strReg))
- {
- MainEntry.CommonUI.inputPanel.Visible = true;
- return;
- }
- else
- {
- var regMd5 = Utility.GetMD5WithString(mac + "swsj202312");
- if (regMd5 != strReg)
- {
- MainEntry.CommonUI.inputPanel.Visible = true;
- return;
- }
- }
- onlineNetwork = GameEntry.GetComponent<OnlineNetwork>();
- onlineNetwork.InitNetworkManager(() =>
- {
- Init();
- });
- MainEntry.CameraCtrl.ToNone();
- MainEntry.Event.Subscribe(OnlineEventArgs.EventId, OnOnlineEvent);
- LoadScene();
- }
- private void OnOnlineEvent(object sender, GameEventArgs e)
- {
- OnlineEventArgs args = (OnlineEventArgs)e;
- switch (args.m_onlineEventType)
- {
- case OnlineEventArgs.OnlineEventType.OnClientError:
- OnClientError();
- break;
- case OnlineEventArgs.OnlineEventType.OnClientDisconnect:
- OnClientDisconnect();
- break;
- case OnlineEventArgs.OnlineEventType.OnStartClient:
- OnStartClient();
- break;
- }
- }
- private void OnStartClient()
- {
- }
- public UIMainMenu uiMainMenu;
- private async void Init()
- {
- OnlineCtrl.Instance.Init();
- var task = await MainEntry.UI.OpenUIFormAsync("Assets/_DTYJ/Scripts/UI/MainMenu.prefab", "Default", 1, false, this);
- uiMainMenu = task.Logic as UIMainMenu;
- #if !UNITY_EDITOR
- #if UNITY_SERVER
- //StartServer();
- #else
- //StartClient();
- #endif
- #endif
- //StartClient_XieTong();
- }
- private void OnClientDisconnect()
- {
- MainEntry.CommonUI.messageBox.ShowMessage("连接服务器失败,请检查网络配置后重新启动。", MessageBoxParams.MessageType.YesNoCancel, (res) =>
- {
- //if (res != MessageBoxParams.ResultType.Yes)
- Application.Quit();
- });
- }
- private void OnClientError()
- {
- }
- private void LoadScene()
- {
- LoadStations();
- }
- async void LoadStations()
- {
- await MainEntry.Scene.LoadSceneAsync("Assets/Levels/Common.unity");
- //var task1 = await MainEntry.Resource.LoadAssetAsync<GameObject>("Assets/_DTYJ/Prefabs/站/Station_1.prefab");
- //Instantiate(task1.gameObject);
- //var task2 = await MainEntry.Resource.LoadAssetAsync<GameObject>("Assets/_DTYJ/Prefabs/站/Station_2.prefab");
- //Instantiate(task2.gameObject);
- Utility.DelayExe(2, () => {
- //uiMainMenu?.InitPositionJump();
- #if !UNITY_EDITOR
-
- OnlineNetworkManager.singleton.GetComponent<NetworkManagerHUD>().enabled = false;
- switch (MainEntry.Config["OnlineLaunchType"].ToLower())
- {
- case "host":
- StartHost();
- break;
- case "server":
- StartServer();
- break;
- case "client":
- StartClient();
- break;
- default:
- MainEntry.CommonUI.messageBox.ShowMessage("无该启动模式:" + MainEntry.Config["OnlineLaunchType"].ToLower(), MessageBoxParams.MessageType.Confirm, (res) =>
- {
- Application.Quit();
- });
- break;
- }
- #else
- OnlineNetworkManager.singleton.GetComponent<NetworkManagerHUD>().enabled = true;
- #endif
- });
- }
- private void StartServer()
- {
- onlineNetwork.StartServer(ushort.Parse(MainEntry.Config["Online_Port"]));
- }
- private void StartHost()
- {
- onlineNetwork.StartHost(ushort.Parse(MainEntry.Config["Online_Port"]));
- }
- private void StartClient()
- {
- onlineNetwork.StartClient(MainEntry.Config["Online_IP"], ushort.Parse(MainEntry.Config["Online_Port"]));
- }
- //ClientSocket clientSocket = new ClientSocket();
- private void Update()
- {
- #region Socket测试
- //if (clientSocket.connected)
- //{
- // clientSocket.BeginReceive();
- //}
- //var msg = clientSocket.GetMsgFromQueue();
- //if (!string.IsNullOrEmpty(msg))
- //{
- // Debug.Log("RecvCallBack: " + msg);
- //}
- #endregion
- //if (Input.GetKeyDown(KeyCode.K))
- //{//测试固定视角
- // if (MainEntry.CameraCtrl.cameraStateCurrent is MotionlessState)
- // MainEntry.CameraCtrl.ToPreCamerastate();
- // else
- // MainEntry.CameraCtrl.ToMotionless(MainEntry.CameraCtrl.cameraController.cameraMain.transform.position + MainEntry.CameraCtrl.cameraController.cameraMain.transform.forward * 5, MainEntry.CameraCtrl.cameraController.cameraMain.transform.rotation);
- //}
- }
- }
- }
|