static void CreateProgressBar(MenuCommand menuCommand) { CheckForRayCaster(); // Create a custom game object GameObject go = new GameObject("ProgressBar (M3D)"); go.AddComponent <MText_UI_Slider>(); MText_UI_Slider slider = go.GetComponent <MText_UI_Slider>(); GameObject handle = GameObject.CreatePrimitive(PrimitiveType.Cube); handle.name = "Handle"; handle.AddComponent <MText_UI_SliderHandle>(); handle.GetComponent <MText_UI_SliderHandle>().slider = slider; handle.transform.SetParent(go.transform); handle.transform.localPosition = Vector3.zero; slider.handle = handle.GetComponent <MText_UI_SliderHandle>(); slider.handleGraphic = handle.GetComponent <Renderer>(); handle.GetComponent <Renderer>().material = slider.unSelectedHandleMat; GameObject bg = GameObject.CreatePrimitive(PrimitiveType.Cube); bg.name = "Background"; bg.transform.SetParent(go.transform); bg.transform.localPosition = Vector3.zero; bg.transform.localScale = new Vector3(10, 0.25f, 0.25f); slider.background = bg.transform; if (slider.progressBarPrefab) { GameObject progressBarGraphic = Instantiate(slider.progressBarPrefab); slider.progressBar = progressBarGraphic.transform; progressBarGraphic.transform.SetParent(go.transform); progressBarGraphic.transform.localPosition = new Vector3(-5, 0, 0); progressBarGraphic.transform.localScale = new Vector3(5, 0.8f, 0.8f); } else { Debug.Log("No progress bar prefab found. Please create one and assign it to Progressbar field"); } // Ensure it gets reparented if this was a context click (otherwise does nothing) GameObjectUtility.SetParentAndAlign(go, menuCommand.context as GameObject); // Register the creation in the undo system Undo.RegisterCreatedObjectUndo(go, "Create " + go.name); Selection.activeObject = go; }
void OnEnable() { myTarget = (MText_UI_Slider)target; soTarget = new SerializedObject(target); autoFocusOnGameStart = soTarget.FindProperty("autoFocusOnGameStart"); interactable = soTarget.FindProperty("interactable"); minValue = soTarget.FindProperty("minValue"); maxValue = soTarget.FindProperty("maxValue"); handle = soTarget.FindProperty("handle"); background = soTarget.FindProperty("background"); backgroundSize = soTarget.FindProperty("backgroundSize"); keyControl = soTarget.FindProperty("keyControl"); keyStep = soTarget.FindProperty("keyStep"); scrollUp = soTarget.FindProperty("scrollUp"); scrollDown = soTarget.FindProperty("scrollDown"); onValueChanged = soTarget.FindProperty("onValueChanged"); sliderDragEnded = soTarget.FindProperty("sliderDragEnded"); useEvents = soTarget.FindProperty("useEvents"); handleGraphic = soTarget.FindProperty("handleGraphic"); progressBar = soTarget.FindProperty("progressBar"); selectedHandleMat = soTarget.FindProperty("selectedHandleMat"); unSelectedHandleMat = soTarget.FindProperty("unSelectedHandleMat"); clickedHandleMat = soTarget.FindProperty("clickedHandleMat"); disabledHandleMat = soTarget.FindProperty("disabledHandleMat"); useValueRangeEvents = soTarget.FindProperty("useValueRangeEvents"); usePercentage = soTarget.FindProperty("usePercentage"); valueRangeEvents = soTarget.FindProperty("valueRangeEvents"); showKeyboardSettings = myTarget.showKeyboardSettings; showVisualSettings = myTarget.showVisualSettings; showEventsSettings = myTarget.showEventsSettings; showValueRangeSettings = myTarget.showValueRangeSettings; }
static void CreateSlider(MenuCommand menuCommand) { CheckForRayCaster(); // Create a custom game object GameObject go = new GameObject("Slider (M3D)"); go.AddComponent <MText_UI_Slider>(); MText_UI_Slider slider = go.GetComponent <MText_UI_Slider>(); GameObject handle = GameObject.CreatePrimitive(PrimitiveType.Cube); handle.name = "Handle"; handle.AddComponent <MText_UI_SliderHandle>(); handle.GetComponent <MText_UI_SliderHandle>().slider = slider; handle.transform.SetParent(go.transform); handle.transform.localPosition = Vector3.zero; slider.handle = handle.GetComponent <MText_UI_SliderHandle>(); slider.handleGraphic = handle.GetComponent <Renderer>(); handle.GetComponent <Renderer>().material = slider.unSelectedHandleMat; GameObject bg = GameObject.CreatePrimitive(PrimitiveType.Cube); bg.name = "Background"; bg.transform.SetParent(go.transform); bg.transform.localPosition = Vector3.zero; bg.transform.localScale = new Vector3(10, 0.25f, 0.25f); slider.background = bg.transform; // Ensure it gets reparented if this was a context click (otherwise does nothing) GameObjectUtility.SetParentAndAlign(go, menuCommand.context as GameObject); // Register the creation in the undo system Undo.RegisterCreatedObjectUndo(go, "Create " + go.name); Selection.activeObject = go; }