Exemple #1
0
    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();
    }
Exemple #2
0
    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
    }
Exemple #3
0
    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;
        }
    }
Exemple #4
0
    // 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";
        }
    }
Exemple #5
0
    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);
        }
    }