Skip to main content

镜子按钮与 UI

让我们来谈谈大多数人都期待已久的话题,那就是添加镜子!

在项目选项卡中搜索 Mirror。将 VRCMirror 拖入您的场景,将其重命名为 HQ Mirror,并根据需求移动位置、旋转和缩放。如果您已导入了 VRWorldToolkit(就像您应该在第1部分中做的那样),那么您会看到一个名为 Show Players/World 的按钮。单击该按钮,然后启用 Reflect Layers(反射层)下的 Pickup(拾取)Walkthrough(穿行)。接下来就先 禁用(Disable)镜子。

好的,我们现在已经有了一个镜子,但是我们如何打开和关闭它呢?这时候就是 UI 派上用处的时候了。我们想要一个可以点击的开关,因此可以在 Hierarchy(层级窗口)中单击右键,选择 UI>Toggle。这将在 Canvas(画布)上生成一个 UI 开关,这是显示 UI 元素所必需的组件;不过,我们需要先解决一些问题。

  • 在 Hierarchy(层级窗口)中,单击 Canvas(画布),然后将渲染模式更改为 World Space(世界空间)。在 Rect Transform(矩形变换)下,将 XYZ 缩放更改为0.001。然后将 layer(图层)从 UI 更改为 Default。添加一个盒子碰撞器和一个VRC Ui Shape两个组件。现在将其放置在墙上;关闭网格,这样您可以将其稍微偏离墙壁放置,而不是放在墙壁内部。
  • 在 Hierarchy(层级窗口)中,单击 Canvas(画布)下的 按钮(toggle)并将其宽度设置为700,高度设置为120,然后取消勾选 Is On
  • 在 Hierarchy(层级窗口)中,单击 按钮(toggle)下的 label(标签)按钮。将文本更改为 HQ Mirror Toggle,将颜色更改为白色并增加字体大小。您可以随意更改字体,甚至可以导入自定义字体,只需从 C:/Windows/Fonts 中拖动 ttf 字体文件即可。您还可以通过单击 Add Component(添加组件)并搜索 shadow 来添加阴影。
  • 在 Hierarchy(层级窗口)中,单击 Background(背景)并将宽度和高度设置为100。然后将偏移更改为 50 和 -50 以正确放置复选框。接下来,在层次结构中单击“勾选”并将其宽度和高度设置为100。最后,再次选择标签并将其左侧设置为至少 100(您可以使用gizmos像其他对象一样平移UI元素)。 

现在,在“切换”下,将导航设置为“无”。单击组件底部的加号图标,然后从层次结构中拖动镜子。单击下拉菜单中的“无函数”并选择“GameObject”>“SetActive”。在“动态布尔”下。

复制您的 HQ 镜像,将其重命名为 LQ 镜像,单击“仅显示玩家”,然后复制我们刚刚创建的按钮。在“切换拖动”中,将LQ镜像替换为HQ镜像,并将标签更改为 LQ 镜子按钮

为确保一次只能有一个镜像处于打开状态,请添加一个新槽,将HQ镜像切换拖动到其中,然后在下拉菜单中选择“切换>打开”下的静态布尔值,并取消选中框。对于HQ镜像切换,也是如此,只是将LQ镜像切换放在槽中。然而,如果您有一个打开的镜像,并想要选择另一个镜像,您必须单击按钮两次,一次关闭当前镜像,另一次打开所需的镜像。

按播放按钮,使用CyanEmu(您还应在第1部分中导入)测试此功能。

如果您想使用Udon制作此UI,可以查看Vowgan的视频!https://youtu.be/E0D9Z8-HVBI
将其中一个镜子稍微移到另一个前面,以避免z轴冲突。

如果您的世界更大,请注意,LQ 镜子将渲染其背后的虚拟形象(即使它们穿过墙壁)。出于性能和隐私原因,最好将镜子放置在不会发生这种情况的位置,或者甚至设计您的空间,以便在考虑到这一点的情况下放置镜子。

顺便说一句,您可能想要在此时组织层次结构。您基本上可以使用空的游戏对象作为文件夹,但请确保首先重置其变换,否则将弄乱子游戏对象的位置,从而弄乱progrids!如果您忘记并不清除变换,请拖动出所有子游戏对象,重置变换,然后将其拖回。

有一点额外的好处,我在评论中收到了一个关于如何制作霓虹灯的问题。首先,添加一个您想要添加霓虹灯的对象,进入 Probuilder 窗口,添加一个没有高度分段的细长圆柱。我将对其进行挤出,以形成我想要的样子。我可以创建挤出,然后使用中心枢轴旋转以在霓虹管中创建转弯。完成建模后,创建一个新材质并检查发光框,并将其设置为烘焙。将其应用于您的对象,并选择您想要它发出的颜色。烘焙后,您就完成了!

与此相关的几点提示:首先,您可以在 Probuilder 中通过 Edit>Preferences>Probuilder>Experimental Features Enabled 启用贝塞尔曲线(以及布尔值)!然而,实际上这两者在Probuilder中的效果并不是很理想,因此我建议您改用Blender。

其次,请确保照明适应您的场景。如果您想要达到温暖或自然的外观,您需要将颜色限制在开尔文光谱范围内。而如果您想要人为的外观,可以使用可见光光谱上的完整颜色。这一概念在我推荐的Blender Guru照明课程中有详细介绍,您可以在第4课开始时了解更多。

目前课程到此结束。下一节课将继续探讨这个主题,我将向您展示如何利用Udon的UI来在默认层和可行走层之间切换对象!