雕刻笔应用开发,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插件使用心得相关推荐

  1. Mac Android开发提升效率的工具、插件、心得集锦(gif动画演示)

    首先附上思维导图,之后我的文章大部分都会附上思维导图,感觉思维导图不仅能帮助我梳理文章思路,也能起到个目录作用.图片比较多,加载时间可能会长点. 首先是Android studio插件 1.Butte ...

  2. Unity3D开发HTC VIVE项目中插件HTC.Input.Utility.Plugin插件的运用

    这是基于SteamVR基础之上的一款插件,再获得硬件设备上比之前单独使用steamVR方便很多. 比如,之前我们获得硬件设备是这样的:首先写一个如下图的脚本,挂在CameraRig的手柄上(看需要那个 ...

  3. unity 3d游戏开发_使用Unity 5开发3D游戏

    unity 3d游戏开发 If there's one thing cooler than playing games, it's building games. 如果有比玩游戏更酷的一件事,那就是构 ...

  4. ZBrush 3D雕刻笔刷已经准备好了,将你脑海中所想的创造出来

    ZBrush给用户提供了上百种用于雕刻的笔刷(3.1版本只有30多种),尝试使用ZBrush笔刷之后,用户即可以了解到ZBrush的雕刻功能是如此的强大.那种雕刻的笔触感觉相当自然,甚至数十亿多边形的 ...

  5. Unity 3D 资源下载 || Unity 3D 综合案例

    Unity 3D 资源下载 你也可以在 Unity 3D 中执行 Window → Asset Store 菜单命令直接访问 Unity 资源商店(Asset Store). Unity 资源商店简介 ...

  6. [推荐]C#快速开发3d游戏工具--Unity3d

    最近有幸接触了一点Unity3d的东西,和大家分享一下. Unity3d 简介 是一款可视化的,3d游戏开发软件.可以进行手动绘制3d场景,自己添加摄像机角度,3d模型设计,事件触发,对于园子里大家很 ...

  7. Code in C# and build 3D games with Unity读书笔记

    Code in C# and build 3D games with Unity读书笔记 变量 •从概念上讲,变量是编程的最基本单位,就好比原子,一切都基于变量,没有变量,程序就可能存在. •从技术角 ...

  8. Unity开发(一).Unity基础以及开发环境搭建

    1. Unity基础知识概括 1)初识 Unity 由 Unity Technologies开发,创建三维视频游戏,建筑可视化及实时三维动画等互动内容的多平台的综合性开发工具. 编辑器运行平台:Win ...

  9. Unity 3D 物理引擎简介 || Unity 3D 物理材质|| Unity 3D 力(AddForce)

    Unity 3D 物理引擎简介 早期的游戏并没有强调物理引擎的应用,当时无论是哪一种游戏,都是用极为简单的计算方式做出相应的运算就算完成物理表现,如超级玛丽和音速小子等游戏. 较为常见的物理处理是在跳 ...

最新文章

  1. Mysql函数:Last_insert_id()语法讲解
  2. Chapter10:观察者模式
  3. RHEL6.3配置Apache服务器(4) 基于用户的访问控制
  4. socket(套接字)详解一种通讯机制
  5. C++若不想使用编译器自动生成的函数,就该明确拒绝
  6. 如何在Windows 10中将您喜欢的设置固定到开始菜单
  7. 市直系统推荐市级以上表彰的_推荐市级以及以上教学方面表彰的细则
  8. CCF201312--模拟练习试题参考答案(Java)
  9. 5.1 Attention(注意力)概述 原理、作用、计算流程
  10. Atitit.论图片类型 垃圾文件的识别与清理  流程与设计原则 与api概要设计 v2 pbj
  11. 电子商务概论【0351】
  12. Eplan教程——利用在线帮助系统解读项目检查错误消息
  13. java单继承多实现_单继承,多实现
  14. GDrive is here
  15. 一个链表L 一个链表P 包含升序排列的整数 操作PrintLots(L,P)将打印L中那些由P所指定的位置上的元素
  16. Android使用WebView将网页打包成APP
  17. 手机打印文件怎么打印出来,如何用手机打印文件
  18. Matlab基于颜色的车牌识别
  19. android 自动锁屏设置,如何才能使安卓手机不自动锁屏?改成自动黑屏,谢谢
  20. 【Excel 教程系列第 6 篇】制作斜线表头

热门文章

  1. element-ui:message组件实现
  2. 新电脑不显示文件后缀名/文件扩展名
  3. Linux实验3 服务与进程的管理实验报告(部分英文)
  4. 【密码学原理与实践】(三)仿射密码 符java代码实现
  5. SQL server查询本条数据的下一条数据,上一条数据,及其对应的值,SQL语句示例。
  6. 【经验分享】转行如何自学Python并且找到工作,分享一波自己心得体会
  7. 总是弹出visual studio 实时调试器 三种解决办法
  8. 全球及中国滚珠轴承抽屉滑轨行业研究及十四五规划分析报告
  9. unsupported operand types php,致命错误: Unsupported operand types
  10. CFA,CPA,FRM 区别