Unity Virtual Reality:关于输入的问题

时间:2019-04-09 08:21:29

标签: c# unity3d

我现在要实现的目标如下: 假设我们有一个Cube游戏对象和一个SteamVR播放器。 多维数据集对象位于y = 100位置,SteamVR播放器位于y = 0位置。

我想通过以下步骤使玩家可以放大游戏对象:

->同时按下两个触发器并使控制器彼此靠近将放大。

->同时按下两个触发器并使控制器彼此远离将缩小。

我认为您了解我想要创造的效果。

对于我的项目,我正在使用SteamVR Unity插件。

如果可以的话,有人可以告诉我,并给我一些如何做的见解吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

具有if语句,用于检查两个输入,并将摄像机位置向前移动,使其靠近并靠近目标。如果要在缩放之前保存摄像机的原始位置,只需在存储Camera.main.forward之前先存储它即可。

伪代码

public SteamVR_Input_Sources LeftInputSource = SteamVR_Input_Sources.LeftHand;
public SteamVR_Input_Sources RightInputSource = SteamVR_Input_Sources.RightHand;              
public Vector3 currentZoom;
public Vector3 zoomAmount;

void update(){
    if( SteamVR_Actions._default.Squeeze.GetAxis(LeftInputSource) && SteamVR_Actions._default.Squeeze.GetAxis(RightInputSource)){
currentZoom.forward += zoomAmount.forward; //increment zoom by whatever amount while 
triggers are held
Camera.main.transform.forward = currentZoom;
    }
}

我尚未对此进行测试,因此为什么我将其标记为伪代码,但我希望这会有所帮助!