unity与Android的交互初接触

来源:互联网 发布:ubuntu安装中文界面 编辑:程序博客网 时间:2024/05/16 08:55
嵌入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" />)

<?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。

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);}}

8、之后导出jar包,右键工程->Export->Jar file。



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。

我的组件做的很随意,显得太小了)





如果有错,欢迎纠正。


附上老大的照片大笑

1 0
原创粉丝点击