使用Unity引擎开发Rokid主机应用的模型交互操作

简介: 本文介绍如何使用Unity引擎结合Rokid OpenXR Plugin开发空间计算应用,实现射线交互、模型操作等功能。涵盖环境配置、Demo导入、UI搭建与脚本编写,助力开发者快速构建AR交互应用。

系列文章目录
unity知识点

@TOC

👉前言
Rokid Unity OpenXR Plugin 是为Unity 开发者提供的在 YodaOS-Master 空间计算操作系统上开发空间计算应用的工具。它基于OpenXR 标准开发,帮助开发者在 YodaOS-Master 上进行空间构建、虚实交互、空间感知,并最终构建完整的空间应用。
博客将会介绍如何实现 用Unity引擎开发Rokid主机的射线交互操作。希望这篇博客对Unity的开发者有所帮助。
大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。
欢迎点赞评论哦.下面就让我们进入正文吧 !

提示:以下是本篇文章正文内容,下面案例可供参考
👉效果实现
[video(video-BHsvOSC7-1759242361776)(type-csdn)(url-https://live.csdn.net/v/embed/495124)(image-https://v-blog.csdnimg.cn/asset/8ac2265345d990b82b8a9f15f23007aa/cover/Cover0.jpg)(title-Rokid模型操作)]
👉一、基础环境配置
配置的话跟着官网配置就好了,就不过多赘述了。
开发环境搭建文档SDK导入
👉一、先把Demo素材导入
导入示例demo步骤:
第一步先打开:Package Manager
第二步:选择Rokid UXR SDK 在选择Sampies 点击Install就可以了
第三步:如下图找到示例demo学习即可
里面一共20几个Demo
👉四、创建UI交互应用

  1. 新建场景scene,把主摄像机删除掉,切记先导入示例项目哦
  2. unity移动模型旋转缩放的插件下载 插件直接导入即可,不导入下面脚本是无法使用的。
  3. 找到Packages里面的相机添加进去

  4. 添加UI预制体(如下图)

  5. 添加鼠标交互预制体(如下图)

  6. 场景新建一个Plane,然后调整相机距离稍微调远一点,X轴的旋转角度也调一下,可以稍微俯视的视角。

  7. 把UI预制体放在相机的下面,UI就可以跟着镜头旋转了,相当于固定UI在镜头上。
  8. UI预制体下面新建五个按钮 场景结构如下图,

  9. 场景搭建好之后开始编写脚本进行交互,代码如下
    代码:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using Battlehub.RTHandles;

public class ModelData : MonoBehaviour
{
public Transform carPrefab;
private Transform cartemporary; //临时的
public PositionHandle positionHandle;
public RotationHandle rotationHandle;
public ScaleHandle scaleHandle;

// Start is called before the first frame update
void Start()
{

}
/// <summary>
/// 生成模型
/// </summary>
public void CreateModel()
{
    if (cartemporary==null)
    {
        Transform transfo = Instantiate(carPrefab);
        cartemporary = transfo;
    }


}
/// <summary>
/// 移动模型
/// </summary>
public void PosModel()
{
    CloseJH();
    if (cartemporary != null)
    {
        cartemporary.GetComponent<PositionHandle>().enabled = true;
    }

}
/// <summary>
/// 旋转模型
/// </summary>
public void RotModel()
{
    CloseJH();
    if (cartemporary != null)
    {
        cartemporary.GetComponent<RotationHandle>().enabled = true;
    }

}
/// <summary>
/// 缩放模型
/// </summary>
public void ScaModel()
{
    CloseJH();
    if (cartemporary != null)
    {
        cartemporary.GetComponent<ScaleHandle>().enabled = true;
    }

}
/// <summary>
/// 删除模型
/// </summary>
public void DesModel()
{
    if (cartemporary != null)
    {
        Destroy(cartemporary.gameObject);
    }
}

void CloseJH()
{
    if (cartemporary != null)
    {
        cartemporary.GetComponent<PositionHandle>().enabled = false;
        cartemporary.GetComponent<RotationHandle>().enabled = false;
        cartemporary.GetComponent<ScaleHandle>().enabled = false;
    }
}
// Update is called once per frame
void Update()
{

}

}

  1. 最后给按钮绑定事件,上面都有注释,按注释绑定即可。
  2. 最后运行点击即可看到效果,然后发布即可测试效果。
  3. 效果实现需要上面坐标轴的插件,切记记得导入,记得下载。
    如果想要更深,更复杂的场景,需要结合其他的Demo学习,就能编辑更多功能的应用

👉壁纸分享

👉总结
Rokid是一家专注于人机交互技术的产品平台公司,深耕5G+AI+AR领域的软硬件产品开发,为不同垂直领域的客户提供全栈式解决方案,打造智能时代的超级工人,有效提升用户体验、助力增效。
本次总结的就是使用Unity引擎开发Rokid主机的射线交互操作实现, 有需要会继续增加功能
如能帮助到你,就帮忙点个赞吧,三连更好哦,谢谢
你的点赞就是对博主的支持,有问题记得留言评论哦!
不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒!

相关文章
|
8月前
|
算法 测试技术 vr&ar
Unity Vufoia+AR模型抖动的问题
**图像识别与跟踪精度问题**:Vuforia 依赖特征点检测,环境光线不稳定、目标纹理不丰富或遮挡会导致特征点匹配误差,引起AR模型抖动。跟踪丢失和重定位延迟也会导致模型不稳定。 **设备硬件与性能问题**:移动设备摄像头易受手持抖动影响,低性能设备无法及时处理图像数据,导致跟踪结果更新延迟。 **模型与坐标系问题**:AR模型重心设置不合理或坐标系转换误差,会使模型在虚拟空间中不稳定。 **算法与参数设置问题**:跟踪算法局限性和参数设置不合理(如灵敏度过高或平滑度过低)都会影响跟踪稳定性。 。
|
4月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
232 18
|
前端开发 图形学 开发者
【独家揭秘】那些让你的游戏瞬间鲜活起来的Unity UI动画技巧:从零开始打造动态按钮,提升玩家交互体验的绝招大公开!
【9月更文挑战第1天】在游戏开发领域,Unity 是最受欢迎的游戏引擎之一,其强大的跨平台发布能力和丰富的功能集让开发者能够迅速打造出高质量的游戏。优秀的 UI 设计对于游戏至关重要,尤其是在手游市场,出色的 UI 能给玩家留下深刻的第一印象。Unity 的 UGUI 系统提供了一整套解决方案,包括 Canvas、Image 和 Button 等组件,支持添加各种动画效果。
859 3
|
vr&ar 图形学 API
Unity与VR控制器交互全解:从基础配置到力反馈应用,多角度提升虚拟现实游戏的真实感与沉浸体验大揭秘
【8月更文挑战第31天】虚拟现实(VR)技术迅猛发展,Unity作为主流游戏开发引擎,支持多种VR硬件并提供丰富的API,尤其在VR控制器交互设计上具备高度灵活性。本文详细介绍了如何在Unity中配置VR支持、设置控制器、实现按钮交互及力反馈,结合碰撞检测和物理引擎提升真实感,助力开发者创造沉浸式体验。
735 1
|
图形学 C++ C#
Unity插件开发全攻略:从零起步教你用C++扩展游戏功能,解锁Unity新玩法的详细步骤与实战技巧大公开
【8月更文挑战第31天】Unity 是一款功能强大的游戏开发引擎,支持多平台发布并拥有丰富的插件生态系统。本文介绍 Unity 插件开发基础,帮助读者从零开始编写自定义插件以扩展其功能。插件通常用 C++ 编写,通过 Mono C# 运行时调用,需在不同平台上编译。文中详细讲解了开发环境搭建、简单插件编写及在 Unity 中调用的方法,包括创建 C# 封装脚本和处理跨平台问题,助力开发者提升游戏开发效率。
1233 0
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
521 0
|
1月前
|
机器学习/深度学习 人工智能 图形学
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
147 9
|
1月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
图形学 C#
超实用!深度解析Unity引擎,手把手教你从零开始构建精美的2D平面冒险游戏,涵盖资源导入、角色控制与动画、碰撞检测等核心技巧,打造沉浸式游戏体验完全指南
【8月更文挑战第31天】本文是 Unity 2D 游戏开发的全面指南,手把手教你从零开始构建精美的平面冒险游戏。首先,通过 Unity Hub 创建 2D 项目并导入游戏资源。接着,编写 `PlayerController` 脚本来实现角色移动,并添加动画以增强视觉效果。最后,通过 Collider 2D 组件实现碰撞检测等游戏机制。每一步均展示 Unity 在 2D 游戏开发中的强大功能。
921 6
|
图形学 缓存 算法
掌握这五大绝招,让您的Unity游戏瞬间加载完毕,从此告别漫长等待,大幅提升玩家首次体验的满意度与留存率!
【8月更文挑战第31天】游戏的加载时间是影响玩家初次体验的关键因素,特别是在移动设备上。本文介绍了几种常见的Unity游戏加载优化方法,包括资源的预加载与异步加载、使用AssetBundles管理动态资源、纹理和模型优化、合理利用缓存系统以及脚本优化。通过具体示例代码展示了如何实现异步加载场景,并提出了针对不同资源的优化策略。综合运用这些技术可以显著缩短加载时间,提升玩家满意度。
1469 6