如果我在错误的地方写作,我对此感到很抱歉--让我知道,我会移动/删除这个评论。
目前,我在使用VRTK时有检测控制器输入的问题。
例如,当两个对象发生冲突时,我希望能够检测到控制器上按下了哪些按钮,但似乎无法确定我如何做到这一点。
此外,我还实现了交互使用功能,但我很难解决如何让两个按钮执行不同的操作。
例如:
一旦我用简单的指针抓取一个对象,我希望一个按钮使对象更接近,另一个按钮将对象移开,但我只实现了一个或另一个。
有什么建议吗?我到处找过文档、例子和谷歌,似乎什么都找不到。任何帮助都将不胜感激!把我的头发拔出来!
发布于 2017-02-01 13:16:53
您可以在InteractableObject:interactableobject#section-grabbed-1上使用InteractableObject方法
或者您可以在ControllerGrabInteractableObject脚本上使用InteractGrab事件:interactgrab#section-class-events
或者您可以有一个更新例程并检查执行grabbed的控制器上的GetGrabbedObject() != null状态(检查控制器是否有一个对象被抓取,如果它是空的,那么其中一个没有被抓取)。
然后,您可以使用ControllerEvents按钮bools在按下按钮时做一些事情。因此,包含此内容的脚本位于交互抓取脚本旁边的控制器脚本别名游戏对象上:
void Update() {
if (GetComponent<VRTK_InteractGrab>().GetGrabbedObject != null) {
var controllerEvents = GetComponent<VRTK_ControllerEvents>();
if (controllerEvents.IsButtonPressed(VRTK_ControllerEvents.ButtonAlias.Trigger_Press) {
//Do something on trigger press
}
if (controllerEvents.IsButtonPressed(VRTK_ControllerEvents.ButtonAlias.Grip_Press) {
//Do something on grip press
}
}
}https://stackoverflow.com/questions/41962705
复制相似问题