/// <summary> /// Sets a direction variable to a specific direction. /// </summary> protected void SetDirectionVariable(LocatorHUD locator, LocatorHUD.Direction direction, DirectionVariable variable, object value) { int index = (int)direction; if (index < 0 || index >= (int)LocatorHUD.Direction.NumDirections) { return; } switch (variable) { case DirectionVariable.Rotation: locator.directionRotation[index] = (float)value; break; case DirectionVariable.BaseScale: locator.directionBaseScale[index] = (float)value; break; case DirectionVariable.Color: locator.directionColor[index] = (Color)value; break; case DirectionVariable.DistScalingEnabled: locator.directionDistScalingEnabled[index] = (bool)value; break; case DirectionVariable.DistScalingMinDistance: locator.directionDistScalingMinDistance[index] = (float)value; break; case DirectionVariable.DistScalingMaxDistance: locator.directionDistScalingMaxDistance[index] = (float)value; break; case DirectionVariable.DistScalingNearScale: locator.directionDistScalingNearScale[index] = (float)value; break; case DirectionVariable.DistScalingFarScale: locator.directionDistScalingFarScale[index] = (float)value; break; case DirectionVariable.Texture: locator.directionTexture[index] = (Texture2D)value; break; default: break; } EditorUtility.SetDirty(target); }
/// <summary> /// Displays the inspector for a direction variable. /// </summary> protected void DisplayVariableInspector(string displayName, LocatorHUD locator, LocatorHUD.Direction direction, DirectionVariable variable, Texture2D currentValue) { EditorGUILayout.BeginHorizontal(GUILayout.ExpandHeight(true), GUILayout.MinHeight(10)); Texture2D newValue = (Texture2D)EditorGUILayout.ObjectField(displayName, currentValue, typeof(Texture2D), false); if (newValue != currentValue) { SetDirectionVariable(locator, direction, variable, newValue); } if (GUILayout.Button("-->", GUILayout.ExpandWidth(false), GUILayout.ExpandHeight(true))) { SetDirectionVariableToAll(locator, variable, newValue); } EditorGUILayout.EndHorizontal(); }
/// <summary> /// Displays the inspector for a direction variable. /// </summary> protected void DisplayVariableInspector(string displayName, LocatorHUD locator, LocatorHUD.Direction direction, DirectionVariable variable, bool currentValue) { EditorGUILayout.BeginHorizontal(GUILayout.ExpandHeight(true), GUILayout.MinHeight(10)); bool newValue = EditorGUILayout.Toggle(displayName, currentValue); if (newValue != currentValue) { SetDirectionVariable(locator, direction, variable, newValue); } if (GUILayout.Button("-->", GUILayout.ExpandWidth(false), GUILayout.ExpandHeight(true))) { SetDirectionVariableToAll(locator, variable, newValue); } EditorGUILayout.EndHorizontal(); }