コード例 #1
0
        /// <summary>
        /// 预览结果 编辑器连线数据,但是build模式也会执行
        /// 这里只建议设置BuildingCtx的ab颗粒度
        /// </summary>
        /// <param name="target"></param>
        /// <param name="nodeData"></param>
        /// <param name="incoming"></param>
        /// <param name="connectionsToOutput"></param>
        /// <param name="outputFunc"></param>
        public override void Prepare(BuildTarget target, NodeData nodeData, IEnumerable <PerformGraph.AssetGroups> incoming, IEnumerable <ConnectionData> connectionsToOutput, PerformGraph.Output outputFunc)
        {
            //检测混淆

            StopwatchTools.Begin();
            if (BuildingCtx == null)
            {
                BuildingCtx = new AssetBundleBuildingContext();
            }

            BuildingCtx.BuildParams.BuildTarget = target;

            BuildingCtx.CheckABObfuscationSource();
            //设置所有节点参数请求,依次传参
            Debug.Log("【初始化框架资源环境】配置:\n" + JsonMapper.ToJson(BuildingCtx.BuildParams));
            var outMap = new Dictionary <string, List <AssetReference> >();

            //预览模式
            if ((AssetGraphWindowsModeEnum)this.AssetGraphWindowsMode == AssetGraphWindowsModeEnum.预览节点模式)
            {
                //生成buildinfo

                //创建构建上下文信息
                GenBuildingCtx();
                //输出
                outMap = new Dictionary <string, List <AssetReference> >()
                {
                    { nameof(FloderType.Runtime), BuildingCtx.RuntimeAssetsList.ToList() }, //传递新容器
                    { nameof(FloderType.Depend), BuildingCtx.DependAssetList.ToList() }
                };
            }
            else if ((AssetGraphWindowsModeEnum)this.AssetGraphWindowsMode == AssetGraphWindowsModeEnum.配置节点模式)
            {
                //输出
                outMap = new Dictionary <string, List <AssetReference> >()
                {
                    { nameof(FloderType.Runtime), new List <AssetReference>() }, //传递新容器
                    { nameof(FloderType.Depend), new List <AssetReference>() }
                };
            }

            StopwatchTools.End("【初始化框架资源环境】");

            var output = connectionsToOutput?.FirstOrDefault();

            if (output != null)
            {
                outputFunc(output, outMap);
                //
            }
        }
コード例 #2
0
        /// <summary>
        /// 生成BuildingCtx
        /// </summary>
        private void GenBuildingCtx(bool isRenew = false)
        {
            //新构建对象
            if (isRenew)
            {
                string lastouput = BuildingCtx.BuildParams.OutputPath;
                BuildingCtx = new AssetBundleBuildingContext();
                BuildingCtx.BuildParams.OutputPath = lastouput;
            }

            //生成build资源信息
            if (BuildingCtx.BuildingAssetInfos.AssetInfoMap.Count == 0)
            {
                BuildingCtx.CollectBuildingAssets();
            }
        }
コード例 #3
0
        /// <summary>
        /// 生成BuildingCtx
        /// </summary>
        private void GenBuildingCtx(bool isRenew = false)
        {
            Debug.Log("------------>生成BuildInfo  :" + this.GetHashCode());
            //新构建对象
            if (isRenew)
            {
                string lastouput = BuildingCtx.BuildParams.OutputPath;
                BuildingCtx = new AssetBundleBuildingContext();
                BuildingCtx.BuildParams.OutputPath = lastouput;
            }

            //生成build资源信息
            if (BuildingCtx.BuildAssetsInfo.AssetDataMaps.Count == 0)
            {
                BuildingCtx.GenBuildInfo();
            }
        }