コード例 #1
0
ファイル: ConfigRead.cs プロジェクト: moto2002/TheSecondWorld
        /// <summary>
        /// 重新加载配置表
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="source"></param>
        /// <returns></returns>
        public static async Task ReloadConfig <T>(Dictionary <object, T> source) where T : BaseConfig
        {
            string fileName = typeof(T).Name;

            source.Clear();
            UnityEngine.Object configObj = await GameFrameEntry.GetModule <AssetbundleModule>().LoadAsset <UnityEngine.Object>(configAssetbundle, fileName);

            if (configObj != null)
            {
                string   strconfig = configObj.ToString();
                List <T> list      = JsonMapper.ToObject <List <T> >(strconfig);
                for (int i = 0; i < list.Count; i++)
                {
                    if (source.ContainsKey(list[i].UniqueID))
                    {
                        CLog.Error($"表[{fileName}]中有相同键({list[i].UniqueID})");
                    }
                    else
                    {
                        source.Add(list[i].UniqueID, list[i]);
                    }
                }
            }
            else
            {
                CLog.Error($"配置文件不存在{fileName}");
            }
        }
コード例 #2
0
        /// <summary>
        /// 异步加载资源
        /// </summary>
        private async Task <T> _LoadAsset <T>(string assetBundleName, string assetName, bool isWait = false) where T : UObject
        {
            // Load asset from assetBundle.
            AssetBundleLoadAssetOperation request = AssetBundleManager.LoadAssetAsync(assetBundleName, assetName, typeof(T));

            if (request == null)
            {
                return(default(T));
            }
            await request;

#if UNITY_EDITOR
            if (AssetBundleManager.SimulateAssetBundleInEditor)
            {
                await waitFrame;
            }
#endif

            T obj = request.GetAsset <T>();
            if (obj == null)
            {
                CLog.Error($"加载资源失败:{assetBundleName}  AssName:{assetName}");
            }
            return(obj);
        }
コード例 #3
0
ファイル: UIObject.cs プロジェクト: moto2002/TheSecondWorld
        /// <summary>
        /// 获取引用对象(在UIOutlet中定义的)
        /// </summary>
        public GameObject Get(string name)
        {
            GameObject obj;

            if (!objectList.TryGetValue(name, out obj))
            {
                CLog.Error($"未找到GameObject对象,请在UIOutlet中设置:{name}");
            }
            return(obj);
        }
コード例 #4
0
        public EffectData GetEffectDataById(int id)
        {
            EffectData data;

            if (!dicEffectDatas.TryGetValue(id, out data))
            {
                CLog.Error($"未找到ID[{id}]为的特效");
            }
            return(data);
        }
コード例 #5
0
ファイル: TimeModule.cs プロジェクト: moto2002/TheSecondWorld
        public void ResetLoopTimer(int Id)
        {
            LoopTimerData data;

            if (!loopTimers.TryGetValue(Id, out data))
            {
                CLog.Error($"ResetLoopTimer,未找到对应ID[{Id}]的数据类");
                return;
            }
            data.ResetTimer();
        }
コード例 #6
0
ファイル: TimeModule.cs プロジェクト: moto2002/TheSecondWorld
        /// <summary>
        /// 暂停循环计时器
        /// </summary>
        /// <param name="Id"></param>
        public void PauseLoopTimer(int Id)
        {
            LoopTimerData data;

            if (!loopTimers.TryGetValue(Id, out data))
            {
                CLog.Error($"PauseLoopTimer,未找到对应ID[{Id}]的数据类");
                return;
            }
            data.Pause(true);
        }
コード例 #7
0
        public T GetModel <T>() where T : DataManagerBase
        {
            T    t  = default(T);
            Type tp = typeof(T);

            if (m_DataManagerDic != null && m_DataManagerDic.ContainsKey(tp))
            {
                t = m_DataManagerDic[tp] as T;
            }
            else
            {
                CLog.Error($"未找到[{tp.FullName}]数据管理器");
            }
            return(t);
        }
コード例 #8
0
ファイル: UIModule.cs プロジェクト: moto2002/TheSecondWorld
        /// <summary>
        /// 获取UI节点
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        public Transform _GetUINode(string node)
        {
            Transform tran;

            if (!_uiNodeList.TryGetValue(node, out tran))
            {
                tran = UIRoot.transform.Find(node);
                if (tran == null)
                {
                    CLog.Error("未找到UI节点:" + node);
                    tran = canvas.transform;
                }
                _uiNodeList.Add(node, tran);
            }
            return(tran);
        }
コード例 #9
0
ファイル: UIObject.cs プロジェクト: moto2002/TheSecondWorld
        /// <summary>
        /// 获取控件对象
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="path">路径</param>
        /// <param name="parent">父对象</param>
        /// <returns></returns>
        public T GetComponen <T>(string path, Transform parent = null) where T : Component
        {
            if (parent == null)
            {
                parent = transform;
            }
            Transform tran = parent.Find(path);

            if (tran == null)
            {
                string str = $"父对象[{parent.name}],子路径[{path}]下未找到[{typeof(T).Name}]类型的对象";
                CLog.Error(str);
                return(null);
            }
            return(parent.Find(path).GetComponent <T>());
        }
コード例 #10
0
 /// <summary>
 /// 开始某个游戏
 /// </summary>
 public static void StarGame(string AppName, string GameMenuScene = "")
 {
     if (!CheckAppInProject(AppName))
     {
         CLog.Error($"当前工程未包含[{AppName}]游戏");
         return;
     }
     if (!string.IsNullOrEmpty(GameMenuScene))
     {
         GameMenuSceneName = GameMenuScene;
     }
     MsgDispatcher.SendMessage(GlobalEventType.ReadyExitGame);
     IsGoGameMenu           = false;
     GlobalData.MineAppName = AppName;
     //跳转到过度场景
     UnityEngine.SceneManagement.SceneManager.LoadScene("GameFrameworkLoad");
 }
コード例 #11
0
ファイル: ConfigRead.cs プロジェクト: moto2002/TheSecondWorld
        /// <summary>
        /// 读取竖表
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="source"></param>
        public static async Task <T> readConfigV <T>() where T : BaseConfig
        {
            string fileName = typeof(T).Name;

            UnityEngine.Object configObj = await GameFrameEntry.GetModule <AssetbundleModule>().LoadAsset <UnityEngine.Object>(configAssetbundle, fileName);

            if (configObj != null)
            {
                string   strconfig = configObj.ToString();
                List <T> list      = JsonMapper.ToObject <List <T> >(strconfig);
                if (list.Count > 0)
                {
                    return(list[0]);
                }
            }
            else
            {
                CLog.Error($"配置文件不存在{fileName}");
            }
            return(null);
        }