in Assets/MixedRealityToolkit.SDK/Inspectors/UX/Tooltips/ToolTipConnectorInspector.cs [47:176]
public override void OnInspectorGUI()
{
serializedObject.Update();
if (multiLineHelpBoxStyle == null)
{
multiLineHelpBoxStyle = new GUIStyle(EditorStyles.helpBox);
multiLineHelpBoxStyle.wordWrap = true;
}
connectorTarget = serializedObject.FindProperty("target");
connectorFollowType = serializedObject.FindProperty("connectorFollowType");
pivotMode = serializedObject.FindProperty("pivotMode");
pivotDirection = serializedObject.FindProperty("pivotDirection");
pivotDirectionOrient = serializedObject.FindProperty("pivotDirectionOrient");
manualPivotDirection = serializedObject.FindProperty("manualPivotDirection");
manualPivotLocalPosition = serializedObject.FindProperty("manualPivotLocalPosition");
pivotDistance = serializedObject.FindProperty("pivotDistance");
editorSettingsFoldout = EditorGUILayout.Foldout(editorSettingsFoldout, EditorSettingsContent, true);
SessionState.SetBool(EditorSettingsFoldoutKey, editorSettingsFoldout);
if (editorSettingsFoldout)
{
EditorGUI.BeginChangeCheck();
DrawManualDirectionHandle = EditorGUILayout.Toggle("Draw Manual Direction Handle", DrawManualDirectionHandle);
if (EditorGUI.EndChangeCheck())
{
SessionState.SetBool(DrawManualDirectionHandleKey, DrawManualDirectionHandle);
}
}
if (connectorTarget.objectReferenceValue == null)
{
EditorGUILayout.HelpBox("No target set. ToolTip will not use connector component.", MessageType.Info);
EditorGUILayout.PropertyField(connectorTarget);
}
else
{
EditorGUILayout.PropertyField(connectorTarget);
string helpText = string.Empty;
switch (connector.ConnectorFollowingType)
{
case ConnectorFollowType.AnchorOnly:
helpText = "Only the tooltip's anchor will follow the target. Tooltip content will not be altered.";
break;
case ConnectorFollowType.Position:
helpText = "The entire tooltip will follow the target. Tooltip will not rotate.";
break;
case ConnectorFollowType.PositionAndYRotation:
helpText = "The entire tooltip will follow the target. Tooltip will match target's Y rotation.";
break;
case ConnectorFollowType.PositionAndXYRotation:
helpText = "The entire tooltip will follow the target. Tooltip will match target's X and Y rotation.";
break;
}
EditorGUILayout.BeginVertical(EditorStyles.helpBox);
EditorGUILayout.LabelField(helpText, EditorStyles.miniLabel);
EditorGUILayout.EndVertical();
EditorGUILayout.PropertyField(connectorFollowType);
switch (connector.ConnectorFollowingType)
{
case ConnectorFollowType.AnchorOnly:
// Pivot mode doesn't apply to anchor-only connections
break;
default:
EditorGUILayout.PropertyField(pivotMode);
switch (connector.PivotMode)
{
case ConnectorPivotMode.Manual:
// We just want to set the pivot ourselves
EditorGUILayout.BeginVertical(EditorStyles.helpBox);
EditorGUILayout.LabelField("Pivot will not be altered by connector.", EditorStyles.miniLabel);
EditorGUILayout.EndVertical();
break;
case ConnectorPivotMode.Automatic:
EditorGUILayout.PropertyField(pivotDirectionOrient);
switch (connector.PivotDirectionOrient)
{
case ConnectorOrientType.OrientToCamera:
EditorGUILayout.BeginVertical(EditorStyles.helpBox);
EditorGUILayout.LabelField("Pivot will be set in direction relative to camera.", EditorStyles.miniLabel);
EditorGUILayout.EndVertical();
break;
case ConnectorOrientType.OrientToObject:
EditorGUILayout.BeginVertical(EditorStyles.helpBox);
EditorGUILayout.LabelField("Pivot will be set in direction relative to target.", EditorStyles.miniLabel);
EditorGUILayout.EndVertical();
break;
}
ConnectorPivotDirection newPivotDirection = DrawPivotDirection(connector.PivotDirection);
pivotDirection.enumValueIndex = (int)newPivotDirection;
switch (connector.PivotDirection)
{
case ConnectorPivotDirection.Manual:
EditorGUILayout.PropertyField(manualPivotDirection);
break;
default:
break;
}
EditorGUILayout.PropertyField(pivotDistance);
break;
case ConnectorPivotMode.LocalPosition:
EditorGUILayout.BeginVertical(EditorStyles.helpBox);
EditorGUILayout.LabelField("Pivot will be set to position relative to target.", EditorStyles.miniLabel);
EditorGUILayout.EndVertical();
EditorGUILayout.PropertyField(manualPivotLocalPosition);
break;
}
break;
}
}
serializedObject.ApplyModifiedProperties();
EditorUtility.SetDirty(connector);
}