Add product asset dependency handling to SC builder
This commit is contained in:
@@ -59,6 +59,7 @@ namespace ScriptCanvasBuilder
|
||||
QuantumLeap,
|
||||
DependencyArguments,
|
||||
DependencyRequirementsData,
|
||||
AddAssetDependencySearch,
|
||||
// add new entries above
|
||||
Current,
|
||||
};
|
||||
|
||||
@@ -681,6 +681,15 @@ namespace ScriptCanvasBuilder
|
||||
}
|
||||
|
||||
AssetBuilderSDK::JobProduct jobProduct;
|
||||
|
||||
// Scan our runtime input for any asset references
|
||||
// Store them as product dependencies
|
||||
AssetBuilderSDK::OutputObject(&runtimeData.m_input,
|
||||
azrtti_typeid<decltype(runtimeData.m_input)>(),
|
||||
input.runtimeScriptCanvasOutputPath,
|
||||
azrtti_typeid<ScriptCanvas::RuntimeAsset>(),
|
||||
AZ_CRC("RuntimeData", 0x163310ae), jobProduct);
|
||||
|
||||
jobProduct.m_dependencies.push_back({ runtimeData.m_script.GetId(), {} });
|
||||
|
||||
for (const auto& assetDependency : runtimeData.m_requiredAssets)
|
||||
@@ -712,10 +721,6 @@ namespace ScriptCanvasBuilder
|
||||
}
|
||||
}
|
||||
|
||||
jobProduct.m_dependenciesHandled = true;
|
||||
jobProduct.m_productFileName = input.runtimeScriptCanvasOutputPath;
|
||||
jobProduct.m_productAssetType = azrtti_typeid<ScriptCanvas::RuntimeAsset>();
|
||||
jobProduct.m_productSubID = AZ_CRC("RuntimeData", 0x163310ae);
|
||||
input.response->m_outputProducts.push_back(AZStd::move(jobProduct));
|
||||
return AZ::Success();
|
||||
}
|
||||
|
||||
@@ -89,18 +89,18 @@ namespace ScriptCanvas::Nodeables::Spawning
|
||||
rootAssetId.m_subId = rootSubId;
|
||||
|
||||
m_spawnableAsset = AZ::Data::AssetManager::Instance().
|
||||
FindOrCreateAsset<AzFramework::Spawnable>(rootAssetId, AZ::Data::AssetLoadBehavior::PreLoad);
|
||||
FindOrCreateAsset<AzFramework::Spawnable>(rootAssetId, AZ::Data::AssetLoadBehavior::Default);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_spawnableAsset.SetAutoLoadBehavior(AZ::Data::AssetLoadBehavior::PreLoad);
|
||||
m_spawnableAsset.SetAutoLoadBehavior(AZ::Data::AssetLoadBehavior::Default);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SpawnNodeable::RequestSpawn(Data::Vector3Type translation, Data::Vector3Type rotation, Data::NumberType scale)
|
||||
{
|
||||
if (!m_spawnableAsset.IsReady())
|
||||
if (m_spawnableAsset.GetAutoLoadBehavior() == AZ::Data::AssetLoadBehavior::NoLoad)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user