找回密码
 立即注册
查看: 488|回复: 2

关于Unity的遮罩问题!如何仅仅遮挡被遮罩物,而让遮罩物的其他区域变透明呢(见图)?

[复制链接]
发表于 2021-5-26 06:11 | 显示全部楼层 |阅读模式
如题,我设计了一个血条,实现原理见图2,就是用一个黑条图片来遮罩血条,用黑条的左右移动来实现加减血量的效果。但请问,怎样让血条其他区域透明,不显示黑条呢?(游戏背景是黑色还好说,一旦不是黑色,实在太丑啦u002F(ㄒoㄒ)u002F~~)
发表于 2021-5-26 06:17 | 显示全部楼层
为什么要用这种方法,
血条本身不用图片,就透明的,然后把遮罩的黑色改成红色充当血条,方向反过来不就好了。


更新一下
如图,fill是黑条,background是红条。
给fill加一个mask组件,就完成了。
滑动条设置如图,没什么要变得。
效果如图
不过这种方法似乎实现不了题主那种黑条上下还有红条的效果(就是仅仅把黑条部分剔除)unity的mask组件是只显示被Fill(有mask组件的gameobject)覆盖的地方,而不是剔除被覆盖的地方,如果一定要实现这个效果,我知道的唯一的方法就是做一个render texture,在屏幕上全屏放下,然后让黑条遮罩这个render texture,不过这种有点儿杀鸡用牛刀的感觉(众所周知render texture很耗),所以只能期待一下其他答主补充啦。


(texture写成picture了,偷偷改一下,几个月没用unity都要忘掉了 )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-5-26 06:18 | 显示全部楼层
我建议用image的fill amount功能去表达血条。
将Image Type 改成Filled,然后在Fill Method 上改成Horizontal。调用Fill Amount以改变血条填充量。这个方法是最通常用来做条形图。而Fill Method 改成Radial 360的话,就可以做出类似技能CD的图。


<hr/>楼上的方法也不是最好,但也没什么毛病,需要提醒的地方是用Slider的话要将里面interactable关掉。
即使是用题主黑块的方法也可以,将黑块变成血条的子项,RectTransform设成下图红色框这样,然后调用时僅修改Left值即可。
<hr/>最后宣传一下Unity开发者圈子
建圈初期人不多不活跃,希望大家可以进来聊聊天水水群多多交流。
Unity3D游戏开发圈 - 知乎

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-21 02:42 , Processed in 0.093747 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表