Пример #1
0
        private static void CreateResAsset(bool isLoadAssetBundle)
        {
#if UNITY_EDITOR
            if (!Directory.Exists(_ResKitConfigPath))
            {
                Directory.CreateDirectory(_ResKitConfigPath);
            }

            string fileName = _ResKitConfigPath + typeof(ResKitConfig).Name + ".asset";

            if (File.Exists(fileName))
            {
                ResKitConfig temp = Resources.Load <ResKitConfig>(typeof(ResKitConfig).Name);
                if (temp)
                {
                    temp.LoadResMode = isLoadAssetBundle ? ResKit.LoadResMode.AssetBundle : ResKit.LoadResMode.Resource;
                    return;
                }
                else
                {
                    File.Delete(fileName);
                }
            }

            ResKitConfig config = ScriptableObject.CreateInstance <ResKitConfig>();
            config.LoadResMode = isLoadAssetBundle ? ResKit.LoadResMode.AssetBundle : ResKit.LoadResMode.Resource;

            UnityEditor.AssetDatabase.CreateAsset(config, fileName);
            UnityEditor.AssetDatabase.SaveAssets();
            UnityEditor.AssetDatabase.Refresh();
#endif
        }
Пример #2
0
        private static bool GetResAsset()
        {
            if (!Directory.Exists(_ResKitConfigPath))
            {
                return(false);
            }

            string fileName = _ResKitConfigPath + typeof(ResKitConfig).Name + ".asset";

            if (!File.Exists(fileName))
            {
                return(false);
            }


            ResKitConfig config = Resources.Load <ResKitConfig>(typeof(ResKitConfig).Name);

            if (config)
            {
                return((int)config.LoadResMode == 1);
            }

            return(false);
        }
Пример #3
0
    private static void UpdateResGroup()
    {
        var dirs       = Directory.GetDirectories(GroupPath);
        var dataGroups = new List <ResGroupConfig>();

        foreach (var s in dirs)
        {
            var di = new DirectoryInfo(s);
            dataGroups.Add(new ResGroupConfig()
            {
                GroupName    = di.Name,
                DefaultLoad  = false,
                SimulateLoad = true
            });
        }
        var resConfig = ResKitConfig.GetConfig();

        foreach (var resGroup in resConfig.ResGroups)
        {
            var name     = resGroup.GroupName;
            var startStr = name.Substring(0, name.LastIndexOf("_", StringComparison.Ordinal));
            dataGroups.ForEach(item =>
            {
                if (item.GroupName.StartsWith(startStr))
                {
                    item.DefaultLoad  = resGroup.DefaultLoad;
                    item.SimulateLoad = resGroup.SimulateLoad;
                }
            });
        }
        resConfig.ResGroups = dataGroups;

        EditorUtility.SetDirty(resConfig);
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    }
Пример #4
0
        public static void Build()
        {
            LoadResMode  mode   = LoadResMode.Resource;
            ResKitConfig config = Resources.Load <ResKitConfig>(typeof(ResKitConfig).Name);

            if (config)
            {
                if (config.LoadResMode == LoadResMode.AssetBundle)
                {
                    mode = LoadResMode.AssetBundle;
                }
            }
            if (mode == LoadResMode.AssetBundle)
            {
                BuildAssetBundle.BuildAB();
                Copy(_ABPath, ResKitConst.AssetBundlePath);
            }


            if (!Directory.Exists(_BuildPath))
            {
                Directory.CreateDirectory(_BuildPath);
            }

            string savePath = "";

            switch (EditorUserBuildSettings.activeBuildTarget)
            {
            case BuildTarget.Android:
                savePath = _BuildPath + _AppName +
                           string.Format("_{0:yyyy-MM-dd-HH-mm}.apk", System.DateTime.Now);
                break;

            case BuildTarget.iOS:
                savePath = _BuildPath + _AppName + string.Format("_{0:yyyy-MM-dd-HH-mm}", System.DateTime.Now);
                break;

            case BuildTarget.StandaloneWindows:
            case BuildTarget.StandaloneWindows64:
                savePath = _BuildPath + _AppName +
                           string.Format("_{0:yyyy-MM-dd-HH-mm}/{1}.exe", System.DateTime.Now, _AppName);
                break;

            default:
                savePath = _BuildPath + _AppName + "_" +
                           string.Format("{0:yyyy-MM-dd-HH-mm}", System.DateTime.Now);
                break;
            }

            BuildPipeline.BuildPlayer(FindEnableEditorScenes(), savePath, EditorUserBuildSettings.activeBuildTarget,
                                      BuildOptions.None);

            if (mode == LoadResMode.AssetBundle)
            {
                DeleteDir(Application.streamingAssetsPath);
            }

            Debug.Log("执行打包完成 " + savePath);

#if UNITY_EDITOR_WIN
            string path = _BuildPath.Replace("/", "\\");

            System.Diagnostics.Process.Start("explorer.exe", path);
#endif
        }