引言:
在做应用或游戏开发的时候,有时候我们会需要让设备有明显的响应输出以增强交互效果,常见的有:音频输出、屏幕闪烁和手机震动,这里我们就来实现以下如何在Unity中调用安卓和苹果手机的震动接口。
实现步骤:
调用接口:
Unity中提供了两个接口,分别对应于android
和iPhone
设备:
- 安卓设备接口:
Handheld.Vibrate()
- 苹果设备接口:
iPhoneUtils.Vibrate()
然而,在实践中发现,iPhoneUtils.Vibrate()
这个接口已经过时了,都集成到Handheld.Vibrate()
中,所以无需做平台判断。
时序修改:
Unity的API中调用一次 Vibrate()
的震动时长是0.5s
震动周期缩短:
无法设置其时间为更短的时间,除非自己使用Android原生的Java重新定义一个Vibrate接口,修改器时长,然后打包成Android SDK导入到Unity中使用;iPhone设备也可以使用类似的方式,以SDK的形式自定义此接口。
(源自Unity官方回答:Handheld.Vibrate() duration)振动周期增长:
其实也不算是修改震动时间长度,而是通过自定义一个定时器,然后定时重复调用Vibrate()
来实现的,大致代码如下://调用震动接口的周期 float timer = 0.5f; void update(){ if(timer >0){ timer -= Time.deltaTime; }else{ timer = 0.5f; Handheld.Vibrate(); } }