VR触摸盘触摸控制位移

之前接触过别人写的VR移动脚本,但是没有细看里面的内容,只是会用而已,现在换工作了,只能自己写了(菜鸟一个,大神勿喷)

using UnityEngine;
using VRTK;
using VR;

public class VR_CameraMove : MonoBehaviour
{
    public float _moveSpeed;
    public bool isTouchStart = false;
    public Vector2 touchVec;

    private VR_ControllerEvents vr_ControllerEvents;

    private void Awake()
    {
        vr_ControllerEvents = FindObjectOfType<VR_ControllerEvents>();
        if (vr_ControllerEvents.controllerType == ControllerType.Right)
        {
            vr_ControllerEvents.touchPadTouchStart += TouchPadTouchStart;
            vr_ControllerEvents.touchPadAxisChanged += TouchPadAxisChanged;
            vr_ControllerEvents.touchPadTouchEnd += TouchPadTouchEnd;
        }
    }

    private void Start()
    {
        _moveSpeed = PlayerPrefs.GetFloat("VR_CameraMove");
    }

    private void Update()
    {
        if (isTouchStart)
        {
            MoveController(touchVec);
        }
    }

    /// <summary>
    /// 设置移动速度
    /// </summary>
    /// <param name="speed">速度数值</param>
    public void SettingMoveSpeed(float speed)
    {
        _moveSpeed = speed;
    }

    private void MoveController(Vector2 vector)
    {
        Vector3 direction = new Vector3(vector.x, 0, vector.y);
        transform.Translate(direction * _moveSpeed * Time.deltaTime, Space.Self);
    }
    private void TouchPadTouchEnd(object sender, ControllerInteractionEventArgs e)
    {
        isTouchStart = false;
    }
    private void TouchPadAxisChanged(object sender, ControllerInteractionEventArgs e)
    {
        touchVec = e.touchpadAxis;
    }
    private void TouchPadTouchStart(object sender, ControllerInteractionEventArgs e)
    {
        isTouchStart = true;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人无两度s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值