[Unity3D] Unity + Androidインタラクティブチュートリアル-携帯電話の振動時間が元の0.5秒未満



Unity Android Interactive Tutorial Mobile Phone Vibration Time Is Less Than Original 0



****

****



元のエントリ 著作権 著者 すべて(ポーターがこのリソースを検索するのが難しすぎる理由は0.0です)
効果:ここに示されているUnityは、Androidネイティブメソッドを呼び出してUnityインターフェースのボタンをクリックし、電話の振動を実現します。

最も基本的な相互作用については、この記事を参照してください。 UnityとAndroidの基本的な相互作用 そして、これに基づいて、実際には、ほとんど携帯電話の振動を達成します!それは繰り返されるかもしれません、自己統合するとき、へへ!



試験方法:実機で試験する必要があります! ! !

実装手順:

まず、Androidプロジェクトを作成します
1.プロジェクトを作成します
画像
画像
画像
画像 2.Unity関連のjarをインポートします



Jarディレクトリ:classes.jarの下のunity Editor Data PlaybackEngines androidplayer binのインストールディレクトリ

画像
3. MainActivity.javaを開き、さまざまなパッケージをインポートして、独自の関数を作成します。

[java] プレーンコピープリントを表示しますか?

package com.example.clickshake import android.os.Bundle import com.unity3d.player.UnityPlayerActivity import android.app.Service Import android.os.Vibrator //Vibrating package public class MainActivity extends UnityPlayerActivity { Private Vibrator mVibrator01 / / declare a vibrator object @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState) } / / vibration function public void ClickShake() { mVibrator01 = (Vibrator)getApplication().getSystemService(Service.VIBRATOR_SERVICE) mVibrator01.vibrate(new long[]{100,10,100,1000},-1)//Customize the whole building mode, only shake once } / / determine the size public int Max(int a,int b) { if(a>b) return a return b } }

unityActivityを追加し、MainActivityにUnityPlayerActivityを継承させ、SetContentView関数を削除します(そうしないと、電話でプログラムを起動したときにのみHelloWorldが表示されます)。これが2つの自己定義関数です。主なものは、上記のパラメータなしの呼び出しです。バイブレーターのカスタム関数には、比較サイズのパラメーターを持つ戻り値を持つ関数があります。ここでは、比較のために2つの異なる関数がUnityで呼び出されます。

4. XMLを変更し、振動する権限を追加します

バイブレーションの権限を追加するには、AndroidManifest.xmlを選択し、[権限]-> [ユーザー権限の追加]-> [android.perssion.VIBRATE]をクリックします。
画像

5.jarパッケージをエクスポートします

プロジェクトルートを右クリック->エクスポートして、ここに画像の説明を挿入します
画像
[完了]をクリックして終了します。

次に、Unityプロジェクトを作成します

1.アセットの下にPlugins / Androidフォルダーを作成します。このフォルダーは、Androidインターフェースを呼び出すためにAndroidパッケージファイルを保存するために使用される特別なフォルダーです。

ファイルのxml、jar、res、libsファイルをAndroidファイルの下に置きます
画像

2.Androidコードを呼び出すUnityを作成します

[Cシャープ] プレーンコピープリントを表示

using UnityEngine using System.Collections public class NewBehaviourScript : MonoBehaviour { private AndroidJavaObject activity private int res = 0 // Use this for initialization void Start () { AndroidJavaClass jc=new AndroidJavaClass('com.unity3d.player.UnityPlayer') activity = jc.GetStatic('currentActivity') res = activity.Call('Max', new object[] { 10, 20 }) } void OnGUI() { GUI.Label(new Rect(20, 20, 300, 20), 'The Android method called: Find the larger number in 10 and 20 is '+res.ToString()) GUI.Label(new Rect(20, 70, 300, 20), 'http://blog.csdn.net/dingxiaowei2013') If ( GUI.Button(new Rect(Screen.width / 2 - 20, Screen.height / 2 + 20, 100, 40), 'Click to vibrate')) { activity.Call('ClickShake') } } }

AndroidJavaObjectはJavaオブジェクトであり、これがJavaビューであることを説明してから、カスタムメソッドを呼び出します。

(注:ここでのパラメーターの最初の理解は、「com.unity3d.player.UnityPlayer」および「currentActivity」に入力されます。これは、jarファイルの生成時に、MainActivityクラスがUnityPlayerActivityを継承するように指定されており、これもXMLで指定されているためです。 MainActivityはメインクラスです)

activity.Call( ''、 '')このメソッドは戻り値のあるメソッド、intは戻り値の型、activity.Call( '')はパラメーターなしで値を返さないメソッドです。

3.設定のエクスポート(重要)

画像

4.実機テスト

スクリーンショットはアップロードしません。おそらく、クリックして電話を振動させることができるボタンと、10と20の比較の結果の値を示すラベルです。