2025-04-25 21:14:54 +09:00

58 lines
1.6 KiB
C#

using System.IO;
using NUnit.Framework;
using UniGLTF;
using UniGLTF.Extensions.VRMC_vrm;
using UnityEngine;
using VRMShaders;
namespace UniVRM10.Test
{
public class ApiSampleTests
{
VrmLib.Model ReadModel(string path)
{
var bytes = MigrationVrm.Migrate(File.ReadAllBytes(path));
var data = new GlbLowLevelParser(path, bytes).Parse();
var model = ModelReader.Read(data);
return model;
}
GameObject BuildGameObject(Vrm10Data data, bool showMesh)
{
using (var loader = new Vrm10Importer(data, null))
{
var loaded = loader.Load();
if (showMesh)
{
loaded.ShowMeshes();
}
loaded.EnableUpdateWhenOffscreen();
return loaded.gameObject;
}
}
[Test]
public void Sample()
{
var path = "Tests/Models/Alicia_vrm-0.51/AliciaSolid_vrm-0.51.vrm";
Debug.Log($"load: {path}");
using (var data = new GlbFileParser(path).Parse())
using (var migrated = Vrm10Data.Migrate(data, out Vrm10Data result, out MigrationData migration))
{
Assert.NotNull(result);
var go = BuildGameObject(result, true);
Debug.Log(go);
// export
var vrmBytes = Vrm10Exporter.Export(go, new EditorTextureSerializer());
Debug.Log($"export {vrmBytes.Length} bytes");
}
}
}
}