语录:
奈何桥上奈何愁,奈何桥下浣溪流,奈何人人奈何泪,奈何奈何洗春秋。
前言:
有时,您可能希望使用 一个值来激活或停用操作类型。例如,按下控制器上的扳机轴会导致在完全按下扳机时发生操作。
Unity管理器轴操作提供了一种从轴获取变化值数据的方法,但实际上并没有提供一种让我们在该值达到特定值时触发某些内容的方法。这可以通过获取浮点值并在浮点值在我们指定的范围内时将其转换为布尔值来完成。然后,我们可以获取这个布尔值并将其传递到那个值中,用于连接打开或关闭的事件(真/假)。
我们可以使用VRTK提供的数据类型转换器来做到这一点,它允许从一种数据类型转换为另一种数据类型。
内容:
步骤1:
首先,我们先创造以及Cube,坐标轴归零:
步骤2:
先添加一个游戏对象Input.UnityInputManager.Axis1DAction。
GameObject -> Tilia -> Prefabs -> Input -> UnityInputManager -> Actions -> Input.UnityInputManager.Axis1DAction
步骤3:
将游戏对象Input.UnityInputManager.OpenVR.RightController中的RightTrigger_Axis[10]作为触发条件,写入Axis Name 中
步骤4:
新建一个空物体,然后添加组件“Boolean Action”:
步骤5:
将我们前面创建的游戏对象Cube拖放到Boolean Action下面的开始和结束时间中,代表激活时,游戏对象显示,不激活时,游戏对象隐藏
步骤6:
在当前界面继续添加组件“Float To Boolean”,当值在我们定义的范围内时,这个新创建的将把我们的浮点值从触发轴转换为布尔值。
将游戏对象自身拖放到Float To Boolean组件中的事件上面,并且选择BooleanAction->Receive:
我们接下来把Float To Boolean组件上面的Positive Bounds的最小值设置为0.5;
步骤7:
将gameobject游戏对象拖放到Input.UnityInputManager.1DAxisAction的Value Changed事件上,然后选择Float To Boolean->Dotransform: