コード例 #1
0
    static int set_sizeY(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            GameFramework.ObjectListChild obj = (GameFramework.ObjectListChild)o;
            float arg0 = (float)LuaDLL.luaL_checknumber(L, 2);
            obj.sizeY = arg0;
            return(0);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o, "attempt to index sizeY on a nil value"));
        }
    }
コード例 #2
0
    static int get_sizeY(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            GameFramework.ObjectListChild obj = (GameFramework.ObjectListChild)o;
            float ret = obj.sizeY;
            LuaDLL.lua_pushnumber(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o, "attempt to index sizeY on a nil value"));
        }
    }
コード例 #3
0
        public void Refresh()
        {
            currentX = 0;
            currentY = 0;
            float _lastSizeX = 0;
            float _lastSizeY = 0;
            int   _length    = this.transform.childCount;

            if (_length == 0)
            {
                currentX = sizeX;
                currentY = sizeY;
                return;
            }

            ObjectListChild _child = null;
            ObjectList      _list  = null;
            int             _count = -1;

            if (ChildAlignment == Alignment.Left)
            {
                for (int i = 0; i < _length; i++)
                {
                    _count++;
                    Transform _t = this.transform.GetChild(i);
                    //忽略隐藏
                    if (!_t.gameObject.activeSelf || !_t.gameObject.activeInHierarchy)
                    {
                        continue;
                    }

                    if (_count == 0)
                    {
                        _t.transform.localPosition = Vector3.zero;

                        _lastSizeX = sizeX;
                        _lastSizeY = sizeY;
                        _child     = _t.GetComponent <ObjectListChild>();
                        if (_child != null)
                        {
                            _lastSizeX = _child.sizeX;
                            _lastSizeY = _child.sizeY;
                        }

                        _list = _t.GetComponent <ObjectList>();
                        if (_list != null)
                        {
                            _list.Refresh();
                            _lastSizeX = _list.currentX;
                            _lastSizeY = _list.currentY;
                        }

                        continue;
                    }

                    int _zu = _count % oneGroupCount;

                    if (_zu == 0)
                    {
                        switch (direction)
                        {
                        case Direction.horizontal:
                            currentY  = 0;
                            currentX += _lastSizeX;
                            break;

                        case Direction.vertical:
                            currentX  = 0;
                            currentY += _lastSizeY;
                            break;
                        }
                    }
                    else
                    {
                        switch (direction)
                        {
                        case Direction.horizontal:
                            currentY += _lastSizeY;
                            break;

                        case Direction.vertical:
                            currentX += _lastSizeX;
                            break;
                        }
                    }


                    _lastSizeX = sizeX;
                    _lastSizeY = sizeY;
                    _child     = _t.GetComponent <ObjectListChild>();
                    if (_child != null)
                    {
                        _lastSizeX = _child.sizeX;
                        _lastSizeY = _child.sizeY;
                    }

                    _list = _t.GetComponent <ObjectList>();
                    if (_list != null)
                    {
                        _list.Refresh();
                        _lastSizeX = _list.currentX;
                        _lastSizeY = _list.currentY;
                    }

                    _t.localPosition = new Vector3(currentX, currentY, 0);
                }

                switch (direction)
                {
                case Direction.horizontal:
                    currentX += _lastSizeX;
                    break;

                case Direction.vertical:
                    currentY += _lastSizeY;
                    break;
                }
            }
            else if (ChildAlignment == Alignment.Right)
            {
                float totalx = 0;
                float totaly = 0;
                for (int i = 0; i < _length; i++)
                {
                    Transform _t = this.transform.GetChild(i);
                    //忽略隐藏
                    if (!_t.gameObject.activeSelf || !_t.gameObject.activeInHierarchy)
                    {
                        continue;
                    }
                    switch (direction)
                    {
                    case Direction.horizontal:
                        totalx += _lastSizeY;
                        break;

                    case Direction.vertical:
                        totaly += _lastSizeX;
                        break;
                    }
                }
                for (int i = _length - 1; i >= 0; --i)
                {
                    _count++;
                    Transform _t = this.transform.GetChild(i);
                    //忽略隐藏
                    if (!_t.gameObject.activeSelf || !_t.gameObject.activeInHierarchy)
                    {
                        continue;
                    }

                    if (_count == 0)
                    {
                        _t.transform.localPosition = Vector3.zero;

                        _lastSizeX = sizeX;
                        _lastSizeY = sizeY;
                        _child     = _t.GetComponent <ObjectListChild>();
                        if (_child != null)
                        {
                            _lastSizeX = _child.sizeX;
                            _lastSizeY = _child.sizeY;
                        }

                        _list = _t.GetComponent <ObjectList>();
                        if (_list != null)
                        {
                            _list.Refresh();
                            _lastSizeX = _list.currentX;
                            _lastSizeY = _list.currentY;
                        }

                        continue;
                    }

                    int _zu = _count % oneGroupCount;

                    if (_zu == 0)
                    {
                        switch (direction)
                        {
                        case Direction.horizontal:
                            currentY  = 0;
                            currentX -= _lastSizeX;
                            break;

                        case Direction.vertical:
                            currentX  = 0;
                            currentY -= _lastSizeY;
                            break;
                        }
                    }
                    else
                    {
                        switch (direction)
                        {
                        case Direction.horizontal:
                            currentY -= _lastSizeY;
                            break;

                        case Direction.vertical:
                            currentX -= _lastSizeX;
                            break;
                        }
                    }

                    _lastSizeX = sizeX;
                    _lastSizeY = sizeY;
                    _child     = _t.GetComponent <ObjectListChild>();
                    if (_child != null)
                    {
                        _lastSizeX = _child.sizeX;
                        _lastSizeY = _child.sizeY;
                    }

                    _list = _t.GetComponent <ObjectList>();
                    if (_list != null)
                    {
                        _list.Refresh();
                        _lastSizeX = _list.currentX;
                        _lastSizeY = _list.currentY;
                    }

                    _t.localPosition = new Vector3(currentX, currentY, 0);
                }

                switch (direction)
                {
                case Direction.horizontal:
                    currentX -= _lastSizeX;
                    break;

                case Direction.vertical:
                    currentY -= _lastSizeY;
                    break;
                }
            }
        }