我现在要实现的目标如下: 假设我们有一个Cube游戏对象和一个SteamVR播放器。 多维数据集对象位于y = 100位置,SteamVR播放器位于y = 0位置。
我想通过以下步骤使玩家可以放大游戏对象:
->同时按下两个触发器并使控制器彼此靠近将放大。
->同时按下两个触发器并使控制器彼此远离将缩小。
我认为您了解我想要创造的效果。
对于我的项目,我正在使用SteamVR Unity插件。
如果可以的话,有人可以告诉我,并给我一些如何做的见解吗?
谢谢。
答案 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;
}
}
我尚未对此进行测试,因此为什么我将其标记为伪代码,但我希望这会有所帮助!