Unity AR开发 | 获取Controller的Position和Rotation

Unity AR开发 | 获取Controller的Position和Rotation

1. 前序

2. 新建所需组件

2.1 在Canvas目录下新建两个Button

在这里插入图片描述

  • 点击Button-2用于记录Position
  • 点击Button-3用于记录Rotation

3. 设置Button-2 属性脚本

3.1 新建ShowPosition脚本并添加至Button-2

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ShowPosition : MonoBehaviour
{
    public Text infoText;
    // Start is called before the first frame update
    void Start()
    {
        infoText = GameObject.Find("Text").GetComponent<Text>();
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    public void positionShow()
    {
        Vector3 position = OVRInput.GetLocalControllerPosition(OVRInput.Controller.RTouch);
        Debug.Log(position);
        infoText.text = position.ToString();
    }
}

3.2 定义触发功能

将Button-2拖入触发物体框中,函数选择ShowPosition.positionShow, 意思是调用Button-2【GameObject】下的ShowPosition【Component】里的positionShow【函数】。
在这里插入图片描述

4. 设置Button-3 属性脚本

4.1 新建ShowRotation脚本并添加至Button-3

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ShowRotation : MonoBehaviour
{
    public Text infoText;
    // Start is called before the first frame update
    void Start()
    {
        infoText = GameObject.Find("Text").GetComponent<Text>();
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    public void rotationShow()
    {
        Quaternion rotation = OVRInput.GetLocalControllerRotation(OVRInput.Controller.RTouch);
        
        infoText.text = rotation.ToString();
    }
}

4.2 定义触发功能

类似3.2

5. 运行结果

在这里插入图片描述
在这里插入图片描述


6. 总结

6.1 主要调用了OVRInput里面的Get()系列函数

GetLocalControllerPosition

GetLocalControllerRotation

分别返回一个Vector3Quaaternion
使用句型如下:

Vector3 position = OVRInput.GetLocalControllerPosition(OVRInput.Controller.RTouch);
Quaternion rotation = OVRInput.GetLocalControllerRotation(OVRInput.Controller.RTouch);
OVRInput.Controller.RTouch代表右手柄

6.2 主要Button组件里面脚本要调用的函数设置为Public,否则无法在触发设置里找到

6.3 text的显示只能是字符,要用tostring函数转换

使用句型如下:
infoText.text = rotation.ToString();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值