UniversalViewer/Assets/Scripts/ModelViewerBase/Pose/PoseLoadOptions.cs

68 lines
1.5 KiB
C#

using UnityEngine;
public class PoseLoadOptions
{
//general
public bool
Root,
Morphs;
//body parts
public bool
Body,
Ears,
//EarsAlt,
Tail,
//TailAlt,
Other;
//all
public bool
Position,
Rotation,
Scale;
public PoseLoadOptions(bool value)
{
Root = value;
Morphs = value;
Body = value;
Ears = value;
//EarsAlt = value;
Tail = value;
//TailAlt = value;
Other = value;
Position = value;
Rotation = value;
Scale = value;
}
public static PoseLoadOptions None()
{
return new PoseLoadOptions(false);
}
public static PoseLoadOptions All()
{
return new PoseLoadOptions(true);
}
}
public static class PoseLoadOptionsExtra
{
public static void ApplyTo(this SerializableTransform tsf, Transform t, PoseLoadOptions options)
{
if (tsf.Space == Space.World)
{
if (options.Position) t.position = tsf.Position;
if (options.Rotation) t.eulerAngles = tsf.Rotation;
if (options.Scale) t.localScale = tsf.Scale;
}
else
{
if (options.Position) t.localPosition = tsf.Position;
if (options.Rotation) t.localEulerAngles = tsf.Rotation;
if (options.Scale) t.localScale = tsf.Scale;
}
}
}