[程式] 请问程式设定 ngui 按钮大小

楼主: bill42362 (酒池肉林夜夜生科)   2015-10-17 22:57:27
ngui版本:2.7.0
我使用 UI Wizard 新增一个 Panel 后,
新增一个默认的按钮作为 prefab
默认按钮位于萤幕中央,宽高 (150, 40) <-(是说为何是这个值?
我在 script 里面 Instantiate 这个按钮并将它挂在 Panel 中,
这时若将按钮的 transform.position 设为 (0, 0, 0)
它会乖乖的在中央没错,但若设为 (1, 1, 0),
在执行时会自动变成 (183, 183, 0)
请问我该如何正确指定按钮的大小及位置? @@"
感谢指导 0rz
作者: wix3000 (痒,好吃)   2015-10-17 23:06:00
再补一句transform.localPosition不就好了 XD
楼主: bill42362 (酒池肉林夜夜生科)   2015-10-17 23:10:00
阿!真的耶!! 这层层叠叠的真难懂...另外请问,那个默认的 (150, 40) 是怎么来的? 感谢 QQ
作者: wix3000 (痒,好吃)   2015-10-18 00:08:00
NGUI不熟 应该是因为他的prefab就是150,40吧
作者: bantime (景)   2015-10-18 19:52:00
你在设定好座标后 有没有改它的parent把prefabs Clone出来的顺序 应该是先instantiate设定parent 然后设定座标以及scale而且你在code里面设定position的值不一定会等于你在UnityInspector看到的UnityInspector的position是localposition
楼主: bill42362 (酒池肉林夜夜生科)   2015-10-18 22:39:00
我是用b大的顺序设定的没错,目前先暂时用 localPos不过搞不清楚 pos -> localPos 的机制实在有点不安心
作者: bantime (景)   2015-10-18 22:45:00
local是自身座标 如果local.x = 100它的parent的local.x是-100 而且已经没有parent了那它的pos.x 就会是 0如果先设定local.x = 100 然后才设定parent如果parent没有parent了 且 parent的local.x = 100则设置完parent后 local.x就会变成0y
作者: wix3000 (痒,好吃)   2015-10-18 23:02:00
localPos = transform.position - parent.transform.pos
楼主: bill42362 (酒池肉林夜夜生科)   2015-10-25 14:44:00
感谢,终于搞懂了 QQ

Links booklink

Contact Us: admin [ a t ] ucptt.com