add ScriptedImporterAxes

This commit is contained in:
ousttrue 2021-05-19 18:08:10 +09:00
parent 3f2f2bbff1
commit 3ba3f899e3
5 changed files with 49 additions and 26 deletions

View File

@ -13,17 +13,11 @@ namespace UniGLTF
public class GlbScriptedImporter : ScriptedImporter
{
[SerializeField]
Axes m_reverseAxis;
ScriptedImporterAxes m_reverseAxis;
public override void OnImportAsset(AssetImportContext ctx)
{
var asset = AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(ctx.assetPath);
if (asset == null)
{
// first time. set default setting
m_reverseAxis = UniGLTFPreference.GltfIOAxis;
}
ScriptedImporterImpl.Import(this, ctx, m_reverseAxis);
ScriptedImporterImpl.Import(this, ctx, m_reverseAxis.ToAxes());
}
}
}

View File

@ -13,17 +13,11 @@ namespace UniGLTF
public class GltfScriptedImporter : ScriptedImporter
{
[SerializeField]
Axes m_reverseAxis = default;
ScriptedImporterAxes m_reverseAxis = default;
public override void OnImportAsset(AssetImportContext ctx)
{
var asset = AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(ctx.assetPath);
if (asset == null)
{
// first time. set default setting
m_reverseAxis = UniGLTFPreference.GltfIOAxis;
}
ScriptedImporterImpl.Import(this, ctx, m_reverseAxis);
ScriptedImporterImpl.Import(this, ctx, m_reverseAxis.ToAxes());
}
}
}

View File

@ -0,0 +1,34 @@
namespace UniGLTF
{
/// <summary>
/// ScriptedImporter の Inspector 用の Axes 設定
/// </summary>
public enum ScriptedImporterAxes
{
Default,
Z,
X,
}
public static class ScriptedImporterAxesExtensions
{
public static Axes ToAxes(this ScriptedImporterAxes axis)
{
switch (axis)
{
case ScriptedImporterAxes.Z: return Axes.Z;
case ScriptedImporterAxes.X: return Axes.X;
case ScriptedImporterAxes.Default:
{
#if UNIGLTF_DEFAULT_AXES_X
return Axes.X;
#else
return Axes.Z;
#endif
}
default: throw new System.NotImplementedException();
}
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6f9b903cff6f27c4dbee54a9b8e8d1af
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -5,7 +5,6 @@ namespace UniGLTF
{
public enum Axes
{
Default,
Z,
X,
}
@ -68,15 +67,6 @@ namespace UniGLTF
{
public static IAxisInverter Create(this Axes axis)
{
if (axis == Axes.Default)
{
#if UNIGLTF_DEFAULT_AXES_X
axis = Axes.X;
#else
axis = Axes.Z;
#endif
}
switch (axis)
{
case Axes.Z: return new ReverseZ();