Unity NGUI+Slua tips

本文介绍在Unity中使用UIRect.AnchorUpdate控制UI元素锚点更新时机的方法,包括OnUpdate与OnEnable的区别,以及如何通过Lua脚本动态调整UIWidget组件的锚点属性实现UI布局变化。此外,还分享了TWEEN动画的手动添加方法,如TweenScale动画的使用,以及在代码运行时绑定Lua脚本的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.动态改anchor 不使用OnUpdate ,用OnEnable,可以刷新次数,同时当版式改变时用以下方式

     gameObj.updateAnchors = UIRect.AnchorUpdate.OnUpdate

     gameObj.updateAnchors = UIRect.AnchorUpdate.OnEnable

2,仍然是改相对位置

      local widget =gameObject:GetComponent(UIWidget)
      local ret = GetUIWidgetAnchors(widget) -- 四维数组
      widget.bottomAnchor.absolute = -80     -- 可以改 bottom,top,left,right ,另一个参数 relative
      SetUIWidgetAnchors(widget, ret)
      gameObject:GetComponent(UIWidget):ResetAndUpdateAnchors()
 可以通过获得Anchor,来改Anchor 是属性甚至直接设置 bottomAnchor属性(对应编辑器窗口值)

补充
local widget = self.pageTagGrid:GetComponent(UIWidget)
widget.topAnchor.target = icon.transform
widget.topAnchor.relative = 0 – topAnchor 的relative三个值,0bottom,0.5center,1top,>2 percent,相应如果是leftAnchor,0-left,1 -right,0.5-center
widget.topAnchor.absolute = 11
widget.bottomAnchor.target = icon.transform
widget.bottomAnchor.relative = 0
widget.bottomAnchor.absolute = 40
widget.updateAnchors = UIRect.AnchorUpdate.OnUpdate;
LuaTimer.Add(100, function()
widget.updateAnchors = UIRect.AnchorUpdate.OnEnable;
end)

3.手动加TWEEN动画

       --- scale 动画:

                           local scale = gameObject:AddComponent(TweenScale)
                            scale.gameObject:SetActive(false)
                            scale.duration = 0.8
                            scale.delay = 3

4.代码运行时绑定 lua脚本

Lua.AttachLua(luaFileName, gameObject)

Bugs:

1.UIButton 插件在手机上有几率不会变黑,改成UIEventListener 注册点击
2.碰到一个奇怪的bug,我在一个物体上加了两个tweenScale,通过设置延时决定播放顺序,用另外一个playTween去播放,物体放在grid下;发现tweenScale没有播放 ,最后勾掉了 tweenScale 下的 ignoreTimeScale 解决,另外发现,tweenScale 不能用ResetToBeginning 去设置到默认状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值