Ultraleap 3Di新建项目之给所有的Joint挂载物体

工程文件

Ultraleap 3Di给所有的Joint挂载物体

前期准备

参考上一期文章,进行正确配置
Ultraleap 3Di配置以及在 Unity 中使用 Ultraleap 3Di手部跟踪

新建项目

初始项目如下:
在这里插入图片描述
新建Create Empty
在这里插入图片描述
将新建的Create Empty,重命名为LeapProvider,并添加新的组件
在这里插入图片描述
新添加的组件如下,参数默认,不需要修改
在这里插入图片描述
继续新建Create Empty,并重命名为HandModelManager,接着添加新的组件:
在这里插入图片描述
添加组件如下:
在这里插入图片描述
单击HandModelManager,展开各个子选项,在Wrist和Palm下新建Sphere:
在这里插入图片描述
连接Ultraleap 3Di,并单击【play】查看运行结果:
在这里插入图片描述
成功运行。

编写脚本,实现对所有关节进行挂载物体

单击HandModelManager,继续添加新的组件,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开该脚本,输入如下代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor; /// 命名空间public class AddObjToJoint : MonoBehaviour
{// 拿到想要挂载的物体public GameObject addObj;public List<GameObject> addList = new List<GameObject>();// 把我们想要挂载的物体,挂载到所有的Joint下面public void Add(){// 遍历所有集合,将所有子物体销毁掉foreach(var item in addList){DestroyImmediate(item);}addList.Clear();// 方法1:foreach(Transform item in transform) // 遍历当前物体下面的所有子物体{//遍历所有子物体,也包含自身的foreach(var child in item.GetComponentsInChildren<Transform>()){// 排除自身if(child == item) continue;// 添加,通过实例化的方法传进去GameObject temp = Instantiate(addObj, child);// 把addObj生成在对应的child下面addList.Add(temp);}}//    // 方法2://    for(int i = 0; i < transform.childCount; i++)//    {//         print(transform.GetChild(i).name);//    }} 
}[CustomEditor(typeof(AddObjToJoint))]// 添加标签
// 实现:在脚本这边添加一个按钮
// 添加按钮,需要继承Editor
public class AddObjToJointEditor : Editor  // 创建一个类
{public override void OnInspectorGUI()  // 重写OnInspectorGUI方法{base.OnInspectorGUI();if(GUILayout.Button("挂载物体到所有的关节下面")) // 生成按钮{// 通过按钮点击,调用void Add()方法// target表示目标对象,也就是AddObjToJoint,是一个object类型,因此target.Add不可用// 将target强制转换成AddObjToJoint类(target as AddObjToJoint).Add();}}}

创建Scripts文件夹,将上一步创建脚本存放此处;并在Hierarchy中新建Sphere,将其拖拽到该文件夹下,作为给各关节挂载的物体
在这里插入图片描述
将新建好的Sphere拖转到HandModelManager中的Add Obj处,作为挂载的物体,并将手势的各个关节Joint全选中:
在这里插入图片描述
单击【挂载物体到所有的关节下面】,可见【Scene】中所有关节均挂载Sphere:
在这里插入图片描述
修改Sphere的大小,并连接Ultraleap 3Di进行Play,查看结果如下:
在这里插入图片描述
至此成功运行,所有的Joint挂载物体导致结束!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/650785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查询redis路径,清除redis缓存

查询redis路径 1、执行ps -ef | grep redis 命令&#xff0c;结果如下&#xff08;记住PID&#xff09; 2、执行ps -u 系统用户名&#xff0c;进一步确定进程id, 我这里的系统用户名是root&#xff0c;执行ps -u root&#xff0c;结果如下&#xff1a; 结合1的操作结果图可知…

qtcreator使用qwt库

先配置好.pro文件&#xff0c;再去ui界面拖拽控件 ui界面会更改配置&#xff0c;故顺序错一个&#xff0c;就凉了&#xff0c;重来吧 准备&#xff1a;库&#xff0c;库头文件 库文件&#xff1a;路径如下 头文件&#xff1a;路径如下 鼠标->右键 &#xff08;有些不用勾…

『OpenCV-Python|鼠标作画笔』

Opencv-Python教程链接&#xff1a;https://opencv-python-tutorials.readthedocs.io/ 本文主要介绍OpenCV-Python如何将鼠标作画笔绘制圆或者矩形。 示例一&#xff1a;图片上双击的位置绘制一个圆圈 首先创建一个鼠标事件回调函数&#xff0c;鼠标事件发生时就会被执行。鼠标…

java客户端实现传文件,服务端用dto的属性MultipartFile类型接收

前言 2024年发的第一篇&#xff0c;哎 都说认识会变的&#xff0c;没错我就变了&#xff0c;23年发了2篇&#xff0c;24年估计也不会多&#xff0c;为什么呢&#xff1f;因为基本没有什么我不会的了&#xff0c;以前总感觉自己跟做了3~5年的开发技术差不多&#xff0c;现在我不…

uni-app 微信小程序之红包雨活动

文章目录 1. 页面效果2. 页面样式代码 1. 页面效果 GIF录屏有点卡&#xff0c;实际比较丝滑 每0.5s掉落一个红包控制4s后自动移除红包点击红包消除红包&#xff08;或者自行1&#xff0c;或者弹窗需求&#xff09; 2. 页面样式代码 <!-- 红包雨活动 --> <template>…

C++中map和set的使用

&#xff08;图片来源于网络&#xff09; &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;强烈推荐优质专栏: &#x1f354;&#x1f35f;&#x1f32f;C的世界(持续更新中) &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶…

SpringBoot整理-依赖注入

Spring Boot, 继承自 Spring 框架,提供了强大的依赖注入(Dependency Injection, DI)功能。这是一种编程技术,允许软件组件动态地接收它们的依赖项,而无需自己创建或查找它们。在 Spring Boot 中,这通常通过注解(Annotations)实现,使得应用的配置和依赖管理更加简洁和直…

力扣算法-Day20

541. 反转字符串II 给定一个字符串 s 和一个整数 k&#xff0c;从字符串开头算起&#xff0c;每计数至 2k 个字符&#xff0c;就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个&#xff0c;则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个&#xff0c…

【yaml 文件使用】pytest+request 框架中 yaml 配置文件使用

又来进步一点点~~ 背景&#xff1a;最近在学习pytestrequest框架写接口测试自动化&#xff0c;使用yaml文件配置更方便管理用例中的数据&#xff0c;这样更方便 yaml 介绍&#xff1a; 什么是 yaml 文件&#xff1a;YAML 是 “YAML Ain’t a Markup Language”&#xff08;Y…

一、对人工智能大模型了解与认知

黑8说 月黑风高&#xff0c;乌云密布&#xff0c;树木低垂&#xff0c;黯淡沉闷。这黎明前的风暴&#xff0c;预示着新时代的变革即将到来。 在一个8线小城市的办公室中 黑8对主任说&#xff1a; 世界上有男人、女人、人妖&#xff0c;米国有1/3男&#xff0c;2/3女…&#xff…

黑马程序员JavaWeb开发|Maven高级

一、分模块设计与开发 分模块设计&#xff1a; 将项目按照功能拆分成若干个子模块&#xff0c;方便项目的管理维护、扩展&#xff0c;也方便模块间的相互调用&#xff0c;资源共享。 注意&#xff1a;分模块开发需要先对模块功能进行设计&#xff0c;再进行编码。不会先将工…

比较两组相同构造结构的迭代次数

( A, B )---9*50*2---( 1, 0 )( 0, 1 ) 做一个网络分类A和B&#xff0c;让B全是0&#xff0c;让训练集A中只有9张图片&#xff0c;共有4个点。共有16种情况 迭代次数 迭代次数 1 - - - - - - - 1 9252.186 1 1 1 - - - - - - - 49334.66 9 1 - - - …

十款数据可视化工具横评:优缺点大揭秘

作为一位热衷于数据可视化的爱好者&#xff0c;我深知选择一款得心应手的数据可视化工具对于呈现数据的魅力至关重要。在市面上众多的数据可视化工具中&#xff0c;我精选了十款备受瞩目的产品&#xff0c;下面就为大家简单介绍一下它们的优缺点&#xff0c;以帮助大家进行选择…

CSS transition(过渡效果)详解

摘要&#xff1a;CSS 过渡效果是一种常见的美观技术&#xff0c;用于在元素状态变化时平滑地过渡。本文将详细介绍 CSS 过渡效果的语法、属性、使用场景以及实现动画效果的步骤。 一、CSS 过渡效果概述 CSS 过渡效果是一种改变元素属性的视觉效果&#xff0c;使得从一个状态到另…

解析dapp:从底层区块链看DApp的脆弱性和挑战

每天五分钟讲解一个互联网只是&#xff0c;大家好我是啊浩说模式Zeropan_HH 在Web3时代&#xff0c;去中心化应用程序&#xff08;DApps&#xff09;已成为数字经济的重要组成部分。它们的同生性&#xff0c;即与底层区块链网络紧密相连、共存亡的特性&#xff0c;为DApps带来…

区块空间----流动性铭文

铭文正在改变加密世界&#xff0c;越来越多的人开始关注铭文&#xff0c;并参与进来&#xff01;铭文赛道的未来是非常具有潜力和想象力的&#xff0c;甚至能够达到加密货币的普及水平。当然&#xff0c;这需要更多的基础设施更多的用例支持&#xff0c;但是一切都才刚刚开始。…

数据库之 基础概念、安装mysql、sql语句基础

数据库之 基础概念、安装mysql、sql语句基础 【一】存储数据的演变过程&#xff1a; 文件存储&#xff1a; 初始阶段随意存放数据到文件&#xff0c;格式任意。目录规范引入&#xff1a; 软件开发使用目录规范&#xff0c;限制数据位置&#xff0c;建立专门文件夹。本地数据存…

2024年华为OD机试真题-寻找身高相近的小朋友-Python-OD统一考试(C卷)

题目描述: 小明今年升学到小学一年级,来到新班级后发现其他小朋友们身高参差不齐,然后就想基于各小朋友和自己的身高差对他们进行排序,请帮他实现排序。 输入描述: 第一行为正整数H和N,0<H<200,为小明的身高,0<N<50,为新班级其他小朋友个数。 第二行为N个…

单片机学习笔记---独立按键控制LED状态

上一节学习的是独立按键控制LED亮灭 这一节我们先来讲一下按键的抖动&#xff1a; 对于机械开关&#xff0c;当机械触点断开、闭合时&#xff0c;由于机械触点的弹性作用&#xff0c;一个开关在闭合时不会马上稳定地接通&#xff0c;在断开时也不会一下子断开&#xff0c;所以…

基于51单片机智能电子秤

实物显示效果&#xff1a; https://www.bilibili.com/video/BV1Wb4y1A7Aw/?vd_source6ff7cd03af95cd504b60511ef9373a1d 功能介绍&#xff1a; &#xff08;1&#xff09;用键盘设计单价&#xff1b; &#xff08;2&#xff09;称重后同时显示该物品的重量、单价和总额&…