雕刻笔应用开发,3D Systems Openhaptics Unity Plugin插件使用心得
雕刻笔应用开发,3D Systems Openhaptics Unity Plugin插件使用心得
驱动安装:
1、根据设备型号下载对应驱动。
https://3dssupport.microsoftcrmportals.com/knowledgebase/article/KA-01460/en-us
进入官网,下载驱动:
2、如果是1394接口,安装Phantom_Device_Drivers_5.1.7_Release:
如果是USB接口,安装Touch_Device_Driver:
3、驱动安装完成后,以管理员身份打开PHANToM Configuration:
点击Add,添加一个新的名字:Default Device,然后应用。
导入插件
1、在Unity商店搜索3D Systems Openhaptics Unity Plugin,下载导入工程:
给笔添加力
运行后把Haptic Plugin 脚本上的Physics Manipulation Enable勾上。(这个选项运行后会自动关闭,要用代码更改)
按钮按下事件
(国产设备两个按钮相同效果)
hapticDevice.GetComponent().Buttons [buttonID] == 1
触碰效果
通常,物体只要改成Touchable标签就有触摸阻挡效果了,如果物体加上了刚体,标签是什么都可以触碰和拿起来。但是有一点需要注意:Touchable标签的物体是根据Mesh Filter来触碰的,非Touchable标签的物体是根据碰撞体来触碰的。
遥控笔移动区域:
在HapticDeviceWithGrabber下的HapticDevice,修改其缩放,就可以改变移动区域了
Touchable标签的物体由HapticPlugin和HapticGrabber脚本检测到后才起作用的,但检测函数只在运行开始时执行一次。
如果在游戏运行之后添加Touchable标签物体,就需要手动去调用检测函数,分别为:
HapticPlugin里的setupShapes();
HapticGrabber里的disableUnityCollisions();
这两个函数是私有的,要在外面调用,可以自己新建一个公开的方法。
2D光标
在HapticDeviceWithGrabber下的HapticDevice中添加HapticMouse脚本
把光标指针挂在Haptic Mouse脚本上的Cursor处,相机也要挂上:
这个HapticMouse脚本默认是按下每帧执行一次,如果想做成只在按下瞬间执行一次,可以改成如下:
相机旋转
把相机拖到HapticDeviceWithGrabber下,新建一个游戏对象,在其身上挂上CameraRotate脚本。新建两个Image,改名为CameraLeft、CameraRight;放置于屏幕两侧。
抓取的物体
HapticGrabber脚本下
touching:仅靠刚体和碰撞器抓取的物体
grabbing:标签为Touchable的物体
HapticPlugin脚本下的(HapticGrabber脚本下的标签触碰物体是从这里获取的)
touching:可触碰物体
抓取物体时,晃动厉害,可以把物体标签改为非Touchable:
获取触控笔当前碰到的物体
触控笔圆球碰到那个物体就输出那个物体的名字,不用点击按钮,代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Now_Obj : MonoBehaviour
{public HapticPlugin hapticPlugin;private GameObject gameObj;//触控笔当前碰到的物体void Start(){}void Update(){gameObj = hapticPlugin.touching;if(gameObj != null){print ("抓取物:" + gameObj);}}
}
雕刻笔应用开发,3D Systems Openhaptics Unity Plugin插件使用心得相关推荐
- Mac Android开发提升效率的工具、插件、心得集锦(gif动画演示)
首先附上思维导图,之后我的文章大部分都会附上思维导图,感觉思维导图不仅能帮助我梳理文章思路,也能起到个目录作用.图片比较多,加载时间可能会长点. 首先是Android studio插件 1.Butte ...
- Unity3D开发HTC VIVE项目中插件HTC.Input.Utility.Plugin插件的运用
这是基于SteamVR基础之上的一款插件,再获得硬件设备上比之前单独使用steamVR方便很多. 比如,之前我们获得硬件设备是这样的:首先写一个如下图的脚本,挂在CameraRig的手柄上(看需要那个 ...
- unity 3d游戏开发_使用Unity 5开发3D游戏
unity 3d游戏开发 If there's one thing cooler than playing games, it's building games. 如果有比玩游戏更酷的一件事,那就是构 ...
- ZBrush 3D雕刻笔刷已经准备好了,将你脑海中所想的创造出来
ZBrush给用户提供了上百种用于雕刻的笔刷(3.1版本只有30多种),尝试使用ZBrush笔刷之后,用户即可以了解到ZBrush的雕刻功能是如此的强大.那种雕刻的笔触感觉相当自然,甚至数十亿多边形的 ...
- Unity 3D 资源下载 || Unity 3D 综合案例
Unity 3D 资源下载 你也可以在 Unity 3D 中执行 Window → Asset Store 菜单命令直接访问 Unity 资源商店(Asset Store). Unity 资源商店简介 ...
- [推荐]C#快速开发3d游戏工具--Unity3d
最近有幸接触了一点Unity3d的东西,和大家分享一下. Unity3d 简介 是一款可视化的,3d游戏开发软件.可以进行手动绘制3d场景,自己添加摄像机角度,3d模型设计,事件触发,对于园子里大家很 ...
- Code in C# and build 3D games with Unity读书笔记
Code in C# and build 3D games with Unity读书笔记 变量 •从概念上讲,变量是编程的最基本单位,就好比原子,一切都基于变量,没有变量,程序就可能存在. •从技术角 ...
- Unity开发(一).Unity基础以及开发环境搭建
1. Unity基础知识概括 1)初识 Unity 由 Unity Technologies开发,创建三维视频游戏,建筑可视化及实时三维动画等互动内容的多平台的综合性开发工具. 编辑器运行平台:Win ...
- Unity 3D 物理引擎简介 || Unity 3D 物理材质|| Unity 3D 力(AddForce)
Unity 3D 物理引擎简介 早期的游戏并没有强调物理引擎的应用,当时无论是哪一种游戏,都是用极为简单的计算方式做出相应的运算就算完成物理表现,如超级玛丽和音速小子等游戏. 较为常见的物理处理是在跳 ...
最新文章
- Mysql函数:Last_insert_id()语法讲解
- Chapter10:观察者模式
- RHEL6.3配置Apache服务器(4) 基于用户的访问控制
- socket(套接字)详解一种通讯机制
- C++若不想使用编译器自动生成的函数,就该明确拒绝
- 如何在Windows 10中将您喜欢的设置固定到开始菜单
- 市直系统推荐市级以上表彰的_推荐市级以及以上教学方面表彰的细则
- CCF201312--模拟练习试题参考答案(Java)
- 5.1 Attention(注意力)概述 原理、作用、计算流程
- Atitit.论图片类型 垃圾文件的识别与清理 流程与设计原则 与api概要设计 v2 pbj
- 电子商务概论【0351】
- Eplan教程——利用在线帮助系统解读项目检查错误消息
- java单继承多实现_单继承,多实现
- GDrive is here
- 一个链表L 一个链表P 包含升序排列的整数 操作PrintLots(L,P)将打印L中那些由P所指定的位置上的元素
- Android使用WebView将网页打包成APP
- 手机打印文件怎么打印出来,如何用手机打印文件
- Matlab基于颜色的车牌识别
- android 自动锁屏设置,如何才能使安卓手机不自动锁屏?改成自动黑屏,谢谢
- 【Excel 教程系列第 6 篇】制作斜线表头
热门文章
- element-ui:message组件实现
- 新电脑不显示文件后缀名/文件扩展名
- Linux实验3 服务与进程的管理实验报告(部分英文)
- 【密码学原理与实践】(三)仿射密码 符java代码实现
- SQL server查询本条数据的下一条数据,上一条数据,及其对应的值,SQL语句示例。
- 【经验分享】转行如何自学Python并且找到工作,分享一波自己心得体会
- 总是弹出visual studio 实时调试器 三种解决办法
- 全球及中国滚珠轴承抽屉滑轨行业研究及十四五规划分析报告
- unsupported operand types php,致命错误: Unsupported operand types
- CFA,CPA,FRM 区别