[程式] 請問程式設定 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