unity3d Unity:使文本中的一个单词可拖动

envsm3lx  于 2023-03-19  发布在  其他
关注(0)|答案(1)|浏览(146)

我正在寻找一种方法,使只有一个词在一个文本网格用户界面对象拖动。我希望我的球员把这个词放在屏幕的另一部分,以赢得水平。
一个解决方案是将单词作为一个单独的对象添加到UI中,但这很容易把事情搞砸,因为我们有这么多屏幕大小不同的移动的设备。
那你有什么建议,真的有办法吗?
我在网上搜索了所有的答案,但是没有人回答,所以我想也许我应该是那个问问题的人,任何一个答案都能真正帮助我和其他所有寻找类似答案的人。
先谢了

yhived7q

yhived7q1#

首先,你不想处理UI中出现的3D对象,因为,正如你提到的,匹配UI的大小是一件令人头痛的事情,所以我们完全跳过它。剩下的事情实际上有两种方式,一种是愚蠢的,另一种是聪明的:
1.一种比较笨的方法是让单词作为一个单独的对象出现在普通UI布局中的其他文本对象之间(你仍然应该处理正确的填充来隐藏它在文本行中)技巧是,在点击时我们存储的是RectTransform值,以便在同一画布上克隆单词,但不附加到任何布局,这样玩家就可以拖动它了。不应该禁用原来的单词来不改变布局,而只是让颜色透明。
1.这种巧妙的办法,也比较灵活:尝试制作一个世界空间TMP_Text,它与画布版本精确匹配。由于TMP组件是通用的,所以应该是可以实现的。如果你成功地制作了世界文本以重复UI文本之后的形状,并且你对结果满意,那么就像上面一样完成剩下的技巧。不同之处在于世界文本可以按照你的意愿进行翻译和缩放。不限于画布的2D平面。

相关问题