请选择 进入手机版 | 继续访问电脑版

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย

签名
叶凡
22GS

[技术干货] Unity3D技术之3DTouch实现

[复制链接]

Unity3D技术之3DTouch实现

发表于 2021-12-28 11:09:25 来自 技术干货 阅读模式 倒序浏览
939 0 查看全部
近把3DTouch功能加入到游戏中了,调研了一下,其实挺方便了。
代码很简单,如下代码所示,判断当前手机是被是否支持3DTouch ,在Update中获取压力的大小,接着就能做逻辑了。
  1.         //压力的取值在0F-6.xF之间,我们测试4F是个不错的力度
  2.         c**t float PRESSURE_MAX = 4F;
  3.         void Update ()
  4.         {
  5.             if (Input.touchPressureSupported) {
  6.                 if (Input.touchCount > 0) {
  7.                     Touch touch = Input.GetTouch (0);
  8.                     if (touch.pressure >= PRESSURE_MAX) {
  9.                         //触发3dtouch
  10.                     }
  11.                 }
  12.             }
  13.             #if UNITY_EDITOR
  14.             //editor下用鼠标右键来模拟
  15.             if (Input.GetMouseButtonDown (1)) {
  16.             } else if (Input.GetMouseButtonUp (1)) {
  17.             } else if (Input.GetMouseButton (1)) {
  18.             }
  19.             #endif
  20.         }
复制代码


Android应该有些手机也支持3DTouch功能。
唯一需要注意的是,当触发3DTouch的时候希望有一个震动的反馈,Unity提供了一个震动的方法 Handheld.Vibrate(); 但是震动的效果不好,因为它是长震动,3DTouch震动应该是短震动。所以这时候播放短震需要调用到oc的代码去播放短震动。
  1. #import ‹AudioToolbox/AudioServices.h>
  2. AudioServicesPlaySystemSound(1520);
复制代码


OK 这就完美了。



来源:网络转载
回复

使用道具 举报

游客~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|极客同行 ( 蜀ICP备17009389号-1 ) 川公网安备 51019002006459号

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4