Exemplo n.º 1
0
        static private PrefabBuildInfo GetPrefabBuildInfo(PrefabBuilder builder, Model.NodeData node, BuildTarget target, string groupKey)
        {
            var prefabCacheDir = FileUtility.EnsureCacheDirExists(target, node, PrefabBuilder.kCacheDirName);
            var buildInfoPath  = FileUtility.PathCombine(prefabCacheDir, groupKey + ".asset");

            return(AssetDatabase.LoadAssetAtPath <PrefabBuildInfo>(buildInfoPath));
        }
        static private AssetGenerateInfo GetAssetGenerateInfo(AssetGenerator.GeneratorEntry entry, Model.NodeData node, BuildTarget target, AssetReference asset)
        {
            var cacheDir          = FileUtility.EnsureCacheDirExists(target, node, AssetGenerator.kCacheDirName);
            var generateInfoDir   = FileUtility.PathCombine(cacheDir, entry.m_id);
            var generatorInfoPath = FileUtility.PathCombine(generateInfoDir, asset.fileNameAndExtension + ".asset");

            return(AssetDatabase.LoadAssetAtPath <AssetGenerateInfo>(generatorInfoPath));
        }
Exemplo n.º 3
0
        private string PrepareOutputDirectory(BuildTarget target, Model.NodeData node)
        {
            var outputOption = (OutputOption)m_outputOption [target];

            if (outputOption == OutputOption.CreateInCacheDirectory)
            {
                return(FileUtility.EnsureCacheDirExists(target, node, kCacheDirName));
            }

            return(Path.Combine("Assets", m_outputDir [target]));
        }
Exemplo n.º 4
0
        static public void SavePrefabBuildInfo(string buildPath, PrefabBuilder builder, Model.NodeData node, BuildTarget target, string groupKey, List <AssetReference> assets)
        {
            var prefabCacheDir = FileUtility.EnsureCacheDirExists(target, node, PrefabBuilder.kCacheDirName);
            var buildInfoPath  = FileUtility.PathCombine(prefabCacheDir, groupKey + ".asset");

            var version = PrefabBuilderUtility.GetPrefabBuilderVersion(builder.Builder.ClassName);

            var buildInfo = ScriptableObject.CreateInstance <PrefabBuildInfo>();

            buildInfo.Initialize(buildPath, groupKey, builder.Builder.ClassName, builder.Builder[target], version, builder.Options, assets);

            AssetDatabase.CreateAsset(buildInfo, buildInfoPath);
        }
Exemplo n.º 5
0
        private string PrepareOutputDirectory(BuildTarget target, Model.NodeData node, AssetReference a)
        {
            var outputOption = (OutputOption)m_outputOption [target];

            if (outputOption == OutputOption.CreateInSelectedDirectory)
            {
                return(Path.Combine("Assets", m_outputDir [target]));
            }

            if (outputOption == OutputOption.CreateInCacheDirectory)
            {
                return(FileUtility.EnsureCacheDirExists(target, node, kCacheDirName));
            }

            var sourceDir = Path.GetDirectoryName(a.importFrom);

            return(FileUtility.PathCombine(sourceDir, m_outputDir [target]));
        }
        static public void SaveAssetGenerateInfo(AssetGenerator.GeneratorEntry entry, Model.NodeData node, BuildTarget target, AssetReference asset)
        {
            var cacheDir        = FileUtility.EnsureCacheDirExists(target, node, AssetGenerator.kCacheDirName);
            var generateInfoDir = FileUtility.PathCombine(cacheDir, entry.m_id);

            if (!Directory.Exists(generateInfoDir))
            {
                Directory.CreateDirectory(generateInfoDir);
            }
            var generatorInfoPath = FileUtility.PathCombine(generateInfoDir, asset.fileNameAndExtension + ".asset");

            var version = AssetGeneratorUtility.GetVersion(entry.m_instance.ClassName);

            var info = ScriptableObject.CreateInstance <AssetGenerateInfo>();

            info.Initialize(entry.m_instance.ClassName, entry.m_instance[target], version, asset);

            AssetDatabase.CreateAsset(info, generatorInfoPath);
        }
Exemplo n.º 7
0
        public override void Build(BuildTarget target,
                                   Model.NodeData nodeData,
                                   IEnumerable <PerformGraph.AssetGroups> incoming,
                                   IEnumerable <Model.ConnectionData> connectionsToOutput,
                                   PerformGraph.Output outputFunc,
                                   Action <Model.NodeData, string, float> progressFunc)
        {
            if (m_freezeGroups)
            {
                m_savedGroups = new SerializableGroups(m_lastOutputGroups);

                // export current setting to file
                var prefabOutputDir = FileUtility.EnsureCacheDirExists(target, nodeData, kCacheDirName);
                var outputFilePath  = Path.Combine(prefabOutputDir, nodeData.Name + ".json");

                string jsonString = JsonUtility.ToJson(m_savedGroups, true);
                File.WriteAllText(outputFilePath, jsonString, System.Text.Encoding.UTF8);
            }
        }