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); } }
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 }
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); } }
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 }
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(); }