Esempio n. 1
0
    /// <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);
    }
Esempio n. 2
0
    /// <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();
    }
Esempio n. 3
0
    /// <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();
    }