mirror of
https://gitgud.io/AbstractConcept/rimworld-animation-studio.git
synced 2024-08-15 00:43:27 +00:00
Initial commit
This commit is contained in:
commit
3c7cc0c973
8391 changed files with 704313 additions and 0 deletions
|
@ -0,0 +1,55 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace UnityEditor.U2D.Animation
|
||||
{
|
||||
internal class DefaultPoseScope : IDisposable
|
||||
{
|
||||
private bool m_Disposed;
|
||||
private SkeletonCache m_Skeleton;
|
||||
private BonePose[] m_Pose;
|
||||
private bool m_DoRestorePose = false;
|
||||
private bool m_UseLocalPose;
|
||||
|
||||
public DefaultPoseScope(SkeletonCache skeleton, bool useLocalPose = true)
|
||||
{
|
||||
Debug.Assert(skeleton != null);
|
||||
|
||||
m_Skeleton = skeleton;
|
||||
m_UseLocalPose = useLocalPose;
|
||||
|
||||
if (m_Skeleton.isPosePreview)
|
||||
{
|
||||
m_DoRestorePose = true;
|
||||
|
||||
if(useLocalPose)
|
||||
m_Pose = m_Skeleton.GetLocalPose();
|
||||
else
|
||||
m_Pose = m_Skeleton.GetWorldPose();
|
||||
|
||||
m_Skeleton.RestoreDefaultPose();
|
||||
}
|
||||
}
|
||||
|
||||
~DefaultPoseScope()
|
||||
{
|
||||
if (!m_Disposed)
|
||||
Debug.LogError("Scope was not disposed! You should use the 'using' keyword or manually call Dispose.");
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (m_Disposed)
|
||||
return;
|
||||
|
||||
m_Disposed = true;
|
||||
if (m_Skeleton != null && m_DoRestorePose)
|
||||
{
|
||||
if(m_UseLocalPose)
|
||||
m_Skeleton.SetLocalPose(m_Pose);
|
||||
else
|
||||
m_Skeleton.SetWorldPose(m_Pose);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue