首页 >Unity3D频道 >【Unity杂文】 > Unity3D研究院之3DTouch
2018
02-03

Unity3D研究院之3DTouch

最近把3DTouch功能加入到游戏中了,调研了一下,其实挺方便了。

代码很简单,如下代码所示,判断当前手机是被是否支持3DTouch ,在Update中获取压力的大小,接着就能做逻辑了。

		//压力的取值在0F-6.xF之间,我们测试4F是个不错的力度
		const float PRESSURE_MAX = 4F;
		void Update () 
		{
			if (Input.touchPressureSupported) {
				if (Input.touchCount > 0) {
					Touch touch = Input.GetTouch (0);
					if (touch.pressure >= PRESSURE_MAX) {
						//触发3dtouch
					} 
				}
			}
			#if UNITY_EDITOR
			//editor下用鼠标右键来模拟
			if (Input.GetMouseButtonDown (1)) {
			} else if (Input.GetMouseButtonUp (1)) {
			} else if (Input.GetMouseButton (1)) {
			}
			#endif
		}

Android应该有些手机也支持3DTouch功能。

唯一需要注意的是,当触发3DTouch的时候希望有一个震动的反馈,Unity提供了一个震动的方法 Handheld.Vibrate(); 但是震动的效果不好,因为它是长震动,3DTouch震动应该是短震动。所以这时候播放短震需要调用到oc的代码去播放短震动。

#import <AudioToolbox/AudioServices.h> 
AudioServicesPlaySystemSound(1520);

OK 这就完美了。

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

留下一个回复

你的email不会被公开。 必填项已用 * 标注。