using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class GameLaunch : MonoBehaviour { /// /// 进度加载 /// [SerializeField] private AsyncLoad m_asyncLoad; [Header("是否开启进度加载")] [SerializeField] private bool m_isOpenAsyncLoad; private void Start() { InitStartupData(); } /// /// 初始化启动数据 /// private void InitStartupData() { string[] args = Environment.GetCommandLineArgs(); if (args.Length < 2) { return; } //模拟数据 //string simulationData = "b4d71ce589ed0ab52b945a7e42fd6499d00c58b7/PC_电缆熔接头制作/1/12345678910/47.92.0.243:15158/Exam/PC_电缆熔接头制作/这是总平台参数"; //string[] tmpArgs = simulationData.Split('/'); string[] tmpArgs = args[1].Decrypt("chivatech").Split('/'); // 文件各种:手机号/课程名/模式/地址 string tmpPhoneNumber = ""; string tmpCourseName = ""; string tmpLoadScene = ""; string tmpMode = ""; UserProxy userProxy = DAL.Instance.Get(); if (String.IsNullOrEmpty(tmpArgs[2])) userProxy.userInfo.userName = "Chiva"; else userProxy.userInfo.userName = tmpArgs[2]; if (String.IsNullOrEmpty(tmpArgs[3])) userProxy.userInfo.phoneNumber = "40008013900"; else userProxy.userInfo.phoneNumber = tmpArgs[3]; Debug.Log(tmpArgs.Length + "-asd-" + args[1]); if (tmpArgs.Length < 4) { #region 电专平台接口解析 // 文件各种:手机号/课程名/模式/地址 tmpPhoneNumber = tmpArgs[0]; tmpCourseName = tmpArgs[1]; tmpMode = tmpArgs[2]; //if (tmpArgs.Length > 3) //{ // string tmpAddress = tmpArgs[3]; // //GrpcChannelContronller.Instance.StartClient(tmpAddress); // GetInfoaboutSpecifiedUser(tmpPhoneNumber); //} #endregion } else { #region 通用平台接口解析 tmpPhoneNumber = tmpArgs[5]; tmpMode = tmpArgs[2]; GrpcChannelContronller.Instance.StartClient(tmpArgs[4]); tmpCourseName = tmpArgs[1]; GlobalConfig.m_SelectDevice = tmpCourseName; tmpLoadScene = tmpArgs[6]; switch (tmpArgs[5]) { case "Learn": tmpMode = "学习"; break; case "Practice": tmpMode = "练习"; break; case "Exam": tmpMode = "考核"; break; default: tmpMode = "学习"; break; } Debug.Log(tmpCourseName + " --" + tmpMode); #endregion } //自由模式场景进自由练考模式 if (tmpCourseName.Contains("Free")) { SetOperationMode(tmpMode, true); } else { SetOperationMode(tmpMode); } GlobalConfig.m_SelectDevice = tmpCourseName; if (!string.IsNullOrEmpty(tmpLoadScene)) { m_asyncLoad.Init(tmpLoadScene, m_isOpenAsyncLoad); } else { Debug.Log($"ERROR:请检查是否存在 {tmpLoadScene} 课程"); } } /// /// 获取指定用户信息 /// /// private void GetInfoaboutSpecifiedUser(string _phoneNumber) { UserProxy userProxy = DAL.Instance.Get(); SearchInfoResponse tmpResponse = GrpcChannelContronller.Instance.client.StudentInfoSearch(new SearchRequest() { PhoneNumber = _phoneNumber }); if (tmpResponse.Result) { userProxy.userInfo.userName = tmpResponse.StudentInfos[0].Name; userProxy.userInfo.phoneNumber = _phoneNumber; } } /// /// 设置操作模式 /// /// private void SetOperationMode(string _mode, bool freeMode = false) { switch (_mode) { case "学习": GlobalData.m_CurrentOperationMode = OperationMode.Learn; break; case "练习": if (freeMode) { GlobalData.m_CurrentOperationMode = OperationMode.FreeParctice; } else { GlobalData.m_CurrentOperationMode = OperationMode.Practice; } break; case "考核": if (freeMode) { GlobalData.m_CurrentOperationMode = OperationMode.FreeExam; } else { GlobalData.m_CurrentOperationMode = OperationMode.Exam; } break; } } }