网站建设的缺点,手机网站关键词快速排名,沧州网站建设 益志科技,英文网站建设企业语录#xff1a; 愿你熬得过万丈孤独#xff0c;藏得下星辰大海。 前言#xff1a; 默认情况下#xff0c;交互器只能将单个布尔操作传递给可交互对象#xff0c;后者控制可交互对象上的抓取操作。在其他时候#xff0c;交互器中的其他操作可能希望传递给可交互对象…语录 愿你熬得过万丈孤独藏得下星辰大海。 前言 默认情况下交互器只能将单个布尔操作传递给可交互对象后者控制可交互对象上的抓取操作。在其他时候交互器中的其他操作可能希望传递给可交互对象例如另一个输入按钮按下甚至是控制器的轴值例如触发器挤压。 我们可以使用 Interactions.ActionPublisher和Interactions.ActionReceiver 来促进这种机制。 正文
步骤一 首先我们需要创建基本条件CameraRigs.TrackedAlias追踪器、CameraRigs.UnityXR头显、Input.UnityInputManager.OpenVR.RightController右手控制器、Input.UnityInputManager.OpenVR.LeftController左手控制器 步骤二 我们需要在CameraRigs.TrackedAlias-Aliases-LeftControllerAliasRightControllerAlias下面创建Interactions.Interactor 步骤三 我们需要给 Interactions.Interactor指定对应的Grad Action和Velocity Tracker: 步骤四 我们需要在CameraRigs.TrackedAlias-Aliases-LeftControllerAliasRightControllerAlias下面创建Interactions.ActionPublisher 步骤五 我们需要给 Interactions.ActionPublisher指定对应的Source Action和Source Interactor: 步骤六 创建一个Cube作为放置台再创建一个可抓取的物体 步骤七 创建可移动模块然后进行对应属性配置 步骤八 创建 Interactions.ActionReceiver然后将Interactions.Interactable拖放到它的属性上面 步骤九
将前面创建的两个Interactions.ActionPublisher拖放到Interactions.ActionReceiver中 步骤十 创建一个脚本允许我们更改可交互游戏对象的不透明度以测试触发器值是否从控制器传递到可交互对象。
using UnityEngine;public class OpacityChanger : MonoBehaviour
{public GameObject meshToChange;protected MeshRenderer materialRenderer;protected void OnEnable(){materialRenderer meshToChange.GetComponentInChildrenMeshRenderer();}public void ChangeOpacity(float value){Color currentColor materialRenderer.material.color;currentColor.a 1f - value;materialRenderer.material.color currentColor;}
}
步骤十一 然后将脚本挂到Interactions.Interactable上面并把Interactions.Interactable下面的子物体Cube拖放到脚本中 步骤十二 找到 Interactions.ActionReceiver 下面的FloatAction物体 ,将Interactions.Interactable拖放到Value Changed下面 步骤十三 找到Interactions.Interactable下面的Cube,然后将Cube添加一个材质并将材质的Rendering Mode 属性改为Transparent: Play:
运行Unity 场景时可以用 VR 控制器上的握把按钮抓取立方体然后按下 VR 控制器上的触发按钮会慢慢改变可交互立方体游戏对象的不透明度。