Ejemplo n.º 1
0
 private float GetWorldOffset(EdgeH edgeH)
 {
     if (edgeH.OffsetUnit == UnitType.World)
     {
         return(edgeH.Offset);
     }
     else if (edgeH.OffsetUnit == UnitType.Self)
     {
         return(edgeH.Offset * _rectTran.lossyScale.x);
     }
     else
     {
         return(edgeH.Offset * edgeH.Ref.lossyScale.x);
     }
 }
Ejemplo n.º 2
0
 private float GetWBaseH(EdgeH edge)
 {
     if (edge.Anchor == RectAnchorH.None)
     {
         return(GetWorldRect(edge.Ref).xMin + GetWorldOffset(edge));
     }
     else if (edge.Anchor == RectAnchorH.Left)
     {
         return(GetWorldRect(edge.Ref).xMin + GetWorldOffset(edge));
     }
     else
     {
         return(GetWorldRect(edge.Ref).xMax + GetWorldOffset(edge));
     }
 }
        private void OnGUI()
        {
            GUILayout.BeginVertical();

            GUILayout.Space(20);
            _tar     = (RectTransform)EditorGUILayout.ObjectField("目标", _tar, typeof(RectTransform), true);
            _tarEdge = (Edge)EditorGUILayout.EnumPopup("目标边:", _tarEdge);
            GUILayout.Space(20);
            _ref = (RectTransform)EditorGUILayout.ObjectField("参考", _ref, typeof(RectTransform), true);
            if (_tarEdge == Edge.Left || _tarEdge == Edge.Right)
            {
                _refEdge0 = (EdgeH)EditorGUILayout.EnumPopup("参考边:", _refEdge0);
            }
            else
            {
                _refEdge1 = (EdgeV)EditorGUILayout.EnumPopup("参考边:", _refEdge1);
            }

            GUILayout.Space(20);
            _keepPos = GUILayout.Toggle(_keepPos, "保持目标位置");
            GUILayout.Space(20);
            _val = EditorGUILayout.FloatField("相对值", _val);
            GUILayout.Space(20);
            GUILayout.EndVertical();
            if (_tar != null && _ref != null)
            {
                if (GUILayout.Button("应用"))
                {
                    Apply();
                }
            }
            else
            {
                GUILayout.Label("请设置好目标、参考、以及相对值");
            }
        }