protected override void OnEnable() { //find the settings object and its canvas. if (mySettings == null) { mySettings = GetComponentInParent <CurvedUISettings>(); if (mySettings == null) { return; } myCanvas = mySettings.GetComponent <Canvas>(); angle = mySettings.Angle; } //If there is an update to the graphic, we cant reuse old vertices, so new tesselation will be required //TODO: Try tesselating only the vertex color data for Images. if (GetComponent <Graphic>()) { GetComponent <Graphic>().RegisterDirtyMaterialCallback(TesselationRequiredCallback); } if (GetComponent <Text>()) { GetComponent <Text>().RegisterDirtyVerticesCallback(TesselationRequiredCallback); } this.SetVerticesDirty(); }
protected override void OnEnableLate() { image = GetComponent <RawImage>(); if (image == null) { Debug.LogError("Can not find Image."); OnlineMapsUtils.DestroyImmediate(this); } #if CURVEDUI curvedUI = image.canvas.GetComponent <CurvedUISettings>(); #endif }
protected override void Awake() { base.Awake(); myCanvas = GetComponent <Canvas>(); mySettings = GetComponent <CurvedUISettings>(); cyllinderMidPoint = mySettings.GetCyllinderMidPointInCanvasSpace(); //the canvas needs an event camera set up to process events correctly. Try to use main camera if no one is provided. if (myCanvas.worldCamera == null && Camera.main != null) { myCanvas.worldCamera = Camera.main; } }
// Update is called once per frame void Update() { CurvedUISettings set = this.GetComponent <CurvedUISettings>(); Text textie = this.GetComponentInChildren <Text>(); if (Time.time < 2.0f) { set.RingFill = Mathf.PerlinNoise(Time.time * 30.23234f, Time.time * 30.2313f) * 0.15f; textie.text = "Accesing Mainframe..."; } else if (Time.time < 3.0f) { set.RingFill = Mathf.Clamp(set.RingFill + Time.deltaTime * 3, 0, 1); textie.text = "Mainframe Active"; } }
public override void OnInspectorGUI() { CurvedUISettings myTarget = (CurvedUISettings)target; GUI.changed = false; myTarget.Mapping = (CurvedUISettings.CurvedUIMapping)EditorGUILayout.EnumPopup("Mapping", myTarget.Mapping); switch (myTarget.Mapping) { case CurvedUISettings.CurvedUIMapping.CYLLINDER: { myTarget.Angle = EditorGUILayout.IntSlider("Cyllinder Angle", myTarget.Angle, -360, 360); myTarget.CanBeUsedFromBothSides = EditorGUILayout.Toggle("Double Sided Collider", myTarget.CanBeUsedFromBothSides); break; } case CurvedUISettings.CurvedUIMapping.RING: { myTarget.RingExternalDiameter = Mathf.Clamp(EditorGUILayout.IntField("External Diameter", myTarget.RingExternalDiameter), 1, 100000); myTarget.Angle = EditorGUILayout.IntSlider("Ring Segment Angle", myTarget.Angle, -360, 360); myTarget.RingFill = EditorGUILayout.Slider("Fill", myTarget.RingFill, 0.0f, 1.0f); myTarget.RingFlipVertical = EditorGUILayout.Toggle("Flip Canvas Vertically", myTarget.RingFlipVertical); break; } // case CurvedUISettings.CurvedUIMapping.SPHERE:{ // myTarget.Angle = EditorGUILayout.IntSlider("Horizontal Angle", myTarget.Angle, 0, 180); // myTarget.VerticalAngle = -EditorGUILayout.IntSlider("Vertical Angle", -myTarget.VerticalAngle, 0, 360); // break; // } } GUILayout.Space(10); myTarget.CurveSegmentsMultiplier = Mathf.Clamp(EditorGUILayout.FloatField("Curve Quality", myTarget.CurveSegmentsMultiplier), 0.1f, 5.0f); GUILayout.Space(10); if (GUILayout.Button("Update Child Objects")) { AddCurvedUIComponents(); } if (GUI.changed) { EditorUtility.SetDirty(myTarget); } }