新手引导按钮高亮后面有黑色蒙版使用NGUI应该怎么实现

新手引导按钮高亮后面有黑色蒙版使用NGUI应该怎么实现,第1张

想到一个方法,在mask层的高亮位置放置一个cube,调整sortingOrder使cube比mask先渲染,cube渲染时ZWrite On,颜色为0,mask比cube后渲染时ZTest Less。原理是cube是有厚度的,在z坐标相同时,渲染完成后Z Buffer的值就比mask的Z Value小了,mask再渲染时ZTest失败就是穿透效果了。
把UIButton关联在mask上层,在mask和穿透区域都加上Collider,接收到事件后传递给关联的UIButton。
好处是不需要复制或者添加额外的辅助措施,也比较通用。

需要自己做一个Panel界面,然后通过代码去显示和隐藏他,最好是在panel界面添加一个Collider,将其大小设置到足够大,这样能够屏蔽下面层的点击等事件NGUI中自己做的窗体层,也可以实现动画的效果,最简单的就是直接使用TWEEN组件

拖拽回到原位你可以在按下的时候记录一个位置 然后松开的时候在回去 按钮与default层的的问题你可以要注意一下 因为通常情况下在NGUI里面有一个UICamer 然后场景里也有一个Camera 所以有可能两个物体不在一起 只是看上去在一起而已

您好,很高兴为您解答:
我告你,我也遇到了,你肯定是先做了一个空游戏对象GameObject,
然后将Button添加给Gameobject,这样不行,先添加Button,你试试。
如果我的回答没帮助到您,请继续追问。

//先定义委托  参数列表根据自己的实际需要来定义
public delegate void MyDelegate(GameObject go);
//然后根据委托定义事件
public event MyDelegate myEvent;
void Start()
{
    //假设你使用的NGUI,按钮为游戏对象本身
    UIEventListenerGet(thisgameobject)onClick = ButtonClick   
}
void ButtonClick(GameObject go)
{
    myEvent(go);
}

这里就已经完成点击按钮发送myEvent事件了,在其他的脚本中订阅该事件并提供相应方法即可


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13412363.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-31
下一篇 2023-07-31

发表评论

登录后才能评论

评论列表(0条)

保存