VRTK简要说明

news/2024/11/18 11:50:20/

 1.导入VRTK开发包 ,下方三个为基础控件,用于识别硬件设备以及相关配置

 2.移动功能简介 

 

 3.ui交互事件,将VRTK_UICanvas 组件添加到Canvas下可用ui所有事件

1.问题容易出现ui穿透,所以在做的时候要防止穿透,最好不存在遮挡,将不需要用的ui缩小为0

2.问题动态ui添加事件容易出问题(例如滚动ui的button点击事件会出现ui绑定事件错乱,原因为ui层级发生变动,所以应该提前添加事件)

4.物体抓取、碰撞反馈:重写VRTK_InteractableObject,例如碰到该物体执行事件或者将物体丢出执行事件

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using VRTK;public enum Test_demo_chong_xie
{黑板擦,桌子}
/// <summary>
/// 切记 此脚本重写VRTK_InteractableObject ,所以被抓取对象不应再挂载 VRTK_InteractableObject
/// </summary>
public class Hei_ban_ca_zhuozi : VRTK_InteractableObject
{public Test_demo_chong_xie demo;/// <summary>/// 抓住物体 回调/// </summary>/// <param name="currentGrabbingObject"></param>public override void Grabbed(VRTK_InteractGrab currentGrabbingObject = null){base.Grabbed(currentGrabbingObject);print("拿起东西");if (demo == Test_demo_chong_xie.黑板擦){transform.GetChild(0).gameObject.SetActive(false);}}/// <summary>/// 丢掉物体 回调/// </summary>/// <param name="previousGrabbingObject"></param>public override void Ungrabbed(VRTK_InteractGrab previousGrabbingObject = null){base.Ungrabbed(previousGrabbingObject);print("丢掉东西");if (demo == Test_demo_chong_xie.黑板擦){transform.GetChild(0).gameObject.SetActive(true);switch (UIEvent.instance.di_or_gao_number){//dicase 1:transform.GetComponent<Ray_VR_3d_di_ji_bie_event>().Diu_hei_ban();break;//gaocase 2:transform.GetComponent<Ray_VR_3d_gao_ji_bie_event>().Diu_hei_ban_ca();break;default:break;}}}/// <summary>/// 接触物体 回调/// </summary>/// <param name="currentTouchingObject"></param>public override void StartTouching(VRTK_InteractTouch currentTouchingObject = null){base.StartTouching(currentTouchingObject);print("正在被敲打");if(demo== Test_demo_chong_xie.桌子){switch (UIEvent.instance.di_or_gao_number){//dicase 1:transform.GetComponent<Ray_VR_3d_di_ji_bie_event>().Pai_zhuo_zi();break;//gaocase 2:transform.GetComponent<Ray_VR_3d_gao_ji_bie_event>().Pai_zhuo_zi();break;default:break;}}}
}


http://www.ppmy.cn/news/372548.html

相关文章

VTK简介及教程

VTK Vtk&#xff0c;&#xff08;visualization toolkit&#xff09;是一个开源的免费软件系统&#xff0c;主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的&#xff0c;它的内核是用C构建的&#xff0c;包含有大约250,000行代码&#…

VTK使用

入门参考的这篇&#xff08;修改了很多&#xff09;&#xff1a;QT加载显示DICOM文件浏览 但还是必须在main()中先读文件再show&#xff0c;先show了再打开文件是黑的显示不出来&#xff08;后续再查&#xff09;。 //.h中要加入 #include <vtkAutoInit.h> VTK_MODULE_I…

vtk介绍

VTK&#xff08;visualization toolkit&#xff09;是一个开源的免费软件系统&#xff0c;主要用于三维计算机图形学、图像处理和科学计算可视化。VTK是在三维函数库OpenGL 的基础上采用面向对象的设计方法发展起来的&#xff0c;它将我们在可视化开发过程中会经常遇到的细节屏…

关于VTK

什么是VTK&#xff1f; Vtk&#xff08;visualization toolkit&#xff09;是一个开源的免费软件系统&#xff0c;主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的&#xff0c;它的内核是用C构建的&#xff0c;包含有大约250,000行代码…

vtkPropPicker拾取功能

拾取一个对象,拾取的是这个对象所在的actor,所以如果想让不同的对象分开被拾取,一个对象就要创建一个actor。 vtkPropPicker 硬件拾取,只能返回位置信息 vtkAreaPicker 实现框选功能,拾取函数需要XMIN XMAX YMIN YMAX vtkPicker 通过物体的bounding box 拾取:相机和点之间…

VTK配置

提示&#xff1a;对编译过程迷糊的小白——VTK安装记录 文章目录 前言一、准备工作 1.下载最新版VTK&#xff08;尽可能用最新版&#xff0c;我试过其他的&#xff0c;在cmake过程中选择64位&#xff0c;出现了一些问题&#xff09;2.下载与本机匹配的cmake(我是Windows 64)二、…

ICP in VTK

提要 今天要研究的是关于图像配准的问题&#xff0c;图像配准是图像处理研究领域中的一个典型问题和技术难点&#xff0c;其目的在于比较或融合针对同一对象在不同条件下获取的图像&#xff0c;例如图像会来自不同的采集设备&#xff0c;取自不同的时间&#xff0c;不同的拍摄视…

VTK -SurfaceReconstruction

链接&#xff1a; 1.https://blog.csdn.net/hw140701/article/details/52796290 2.https://blog.csdn.net/HopefulLight/article/details/79157144?utm_sourceblogxgwz6 经典的Signed Distance Function重建算法主要流程如下&#xff1a; 1、对每个数据点&#xff0c;搜索其邻…