Exemplo n.º 1
0
    void OnEnable()
    {
        Undo.undoRedoPerformed         += UndoRedo;
        EditorSceneManager.sceneClosed += SceneClosed;

        if (onSceneFunc == null)
        {
            onSceneFunc = new System.Action <SceneView>(OnSceneGUI);
        }

        GameObject g = new GameObject("RobBossTarget");

        g.hideFlags              = HideFlags.HideAndDontSave;
        raycastTarget            = g.AddComponent <MeshCollider>();
        colliderMesh             = new Mesh();
        colliderMesh.name        = "RobBossColliderMesh";
        colliderMesh.hideFlags   = HideFlags.HideAndDontSave;
        raycastTarget.sharedMesh = colliderMesh;

        pressureType = (PressureType)EditorPrefs.GetInt("RobBoss.PressureType", 0);
        paintType    = (PaintType)EditorPrefs.GetInt("RobBoss.PaintType", 0);
        colorMask    = (ColorMask)EditorPrefs.GetInt("RobBoss.ColorMask", 15);
        string colorString = EditorPrefs.GetString("RobBoss.Color", "FFFFFFFF");

        ColorUtility.TryParseHtmlString("#" + colorString, out color);
        radius = EditorPrefs.GetFloat("RobBoss.Radius", 0.5f);
        blend  = EditorPrefs.GetFloat("RobBoss.Blend", 0.1f);

        if (paintTarget != null)
        {
            SetPaintTarget(paintTarget);
        }
    }
Exemplo n.º 2
0
 void FormatFixed()
 {
     #region PressureTypeDemo2_FormatFixed
     Debug.Log(PressureType.Format(1234.5678, format: "0.0000"));
     // Prints: "1234.5678 kPa"
     Debug.Log(PressureType.Format(1234.5678, format: "0.00"));
     // Prints: "1234.57 kPa"
     Debug.Log(PressureType.Format(1234.5678, format: "#,##0.00"));
     // Prints: "1,234.57 kPa"
     #endregion
 }
Exemplo n.º 3
0
 public static double BinaryToPressure(byte x, PressureType type = PressureType.STIMULATING_PRESSURE)
 {
     if (type == PressureType.SUPPLY_PRESSURE)
     {
         return(MAX_SUPPLY_PRESSURE * ((double)x) / byte.MaxValue);
     }
     else
     {
         return(MAX_PRESSURE * ((double)x) / byte.MaxValue);
     }
 }
Exemplo n.º 4
0
 void FormatDefault()
 {
     #region PressureTypeDemo2_FormatDefault
     Debug.Log(PressureType.Format(0.051));
     // Prints: "Pressure is: 0.051 kPa"
     Debug.Log(PressureType.Format(0.45));
     // Prints: "Pressure is: 0.45 kPa"
     Debug.Log(PressureType.Format(95.45));
     // Prints: "Pressure is: 95.5 kPa"
     Debug.Log(PressureType.Format(120.45));
     // Prints: "Pressure is: 121 kPa"
     Debug.Log(PressureType.Format(9535.45));
     // Prints: "Pressure is: 9,536 kPa"
     #endregion
 }
Exemplo n.º 5
0
    void OnGUI()
    {
        GUI.enabled = true;
        MeshRenderer r = EditorGUILayout.ObjectField("Paint Target", paintTarget, typeof(MeshRenderer), true) as MeshRenderer;

        if (r != paintTarget)
        {
            SetPaintTarget(r);
        }

        int newCanvasID = EditorGUILayout.Popup("Canvas", canvasID, canvasNames);

        if (newCanvasID != canvasID)
        {
            if (canvasTexture != null || _renderCanvas != null)
            {
                ResetRenderCanvas();
            }
            canvasID = newCanvasID;
        }

        pressureType = (PressureType)EditorGUILayout.EnumFlagsField("Pressure Type", pressureType);

        paintType = (PaintType)EditorGUILayout.EnumPopup("Paint Type", paintType);
        switch (paintType)
        {
        case PaintType.Normal:
        case PaintType.Directional:
            brushMaterial.SetInt("_Operation", 0);
            break;

        case PaintType.Add:
            brushMaterial.SetInt("_Operation", 1);
            break;

        case PaintType.Subtract:
            brushMaterial.SetInt("_Operation", 2);
            break;

        case PaintType.Multiply:
            brushMaterial.SetInt("_Operation", 3);
            break;
        }

        colorMask        = (ColorMask)EditorGUILayout.EnumFlagsField("Color Mask", colorMask);
        colorMaskAsColor = Color.black;
        if (((int)colorMask & (int)ColorMask.Red) == (int)ColorMask.Red)
        {
            colorMaskAsColor.r = 1;
        }
        if (((int)colorMask & (int)ColorMask.Green) == (int)ColorMask.Green)
        {
            colorMaskAsColor.g = 1;
        }
        if (((int)colorMask & (int)ColorMask.Blue) == (int)ColorMask.Blue)
        {
            colorMaskAsColor.b = 1;
        }
        if (((int)colorMask & (int)ColorMask.Alpha) == (int)ColorMask.Alpha)
        {
            colorMaskAsColor.a = 1;
        }

        if (canvasID == 0)
        {
            falloff = EditorGUILayout.CurveField("Falloff", falloff, Color.white, Rect.MinMaxRect(0, 0, 1, 1));
        }
        else
        {
            brushTexture = EditorGUILayout.ObjectField("Brush", brushTexture, typeof(Texture2D), false) as Texture2D;
        }
        color = EditorGUILayout.ColorField("Color", color);

        string radLabel = (canvasID == 0) ? "Radius (meters)" : "Radius (UV)";

        radius = Mathf.Max(0, EditorGUILayout.FloatField(radLabel, radius));
        blend  = EditorGUILayout.Slider("Blend", blend, 0, 1);
        brushMaterial.SetColor("_ColorMask", colorMaskAsColor * blend);

        GUI.enabled = hasPaintTarget;
        if (!painting && GUILayout.Button("Start Painting"))
        {
            painting = true;
            SceneView.duringSceneGui += onSceneFunc;
            SetupPainting();
        }
        else if (painting && GUILayout.Button("Stop Painting"))
        {
            painting = false;
            SceneView.duringSceneGui -= onSceneFunc;
        }

        if (canvasName == "Vertex")
        {
            return;
        }

        GUI.enabled = (_renderCanvas != null);
        if (GUILayout.Button("Reset"))
        {
            Undo.RecordObject(window, "resets canvas");
            ResetCanvas();
        }

        EditorGUILayout.BeginHorizontal();
        GUI.enabled = !string.IsNullOrEmpty(canvasPath);
        if (GUILayout.Button("Save"))
        {
            Save(canvasPath);
        }

        GUI.enabled = (_renderCanvas != null);
        if (GUILayout.Button("Save As"))
        {
            string name = paintTarget.name + canvasName + ".png";
            string path = EditorUtility.SaveFilePanel("Save texture as PNG", Application.dataPath, name, "png");
            Save(path);
        }
        EditorGUILayout.EndHorizontal();
    }