作者yabibear (yabi)
看板GameDesign
标题[请益] unity中gameobject改parent後显示问题
时间Mon Jul 25 15:24:27 2016
(已解决)
目前再作背包栏跟装备栏的部分,
想要如果再装备栏A已经装备了物品a,
那再拖曳其他物品到装备栏A时,物品a会被丢回背包栏。
一开始在ItemStroage_Grid(背包)产生三个itemSlot(物品)
http://imgur.com/a/WiFWo
拖曳itemSlot0 (物品a)到装备栏Eq01_Grid(装备栏A)。
http://imgur.com/a/8FiJg
再拖曳itemSlot1 (物品b)到装备栏 Eq01_Grid (装备栏A),想要把前一个装备
(itemSlot0 物品a)丢回ItemStroage_Grid (背包)
http://imgur.com/a/KFAxY
在Hierarchy可以看到itemSlot0已经变成ItemStroage_Grid的child.
右边也显示他的位置在ItemStroage_Grid里面,可是图显示不出来,
也无法在对itemSlot点击拖曳等动作。
变换parent我是这样写的
NGUITools.FindInParents<UIGrid(gameObject).transform.GetChild(0).
SetParent(GameObject.Find("ItemStroage_Grid").transform);
此时的gameObject="itemSlot1",我是先找他的parent "Eq01_Grid",
再找Eq01_Grid的第一个child "itemSlot0",再改变itemSlot0的parent。
请问这样可能是哪边出了问题呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.164.175
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1469431469.A.29B.html
1F:推 wix3000: itemSlot0.localScale = Vector3. one 07/25 18:36
2F:推 chowleft: UIWidget.CheckParent() 07/25 18:46
3F:→ yabibear: wix大试过了没有效 07/25 20:44
4F:→ yabibear: chow大 我找不到checkparent的用法 07/25 20:45
5F:→ yabibear: 不过我有print(itemSlot0.parent) 来确定parent已经改了 07/25 20:46
6F:推 chowleft: NGUI 物件在执行阶段改 parent 记得是没用的 07/25 20:56
7F:→ chowleft: 你可直接从hierarchy拖物件到不同Panel试试 07/25 20:58
8F:→ chowleft: 要让 Panel 更新物件必须自行通知才行 07/25 20:58
9F:→ yabibear: @@ 我的备用方案是destory这个itemSlot 07/25 21:02
10F:→ yabibear: 在背包在生一个出来 希望这样不会太花资源 07/25 21:03
11F:→ yabibear: 通知是指抓到那个panel 执行refresh吗 07/25 21:05
12F:→ chowleft: itemSlot.GetComponet<UIWidget>().CheckParent(); 07/25 21:07
13F:→ chowleft: 你试试看这样有没有编译错误...现在没 NGUI Orz 07/25 21:08
14F:→ yabibear: 我的UIWidget方法只有checklayer跟 parent等等 07/25 21:13
15F:→ yabibear: <UIWidget>.parent显示是Panel(UIPanel) 07/25 21:14
16F:→ chowleft: 呃....那有 ParentHasChanged() 吗? 07/25 21:15
17F:→ yabibear: 有耶 07/25 21:17
18F:→ chowleft: 恩...大大可以在拖曳完後,呼叫一下该函式看看吗? 07/25 21:18
20F:→ yabibear: 框框有出来了!!! 07/25 21:20
21F:→ yabibear: 我在移动那个框框 猫咪图案也会出来 07/25 21:21
22F:→ yabibear: 我抓itemslot底下的UITEXTURE然後在ParentHasChanges() 07/25 21:24
23F:→ yabibear: 完全好了 感动QQ 卡了两天 感谢以上大大的帮忙 07/25 21:25
※ 编辑: yabibear (140.116.164.175), 07/25/2016 21:29:14