public static void ValidatePrefabBuilder(
NodeData node,
BuildTarget target,
Dictionary<string, List<Asset>> inputGroupAssets,
Action noBuilderData,
Action failedToCreateBuilder,
Action<string> canNotCreatePrefab,
Action<Asset> canNotImportAsset
)
{
if(string.IsNullOrEmpty(node.InstanceData[target])) {
noBuilderData();
}
var builder = PrefabBuilderUtility.CreatePrefabBuilder(node, target);
if(null == builder ) {
failedToCreateBuilder();
}
if(null != builder) {
foreach(var key in inputGroupAssets.Keys) {
var assets = inputGroupAssets[key];
if(assets.Any()) {
bool isAllGoodAssets = true;
foreach(var a in assets) {
if(string.IsNullOrEmpty(a.importFrom)) {
canNotImportAsset(a);
isAllGoodAssets = false;
}
}
if(isAllGoodAssets) {
// do not call LoadAllAssets() unless all assets have importFrom
if(string.IsNullOrEmpty(builder.CanCreatePrefab(key, LoadAllAssets(assets)))) {
canNotCreatePrefab(key);
}
}
}
}
}
}