static ConfigManager() { var cfgFile = PathUnity.GetFullPath("config.json"); if (string.IsNullOrEmpty(cfgFile)) { throw new Exception(string.Format("未找到文件:{0}.", "config.json")); } var strCfg = cfgFile.ReadToEnd(DefulatEncoding); Current = Serializer.JsonDeserialize <ConfigInfo>(strCfg); }
/// <summary> /// 读取某个配置文件的内容 /// </summary> /// <param name="cfgFile"></param> /// <returns></returns> public static string ReadConfigFile(string cfgFile) { var filePath = PathUnity.GetFullPath(cfgFile); if (string.IsNullOrWhiteSpace(filePath)) { throw new Exception(string.Format("cannot found file \"{0}\".", cfgFile)); } var script = filePath.ReadToEnd(Encoding.UTF8); if (string.IsNullOrEmpty(script)) { throw new Exception(string.Format("file is empty, \"{0}\".", filePath)); } return(script); }
static void CreateUISpine() { Object[] selects = Selection.objects; foreach (Object o in selects) { SkeletonDataAsset s = o as SkeletonDataAsset; if (s != null && s.atlasAsset != null) { AtlasAsset a = s.atlasAsset; if (a.materials.Length > 0) { Material m = a.materials [0]; string path = "Assets/"; //Application.persistentDataPath; path = PathUnity.Combine(path, "ABResources/Spine2D"); path = PathUnity.Combine(path, o.name + ".prefab"); GameObject g = new GameObject(); g.name = o.name; g.AddComponent <MeshRenderer> (); g.AddComponent <MeshFilter> (); NGUISpine nus = g.AddComponent <NGUISpine> (); nus.skeletonDataAsset = s; var anims = s.GetSkeletonData(true).Animations; if (anims.Count > 0) { nus.Reset(); nus.AnimationName = anims [1].Name; } UISpine us = g.AddComponent <UISpine> (); us.spineMaterial = m; us.depth = 100; GameObject newGo = PrefabUtility.CreatePrefab(path, g); newGo.name = g.name; GameObject.DestroyImmediate(g); } } } AssetDatabase.Refresh(); }
/// <summary> /// 初始化扩展模块 /// </summary> private static void InitExtendModules() { ExtendModules = new List <ModuleInfo>(); ExecutePaths = new List <string>(); var modulePath = PathUnity.GetFullPath("modules"); if (modulePath?.Length > 0) { foreach (var dir in Directory.GetDirectories(modulePath)) { var file = Directory.GetFiles(dir, "module.json").SingleOrDefault(); if (string.IsNullOrEmpty(file)) { continue; } var content = file.ReadToEnd(ConfigManager.DefulatEncoding); if (string.IsNullOrEmpty(content)) { continue; } var config = Serializer.JsonDeserialize <ModuleInfo>(content); config.ExecutePath = dir; if (config.ProxyScript?.Length > 0) { if (File.Exists(Path.Combine(dir, config.ProxyScript))) { config.ProxyScript = new FileInfo(Path.Combine(dir, config.ProxyScript)).FullName.ReadToEnd(ConfigManager.DefulatEncoding); } } ExtendModules.Add(config); if (!ExecutePaths.Contains(dir)) { ExecutePaths.Add(dir); } //AppDomain.CurrentDomain.SetData("PRIVATE_BINPATH", "Modules/html"); //// AppDomain.CurrentDomain.SetData("BINPATH_PROBE_ONLY", @"C:\Projects\Git\Snail.Collector\Snail.Collector\bin\Debug\Modules\html"); //var m = typeof(AppDomainSetup).GetMethod("UpdateContextProperty", BindingFlags.NonPublic | BindingFlags.Static); //var funsion = typeof(AppDomain).GetMethod("GetFusionContext", BindingFlags.NonPublic | BindingFlags.Instance); //m.Invoke(null, new object[] { funsion.Invoke(AppDomain.CurrentDomain, null), "PRIVATE_BINPATH", @"C:\Projects\Git\Snail.Collector\Snail.Collector\bin\Debug\Modules\html" }); } } }