Пример #1
0
    /// <summary>
    /// 添加节点到这一行
    /// </summary>
    /// <param name="rect"></param>
    /// <param name="index"></param>
    /// <param name="viewWidth"></param>
    /// <param name="lineHeightDelta"></param>
    /// <returns></returns>
    public bool AddCell(GridDataSource source, int index, WllTemplate templateInfo, RecycleGrid rg, ref float lineHeightDelta)
    {
        float delta = templateInfo.width;
        float ft    = posx;

        if (list.Count > 0)
        {
            delta = delta + rg.padding.spacex;
        }
        else
        {
            ft = ft + rg.padding.left;
        }
        ft = ft + delta;
        if (ft > rg.ViewWidth)
        {
            return(false);
        }
        else
        {
            posx = ft;
            ShowCellData scd = obtainShowCellData(posx - templateInfo.width, this, index);
            scd.nType       = source.templateId;
            lineHeightDelta = Mathf.Max(lineHeight, templateInfo.height);
            lineHeight      = lineHeightDelta;
            endIndex        = index;
            list.Add(scd);
            return(true);
        }
    }
Пример #2
0
    ///
    /// <summary>
    /// 添加cell到这一行
    /// </summary>
    /// <param name="source">cell的数据</param>
    /// <param name="index">数据列表的下标</param>
    /// <param name="viewWidth">视口宽度</param>
    /// <param name="lineHeightDelta">行高度</param>
    /// <returns></returns>
    public bool AddCell(GridDataSource source, int index, RecycleGrid grid, ref float lineHeightDelta)
    {
        float ft = posx + source.wllt.width;

        if (list.Count == 0)
        {
            ft = ft + grid.padding.left;
        }
        else
        {
            ft = ft + grid.padding.spacex;
        }
        if (ft > grid.ViewWidth)
        {
            return(false);
        }
        else
        {
            posx = ft;
            ShowCellData scd = obtainShowCellData(posx - source.wllt.width, childLineY, index);
            scd.nType       = source.templateId;
            lineHeightDelta = Mathf.Max(lineHeight, source.wllt.height);
            lineHeight      = lineHeightDelta;
            endIndex        = index;
            list.Add(scd);
            return(true);
        }
    }
Пример #3
0
        public override void OnInspectorGUI()
        {
            rg = (RecycleGrid)target;
            serializedObject.Update();

            EditorGUILayout.BeginVertical();

            EditorGUILayout.PropertyField(sp_scrollRect, true);
            EditorGUILayout.PropertyField(sp_viewport, true);
            EditorGUILayout.PropertyField(sp_content, true);
            EditorGUILayout.PropertyField(sp_dataLocator, true);
            EditorGUILayout.PropertyField(sp_itemTemplate, true);
            EditorGUILayout.PropertyField(sp_allBeginLine, true);
            EditorGUILayout.PropertyField(sp_allEndLine, true);
            EditorGUILayout.PropertyField(sp_padding, true);

            if (GUILayout.Button("预览", createStyle(), GUILayout.Width(24), GUILayout.Height(16)))
            {
                rg.resetData();
                rg.initData();
                rg.setViewIndex(0, true);
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.PropertyField(sp_testIndex, true);
            if (GUILayout.Button("定位到", createStyle(), GUILayout.Width(24), GUILayout.Height(16)))
            {
                rg.setViewIndex(rg.testIndex, false);
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            dataObj = EditorGUILayout.ObjectField(dataObj, typeof(MockListData), true) as MockListData;
            if (GUILayout.Button("模拟数据", createStyle(), GUILayout.Width(24), GUILayout.Height(16)))
            {
                rg.dataLocator.loadPrefab(dataObj.data.source);
            }
            EditorGUILayout.EndHorizontal();


            EditorGUILayout.PropertyField(sp_removeBegin, true);
            EditorGUILayout.PropertyField(sp_removeEnd, true);
            if (GUILayout.Button("删除数据", createStyle(), GUILayout.Width(24), GUILayout.Height(16)))
            {
                rg.removeData(rg.removeBegin, rg.removeEnd);
            }

            serializedObject.ApplyModifiedProperties();
        }
Пример #4
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        drawIndex = GUILayout.TextField(drawIndex);
        if (GUILayout.Button("按下"))
        {
            GameObject  s  = Selection.activeGameObject;
            RecycleGrid rg = s.GetComponent <RecycleGrid>();
            rg.initMap();
            rg.recycleOldItem();
            rg.setViewIndex(Convert.ToInt32(drawIndex));
            rg.drawView();
        }

        if (GUILayout.Button("清理"))
        {
            GameObject  s  = Selection.activeGameObject;
            RecycleGrid rg = s.GetComponent <RecycleGrid>();
            rg.resetData();
        }
    }