mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-05-16 07:34:05 -05:00
Merge pull request #2587 from ousttrue/vrm1/runtime_lookat_info
[LookAt] Vrm1/runtime lookat info
This commit is contained in:
commit
98995a22e7
|
|
@ -24,6 +24,8 @@ namespace UniVRM10
|
|||
LookAt,
|
||||
SpringBone,
|
||||
}
|
||||
static Tab s_selected = default;
|
||||
static bool s_foldRuntimeLookAt = false;
|
||||
|
||||
Vrm10Instance m_instance;
|
||||
|
||||
|
|
@ -226,7 +228,7 @@ namespace UniVRM10
|
|||
root.Add(s);
|
||||
}
|
||||
|
||||
var tabs = new EnumField("select UI", default(Tab));
|
||||
var tabs = new EnumField("select UI", s_selected);
|
||||
root.Add(tabs);
|
||||
|
||||
var body = new VisualElement();
|
||||
|
|
@ -239,7 +241,7 @@ namespace UniVRM10
|
|||
foreach (var (tab, content) in contents)
|
||||
{
|
||||
// content.visible = tab == Tab.VrmInstance;
|
||||
content.style.display = tab == Tab.VrmInstance
|
||||
content.style.display = tab == s_selected
|
||||
? DisplayStyle.Flex
|
||||
: DisplayStyle.None
|
||||
;
|
||||
|
|
@ -249,11 +251,11 @@ namespace UniVRM10
|
|||
|
||||
tabs.RegisterValueChangedCallback(e =>
|
||||
{
|
||||
var selected = (Tab)e.newValue;
|
||||
s_selected = (Tab)e.newValue;
|
||||
foreach (var (tab, content) in contents)
|
||||
{
|
||||
// content.visible = tab == selected;
|
||||
content.style.display = tab == selected
|
||||
content.style.display = tab == s_selected
|
||||
? DisplayStyle.Flex
|
||||
: DisplayStyle.None
|
||||
;
|
||||
|
|
@ -277,11 +279,80 @@ namespace UniVRM10
|
|||
|
||||
void GUILookAt()
|
||||
{
|
||||
if (!target)
|
||||
{
|
||||
return;
|
||||
}
|
||||
serializedObject.Update();
|
||||
EditorGUILayout.PropertyField(m_drawLookatGizmo);
|
||||
EditorGUILayout.PropertyField(m_lookatTarget);
|
||||
EditorGUILayout.PropertyField(m_lookatTargetType);
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
|
||||
// lookat info
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
EditorGUILayout.Space();
|
||||
s_foldRuntimeLookAt = EditorGUILayout.Foldout(s_foldRuntimeLookAt, "RuntimeInfo");
|
||||
if (s_foldRuntimeLookAt)
|
||||
{
|
||||
var enabled = GUI.enabled;
|
||||
GUI.enabled = false;
|
||||
EditorGUILayout.Slider("yaw(-180 ~ +180)", m_instance.Runtime.LookAt.Yaw, -180, 180);
|
||||
EditorGUILayout.Slider("pitch(-90 ~ +90)", m_instance.Runtime.LookAt.Pitch, -90, 90);
|
||||
if (m_instance.Runtime.LookAt.EyeDirectionApplicable is LookAtEyeDirectionApplicableToBone)
|
||||
{
|
||||
EditorGUILayout.LabelField("BoneTYpe");
|
||||
}
|
||||
else if (m_instance.Runtime.LookAt.EyeDirectionApplicable is LookAtEyeDirectionApplicableToExpression)
|
||||
{
|
||||
EditorGUILayout.LabelField("ExpressionType");
|
||||
var w = m_instance.Runtime.Expression.ActualWeights;
|
||||
// left
|
||||
if (w.TryGetValue(ExpressionKey.LookLeft, out var left))
|
||||
{
|
||||
EditorGUILayout.Slider("left", left, 0, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorGUILayout.TextField("left");
|
||||
}
|
||||
// right
|
||||
if (w.TryGetValue(ExpressionKey.LookRight, out var right))
|
||||
{
|
||||
EditorGUILayout.Slider("right", right, 0, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorGUILayout.TextField("right");
|
||||
}
|
||||
// up
|
||||
if (w.TryGetValue(ExpressionKey.LookUp, out var up))
|
||||
{
|
||||
EditorGUILayout.Slider("up", up, 0, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorGUILayout.TextField("up");
|
||||
}
|
||||
// down
|
||||
if (w.TryGetValue(ExpressionKey.LookDown, out var down))
|
||||
{
|
||||
EditorGUILayout.Slider("down", down, 0, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorGUILayout.TextField("down");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorGUILayout.LabelField($"UnknownTYpe: {m_instance.Runtime.LookAt.EyeDirectionApplicable}");
|
||||
}
|
||||
GUI.enabled = enabled;
|
||||
Repaint();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VisualElement GUISpringBone()
|
||||
|
|
|
|||
|
|
@ -24,13 +24,16 @@ namespace UniVRM10.VRM10Viewer
|
|||
|
||||
while (true)
|
||||
{
|
||||
angle += m_angularVelocity * Time.deltaTime * Mathf.Deg2Rad;
|
||||
if (this.enabled)
|
||||
{
|
||||
angle += m_angularVelocity * Time.deltaTime * Mathf.Deg2Rad;
|
||||
|
||||
var x = Mathf.Cos(angle) * m_radius;
|
||||
var z = Mathf.Sin(angle) * m_radius;
|
||||
var y = m_y + m_height * Mathf.Cos(angle / 3);
|
||||
var x = Mathf.Cos(angle) * m_radius;
|
||||
var z = Mathf.Sin(angle) * m_radius;
|
||||
var y = m_y + m_height * Mathf.Cos(angle / 3);
|
||||
|
||||
transform.localPosition = new Vector3(x, y, z);
|
||||
transform.localPosition = new Vector3(x, y, z);
|
||||
}
|
||||
|
||||
yield return null;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user