f928a802d7
Pose serialization, deserialization (no face) UI handle system
53 lines
1.2 KiB
C#
53 lines
1.2 KiB
C#
|
|
using SerializableTypes;
|
|
using UnityEngine;
|
|
|
|
[System.Serializable]
|
|
public class SerializableTransform
|
|
{
|
|
public Space Space;
|
|
public SVector3 Position;
|
|
public SVector3 Rotation;
|
|
public SVector3 Scale;
|
|
|
|
public SerializableTransform()
|
|
{
|
|
Space = Space.World;
|
|
Scale = Vector3.one;
|
|
Position = Vector3.zero;
|
|
Rotation = Vector3.zero;
|
|
}
|
|
|
|
public SerializableTransform(Transform t, Space space)
|
|
{
|
|
Space = space;
|
|
if (space == Space.World)
|
|
{
|
|
Position = t.position;
|
|
Rotation = t.eulerAngles;
|
|
Scale = t.localScale; //lossyscale is read-only, so can't be used later
|
|
}
|
|
else
|
|
{
|
|
Position = t.localPosition;
|
|
Rotation = t.localEulerAngles;
|
|
Scale = t.localScale;
|
|
}
|
|
}
|
|
|
|
public void ApplyTo(Transform t)
|
|
{
|
|
if (Space == Space.World)
|
|
{
|
|
t.position = Position;
|
|
t.eulerAngles = Rotation;
|
|
t.localScale = Scale;
|
|
}
|
|
else
|
|
{
|
|
t.localPosition = Position;
|
|
t.localEulerAngles = Rotation;
|
|
t.localScale = Scale;
|
|
}
|
|
}
|
|
} |