Esempio n. 1
0
        private void SetDirection(Vector3 dir)
        {
            //Vector3 dir = ChartCommon.FromPolar(angle, Length);
            float   sign   = Mathf.Sign(dir.x);
            Vector3 dirAdd = new Vector3(1f, 0f, 0f) * sign * Length;
            Vector3 gapAdd = new Vector3(1f, 0f, 0f) * sign * Gap;

            if (LineMaterial != null)
            {
                List <CanvasLines.LineSegement> segments = new List <CanvasLines.LineSegement>();
                segments.Add(new CanvasLines.LineSegement(new Vector3[] { Vector3.zero, dir, dir + dirAdd }));
                Lines.Thickness = Thickness;
                Lines.Tiling    = 1f;
                Lines.material  = LineMaterial;
                Lines.SetLines(segments);
            }

            if (PointMaterial != null)
            {
                List <CanvasLines.LineSegement> segments = new List <CanvasLines.LineSegement>();
                segments.Add(new CanvasLines.LineSegement(new Vector3[] { Vector3.zero }));
                Point.MakePointRender(PointSize);
                Point.material = PointMaterial;
                Point.SetLines(segments);
            }

            Vector2 anchor = new Vector2(0.5f, 0.5f);
            Vector2 pivot  = new Vector2((sign > 0f) ? 0f : 1f, 0.5f);

            var rect = Text.GetComponent <RectTransform>();

            if (rect != null)
            {
                rect.anchorMin = anchor;
                rect.anchorMax = anchor;
                rect.pivot     = pivot;
                var t = Text.GetComponent <Text>();
                if (t != null)
                {
                    t.alignment = (sign > 0f) ? TextAnchor.MiddleLeft : TextAnchor.MiddleRight;
                }
                else
                {
                    ChartCommon.DoTextSign(Text, sign);
                }
                rect.anchoredPosition = dir + dirAdd + gapAdd;
            }
            else
            {
                Debug.LogWarning("Direction text must contain a rect transform");
            }
        }