UniVRM/Assets/VRM10_Samples/ClothSample/RotateParticle/Editor/WarpEditor.cs
2024-11-20 15:24:54 +09:00

43 lines
1.2 KiB
C#

using UnityEditor;
using UnityEngine;
using UniVRM10;
namespace RotateParticle.Components
{
[CustomEditor(typeof(Warp))]
class WarpEditor : Editor
{
private Warp m_target;
private Vrm10Instance m_vrm;
void OnEnable()
{
if (target == null)
{
return;
}
m_target = (Warp)target;
m_vrm = m_target.GetComponentInParent<Vrm10Instance>();
}
public override void OnInspectorGUI()
{
var n = EditorUtility.GetDirtyCount(m_target.GetInstanceID());
base.OnInspectorGUI();
if (n != EditorUtility.GetDirtyCount(m_target.GetInstanceID()))
{
if (m_vrm != null)
{
if (Application.isPlaying)
{
m_vrm.Runtime.SpringBone.SetJointLevel(m_target.transform, m_target.BaseSettings);
foreach (var p in m_target.Particles)
{
m_vrm.Runtime.SpringBone.SetJointLevel(p.Transform, p.GetSettings(m_target.BaseSettings));
}
}
}
}
}
}
}