为了在我们的VR项目中增添有用功能,就添加了这个模块。
无人机的操控是模拟现实无人机的双摇杆手柄操作方式,对htc vive两个手柄的touchpad的功能进行继承重写,实现操控:
如图,左touchpad分成四个区域,根据touchpad的触摸检测触碰位置的区域,同时根据按压touchpad来执行操控。分别对应的:水平轴左右转向,以及竖直轴上升下降。
而右touchpad根据触摸位置相对圆中心的向量方向,来控制飞行器水平面上的位移方向,为了效果更真实,还设置了加速度。
下面来看一下代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Flying : MonoBehaviour {
public bool IsFlying = false;
public GameObject leftController;
public GameObject rightController;
public float maxVelocityXZ=2.0f;
public float velocityY=1.0f;
public float accelerationXZ=10.0f;
private float velocityXZ=0;
SteamVR_TrackedObject trackedLeft;
SteamVR_TrackedObject trackedRight;
Vector3 right;
void Awake