LocalToRoot() public method

Transforms a point from the local coordinate system to GRoot coordinates.
public LocalToRoot ( Vector2 pt, GRoot r ) : Vector2
pt UnityEngine.Vector2
r GRoot
return UnityEngine.Vector2
Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="popup"></param>
        /// <param name="target"></param>
        /// <param name="downward"></param>
        /// <returns></returns>
        public Vector2 GetPoupPosition(GObject popup, GObject target, object downward)
        {
            Vector2 pos;
            Vector2 size = Vector2.zero;

            if (target != null)
            {
                pos  = target.LocalToRoot(Vector2.zero, this);
                size = target.LocalToRoot(target.size, this) - pos;
            }
            else
            {
                pos = this.GlobalToLocal(Stage.inst.touchPosition);
            }
            float xx, yy;

            xx = pos.x;
            if (xx + popup.width > this.width)
            {
                xx = xx + size.x - popup.width;
            }
            yy = pos.y + size.y;
            if ((downward == null && yy + popup.height > this.height) ||
                downward != null && (bool)downward == false)
            {
                yy = pos.y - popup.height - 1;
                if (yy < 0)
                {
                    yy  = 0;
                    xx += size.x / 2;
                }
            }

            return(new Vector2(Mathf.RoundToInt(xx), Mathf.RoundToInt(yy)));
        }
Example #2
0
        /// <summary>
        /// Start dragging.
        /// 开始拖动。
        /// </summary>
        /// <param name="source">Source object. This is the object which initiated the dragging.</param>
        /// <param name="icon">Icon to be used as the dragging sign.</param>
        /// <param name="sourceData">Custom data. You can get it in the onDrop event data.</param>
        /// <param name="touchPointID">Copy the touchId from InputEvent to here, if has one.</param>
        public void StartDrag(GObject source, string icon, object sourceData, int touchPointID = -1)
        {
            if (_agent.parent != null)
            {
                return;
            }

            _sourceData = sourceData;
            _agent.url  = icon;
            GRoot.inst.AddChild(_agent);
            _agent.xy = source.LocalToRoot(Vector2.zero, null);
            _agent.StartDrag(touchPointID);
        }
Example #3
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="popup"></param>
        /// <param name="target"></param>
        /// <param name="downward"></param>
        /// <returns></returns>
        public Vector2 GetPoupPosition(GObject popup, GObject target, object downward)
        {
            Vector2 pos;
            Vector2 size = Vector2.zero;
            if (target != null)
            {
                pos = target.LocalToRoot(Vector2.zero, this);
                size = target.LocalToRoot(target.size, this) - pos;
            }
            else
            {
                pos = this.GlobalToLocal(Stage.inst.touchPosition);
            }
            float xx, yy;
            xx = pos.x;
            if (xx + popup.width > this.width)
                xx = xx + size.x - popup.width;
            yy = pos.y + size.y;
            if ((downward == null && yy + popup.height > this.height)
                || downward != null && (bool)downward == false)
            {
                yy = pos.y - popup.height - 1;
                if (yy < 0)
                {
                    yy = 0;
                    xx += size.x / 2;
                }
            }

            return new Vector2(Mathf.RoundToInt(xx), Mathf.RoundToInt(yy));
        }
Example #4
0
        /// <summary>
        /// Start dragging.
        /// 开始拖动。
        /// </summary>
        /// <param name="source">Source object. This is the object which initiated the dragging.</param>
        /// <param name="icon">Icon to be used as the dragging sign.</param>
        /// <param name="sourceData">Custom data. You can get it in the onDrop event data.</param>
        /// <param name="touchPointID">Copy the touchId from InputEvent to here, if has one.</param>
        public void StartDrag(GObject source, string icon, object sourceData, int touchPointID = -1)
        {
            if (_agent.parent != null)
                return;

            _sourceData = sourceData;
            _agent.url = icon;
            GRoot.inst.AddChild(_agent);
            _agent.xy = source.LocalToRoot(Vector2.zero, null);
            _agent.StartDrag(touchPointID);
        }