天若阻我,我便撕裂这天!地若拦我,我便踏碎这地!
在3D空间中,我们往往需要设置空间按钮,通过交互器或指针与之交互的可碰撞来实现。接下来我们设置一个简单的按钮,可以使用对象指针进行选择,以启动按钮的点击,使用预制件表示我们的按钮,并使用可与按钮交互的空间指针的预制模块:Interactions.SpatialButton.ClickButton、Indicators.ObjectPointers.Straight。
添加一个直线指针Indicators.ObjectPointers.Straight,用于按钮的交互:
配置当前组件上面的属性:
我们需要让对象指针知道我们的调度程序,我们的调度程序知道我们的空间按钮。这意味着我们的对象指针和空间按钮之间的任何通信都将通过调度程序。这时,我们需要另外一个模块:Indicators.SpatialTargets.Dispatcher:
Tilia -> Prefabs -> Indicators -> SpatialTargets -> Indicators.SpatialTargets.Dispatcher
我们需要将对象指针挂接到调度程序上,以便于对象指针和事件调用程序方法绑定:
分别选在要在发出事件时执行的函数:
触发:SpatialTargetDispatcher -> DoDispatchEnter
退出:SpatialTargetDispatcher -> DoDispatchExit
选择:SpatialTargetDispatcher -> DoDispatchSelect
那么接下来我们需要创建一个空间按钮,使他可以与我们的直线指针进行交互:
Tilia -> Prefabs -> Interactions -> SpatialButtons -> Interactions.SpatialButton.ClickButton
如果我们是第一次使用,它会弹出来一个提示框,让我们加载对应的使用TextMesh Pro所必需的资源。
现在,我们可以通过编辑组件上的属性来更改空间按钮的外观。
按钮可以处于两种主要状态,以及相关的嵌套子状态:
Is Enabled
Is Enabled
每个样式类型都是与按钮状态相关的属性集合,样式的嵌套属性类型为:
Is Applied
:是否将样式应用于按钮状态。如果未选中此选项,则可以手动设置按钮内部元素的样式。Button Text
:当按钮处于相关状态时,按钮上显示的文本。Font Size
:要显示的文本的字体大小。Font Color
:文本字体的颜色。Mesh Color
:按钮处于相关状态时按钮网格框的颜色。我们现在只是设置一个简单的按钮,我们只是要更改每个状态的文本,但将按钮的外观保留为默认设置。
从 Unity 层次结构窗口中选择游戏对象,然后在组件上更改以下属性:ClickButton
Spatial Button Facade
I AM OFF
I AM OFF
CLICKED
DISABLED
DISABLED
当我们运行场景并激活对象指针, 将光束指向按钮,并注意按钮网格颜色如何变为悬停颜色。按键调用对象指针选择操作,该操作将依次单击我们的按钮,您将看到按钮在返回到默认状态之前快速更改为激活状态。