多米诺 发表于 2013-3-29 11:07

NGUI动态添加自带的attach a collider 动态改变碰撞高度代码

如果用ngui自带的UIGrid 间隔是固定的无法根据行数 增加指定的间隔
会出现挤行的现象

↑挤行了

NGUITools.AddWidgetCollider(obj);
grid.cellHeight = obj.GetComponent<BoxCollider>().size.y;
就算这样设置boxCollider正常 但UIGRID也无法判断挤行

于是乎,勾了他

自己写个判断
countC前面定义一个=0;
24.1923 是一行collider高度
下面是判断二行的代码,只给出一个思路,其他的自己想吧

GameObject item = GameObject.Find(obj.name);
            if (obj.GetComponent<BoxCollider>().size.y < 25)
            {
                item.transform.localPosition = new Vector3(0, obj.GetComponent<BoxCollider>().size.y * (GameObject.FindGameObjectsWithTag("PublicGridItem").Length+countC), 0);// new Vector3(0, 0, 0);

            }
            else
            {
                countC = countC + 1;
                item.transform.localPosition = new Vector3(0, (24.1923f * (GameObject.FindGameObjectsWithTag("PublicGridItem").Length + countC)), 0);
               
               
            }
            item.transform.localScale = new Vector3(1, 1, 1);

发表于 2013-4-12 10:28

转播微博http://app.qlogo.cn/mbloghead/87640713c7c33be2bad8

ganli 发表于 2016-8-12 10:44


不错 不错 不错

一笑奈何 发表于 2016-8-15 17:10


感谢楼主的无私分享!

shengjianpu 发表于 2017-3-17 11:07

很不错

荒原狼仔 发表于 2017-3-17 11:17

楼主是超人

hony511 发表于 2017-3-17 11:02

好帖就是要顶

荒原狼仔 发表于 2017-3-17 10:38

不错不错

影子 发表于 2017-3-17 11:18

LZ真是人才

crop_solid 发表于 2017-3-19 19:27

很不错
页: [1]
查看完整版本: NGUI动态添加自带的attach a collider 动态改变碰撞高度代码