如何调整/拉伸世界空间 UI?
Posted
技术标签:
【中文标题】如何调整/拉伸世界空间 UI?【英文标题】:How to resize / stretch World Space UI? 【发布时间】:2021-10-23 06:58:03 【问题描述】:我的 3d 游戏中有一些带有世界空间渲染模式的滑块和按钮的画布。以不同距离连接到不同游戏对象的画布。
如何根据相机的放大或缩小调整画布大小?
重要!所有画布必须同时执行此操作。
例如:Canvas 应该在相机放大时收缩或在缩小时拉伸。
现在我是这样的(但在我看来有更好的方法):
if (Vector3.Distance(_camera.transform.position, transform.position) < 70)
var scaleFactor = Vector3.Lerp(transform.localScale, new Vector3(0.5f, 0.5f, 0.5f), 0.01f);
transform.localScale = scaleFactor;
else
//Because default canvas scale is 1, 1, 1
var scaleFactor = Vector3.Lerp(transform.localScale, Vector3.one, 0.01f);
transform.localScale = scaleFactor;
【问题讨论】:
【参考方案1】:只是问一下,您可以将画布与覆盖屏幕或覆盖相机一起使用,无论您放大或缩小或滑动,它都会始终以屏幕大小显示在您的屏幕上。 或者您可以制作一个包含两个孩子的父游戏对象。一个孩子是画布附加到的游戏对象,另一个是画布并在父级上应用变换,我猜它也适用于两个孩子。
【讨论】:
以上是关于如何调整/拉伸世界空间 UI?的主要内容,如果未能解决你的问题,请参考以下文章
UE4 Material 101学习笔记——30-37 植物叶片(透光/mask/面片隐藏/法线调整/AO/渐隐/世界空间色彩/随风舞动)