mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-05-13 14:04:29 -05:00
if IsAssetImport, Prevent runtime resource allocation.
Or temporary object when export.
This commit is contained in:
parent
675bb7be41
commit
a4af90c978
|
|
@ -12,6 +12,7 @@ namespace UniGLTF
|
|||
/// </summary>
|
||||
public class ImporterContext : IResponsibilityForDestroyObjects
|
||||
{
|
||||
public readonly bool IsAssetImport;
|
||||
private readonly ImporterContextSettings _settings;
|
||||
|
||||
public ITextureDescriptorGenerator TextureDescriptorGenerator { get; protected set; }
|
||||
|
|
@ -37,8 +38,10 @@ namespace UniGLTF
|
|||
IReadOnlyDictionary<SubAssetKey, UnityEngine.Object> externalObjectMap = null,
|
||||
ITextureDeserializer textureDeserializer = null,
|
||||
IMaterialDescriptorGenerator materialGenerator = null,
|
||||
ImporterContextSettings settings = null)
|
||||
ImporterContextSettings settings = null,
|
||||
bool isAssetImport = false)
|
||||
{
|
||||
IsAssetImport = isAssetImport;
|
||||
_settings = settings ?? new ImporterContextSettings();
|
||||
Data = data;
|
||||
TextureDescriptorGenerator = new GltfTextureDescriptorGenerator(Data);
|
||||
|
|
|
|||
|
|
@ -48,7 +48,10 @@ namespace UniVRM10
|
|||
|
||||
var materialGenerator = GetMaterialDescriptorGenerator(renderPipeline);
|
||||
|
||||
using (var loader = new Vrm10Importer(result, externalObjectMap: extractedObjects, materialGenerator: materialGenerator))
|
||||
using (var loader = new Vrm10Importer(result,
|
||||
externalObjectMap: extractedObjects,
|
||||
materialGenerator: materialGenerator,
|
||||
isAssetImport: true))
|
||||
{
|
||||
// settings TextureImporters
|
||||
foreach (var textureInfo in loader.TextureDescriptorGenerator.Get().GetEnumerable())
|
||||
|
|
|
|||
|
|
@ -290,6 +290,7 @@ namespace UniVRM10
|
|||
{
|
||||
Debug.Log("vrm-1.0 FreezeMesh");
|
||||
var copy = GameObject.Instantiate(root);
|
||||
copy.GetComponent<Vrm10Instance>().UpdateType = Vrm10Instance.UpdateTypes.None;
|
||||
disposer.Push(copy);
|
||||
root = copy;
|
||||
|
||||
|
|
|
|||
|
|
@ -33,9 +33,10 @@ namespace UniVRM10
|
|||
IMaterialDescriptorGenerator materialGenerator = null,
|
||||
bool useControlRig = false,
|
||||
ImporterContextSettings settings = null,
|
||||
IVrm10SpringBoneRuntime springboneRuntime = null
|
||||
IVrm10SpringBoneRuntime springboneRuntime = null,
|
||||
bool isAssetImport = false
|
||||
)
|
||||
: base(vrm.Data, externalObjectMap, textureDeserializer, settings: settings)
|
||||
: base(vrm.Data, externalObjectMap, textureDeserializer, settings: settings, isAssetImport: isAssetImport)
|
||||
{
|
||||
if (vrm == null)
|
||||
{
|
||||
|
|
@ -288,7 +289,11 @@ namespace UniVRM10
|
|||
await LoadSpringBoneAsync(awaitCaller, controller, springBone);
|
||||
}
|
||||
|
||||
if (Application.isPlaying)
|
||||
if (IsAssetImport)
|
||||
{
|
||||
controller.UpdateType = Vrm10Instance.UpdateTypes.None;
|
||||
}
|
||||
else
|
||||
{
|
||||
// EditorImport では呼ばない
|
||||
// Vrm10Runtime で初期化していたが、 async にするためこちらに移動 v0.127
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user