【问题标题】:How to resize / stretch World Space UI?如何调整/拉伸世界空间 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;
  }

【问题讨论】:

    标签: unity3d user-interface canvas


    【解决方案1】:

    只是问一下,您可以将画布与覆盖屏幕或覆盖相机一起使用,无论您放大或缩小或滑动,它都会始终以屏幕大小显示在您的屏幕上。 或者您可以制作一个包含两个孩子的父游戏对象。一个孩子是画布附加到的游戏对象,另一个是画布并在父级上应用变换,我猜它也适用于两个孩子。

    【讨论】:

      猜你喜欢
      • 2016-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      相关资源
      最近更新 更多