unity--3DTouch与手机短震

微生运浩
2023-12-01

判断当前手机是被是否支持3DTouch ,在Update中获取压力的大小,接着就能做逻辑了。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

//压力的取值在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的代码去播放短震动。

1

2

#import <AudioToolbox/AudioServices.h>

AudioServicesPlaySystemSound(1520);

 

 类似资料: