unity與Android的互動初接觸
阿新 • • 發佈:2019-02-18
嵌入sdk是比較常見的吧,如接入廣告啊,新浪的分享......
這些都需要接入sdk的,現在我們從最基本的做吧,其實這些和什麼引擎都是沒多大關係的,不管是unity,還是cosos2d...... 說白了,這些就是和移動平臺有關係,ios,android,wp8啊。
我這篇文章實現Unity打電話一個簡單的案例!下面開始吧:
1、開啟你電腦中的eclipse軟體
2、新建一個Android專案,我畫紅圈的地方請注意,包名要記好之後要用,最小版本選4.0.以上,之後一路next新建專案直到finish。
3、之後在你的電腦中找到一個叫做classes.jar的檔案,我的unity是unity5.2,對應的路徑是D:\unity\Editor\Data\PlaybackEngines\androidplayer\Variations\mono\Release\Classes。其中unity自從升級後,classes.jar從原來的一個變成了多個,例如我的電腦裡D:\unity\Editor\Data\PlaybackEngines\androidplayer\Variations\il2cpp\Release\Classes裡面也有一個,這就要看你做什麼了,是mono就用上面那個路徑的,是il2cpp就用下面那個路徑的,具體這兩個有什麼區別,請自行百度。
4、將classes.jar直接拖拽至bin當中。
5、右鍵新增至構造路徑。
6、進行程式碼編寫首先開啟AndroidManifest.xml,因為要打電話,所以新增撥號許可權。(<uses-permission
android:name="android.permission.CALL_PHONE" />)
7、進行程式碼編寫MainActivity。
9、unity建立如下圖檔案結構(照做哦)。 10、將eclipse匯出的jar包拖入unity裡面新建的bin資料夾裡。 11、將eclipse工程中的AndroidManifest.xml也拖進unity的Android資料夾中。 12、其實eclipse工程裡面的res檔案也是要拖到unity裡面Android資料夾下的,只是我做的這個暫時用不到res裡面的資源,所以用unity修改一下AndroidManifest.xml的內容,如下:android:theme="@android:style/Theme.NoTitleBar"
android:icon="@drawable/app_icon"
android:label="@string/app_name",這樣就不需要res了。
13、unity裡面新建一個指令碼,來呼叫java類。
15、匯出apk,切記匯出時的包名必須和eclipse工程的包名一致!!
16、在真機上安裝apk。 (我的元件做的很隨意,顯得太小了) 如果有錯,歡迎糾正。 附上老大的照片:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hjc.call" android:versionCode="1" android:versionName="1.0" > <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
7、進行程式碼編寫MainActivity。
8、之後匯出jar包,右鍵工程->Export->Jar file。package com.hjc.call; import com.unity3d.player.UnityPlayerActivity; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; public class MainActivity extends UnityPlayerActivity { Activity activity = null; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public void call(String str) { Intent tt = new Intent(); tt.setAction(Intent.ACTION_CALL); tt.setData(Uri.parse("tel:"+ str)); startActivity(tt); } }
9、unity建立如下圖檔案結構(照做哦)。 10、將eclipse匯出的jar包拖入unity裡面新建的bin資料夾裡。 11、將eclipse工程中的AndroidManifest.xml也拖進unity的Android資料夾中。 12、其實eclipse工程裡面的res檔案也是要拖到unity裡面Android資料夾下的,只是我做的這個暫時用不到res裡面的資源,所以用unity修改一下AndroidManifest.xml的內容,如下:android:theme="@android:style/Theme.NoTitleBar"
android:icon="@drawable/app_icon"
android:label="@string/app_name",這樣就不需要res了。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hjc.call"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:theme="@android:style/Theme.NoTitleBar"
android:icon="@drawable/app_icon"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
13、unity裡面新建一個指令碼,來呼叫java類。
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class test : MonoBehaviour {
public InputField shuru;
public void callPrint() {
AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject> ("currentActivity");
jo.Call ("call", shuru.text);
}
}
14、配置號碼填寫框和一個button,並配置其關係,這一步明白unity的實現很簡單。
15、匯出apk,切記匯出時的包名必須和eclipse工程的包名一致!!
16、在真機上安裝apk。 (我的元件做的很隨意,顯得太小了) 如果有錯,歡迎糾正。 附上老大的照片: