Unity调安卓震动

一、编写安卓代码导出jar包,把jar包放到Unity工程Plugins/Android

package com.mekey.vibrator_as;

import android.app.Activity;
import android.app.Service;
import android.os.Vibrator;

public class Vibrator_as {

    public static void getVibrator(Activity activity, long milliseconds) {
        Vibrator vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
        vib.vibrate(milliseconds);
    }

}

二、Unity编写代码调用

using UnityEngine;
public class UnityCallAndroidVibrator : MonoBehaviour
{
    private void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            getAndroidVibrator(100);
        }
    }
    
    /// <summary>
    /// 安卓震动
    /// </summary>
    /// <param name="vibratorTime">震动时常 毫秒</param>
    private void getAndroidVibrator(long vibratorTime)
    {
        AndroidJavaClass jc = new AndroidJavaClass("com.mekey.vibrator_as.Vibrator_as");
        jc.CallStatic("getVibrator", getUnityContext(), vibratorTime);
    }

    /// <summary>
    /// 获取当前Activity
    /// </summary>
    /// <returns></returns>
    private AndroidJavaObject getUnityContext()
    {
        AndroidJavaClass unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject unityActivity = unityClass.GetStatic<AndroidJavaObject>("currentActivity");
        return unityActivity;
    }


    /// <summary>
    /// 如果项目中有AndroidMainfest.xml,需要添加震动权限
    /// 如果项目中没有xml文件  Handheld.Vibrate(); 打包时候会自动添加震动权限
    /// UntiyVibrator() 方法 无需调用
    /// </summary>
    void UntiyVibrator()
    {
        Handheld.Vibrate();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值