【移動應(yīng)用開發(fā)技術(shù)】Unity調(diào)用Android類方法_第1頁
【移動應(yīng)用開發(fā)技術(shù)】Unity調(diào)用Android類方法_第2頁
【移動應(yīng)用開發(fā)技術(shù)】Unity調(diào)用Android類方法_第3頁
【移動應(yīng)用開發(fā)技術(shù)】Unity調(diào)用Android類方法_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

【移動應(yīng)用開發(fā)技術(shù)】Unity調(diào)用Android類方法

1.

添加Unity的classes.jar文件創(chuàng)建一個Android工程AndroidUnityDemo。由于Unity的版本不同,直接在Unity安裝包文件夾里面搜索classes.jar文件,如果有多個classes.jar文件,一般選擇的是mono/Release文件夾下的classes.jar文件。將classes.jar文件放在app文件下的libs文件夾下。

然后,更新一下。

2.

編寫Android類打開MainActivity.java類,讓MainActivity類繼承于UnityPlayerActivity類,如果提示類不存在,說明unity的classe.jar文件沒有加載進來。刪除setContentView(R.layout.activity_main);MainActivity.java

1

package

com.xxxxxx.androidunitydemo;

2

3

import

android.os.Bundle;

4

import

android.util.Log;

5

6

import

com.unity3d.player.UnityPlayerActivity;

7

public

class

MainActivity

extends

UnityPlayerActivity

{

8

@Override

9

protected

void

onCreate(Bundle

savedInstanceState)

{10

super.onCreate(savedInstanceState);11

}12

public

void

test1()13

{14

Log.v("Android_Unity",

"no

return

value

and

no

parameter");15

}16

public

String

test2()17

{18

Log.v("Android_Unity","have

return

value

and

no

parameter");19

return

"Hello

Unity";20

}21

public

void

test3(String

par)22

{23

Log.v("Android_Unity","no

return

value

and

have

parameter");24

Log.v("Android_Unity",par);25

}26

public

String

test4(String

par)27

{28

Log.v("Android_Unity","have

return

value

and

have

parameter");29

Log.v("Android_Unity",par);30

return

"Hello

Unity";31

}32

public

static

void

test5()33

{34

Log.v("Android_Unity",

"static

function");35

}36

}3.

打包成arr文件打開build.gradle文件,將apply

plugin:

‘com.android.application’修改為apply

plugin:

‘com.android.library’,將applicationId

‘com.XXXXXX.androidunitydemo’刪除。Build.gradle

1

apply

plugin:

'com.android.library'

2

android

{

3

compileSdkVersion

23

4

buildToolsVersion

"23.0.3"

5

defaultConfig

{

6

minSdkVersion

15

7

targetSdkVersion

23

8

versionCode

1

9

versionName

"1.0"10

}11

buildTypes

{12

release

{13

minifyEnabled

false14

proguardFiles

getDefaultProguardFile('proguard-android.txt'),

''15

}16

}17

}18

dependencies

{19

compile

fileTree(dir:

'libs',

include:

['*.jar'])20

testCompile

'junit:junit:4.12'21

compile

'com.android.support:appcompat-v7:23.4.0'22

}如果不用在Unity中添加Android的res文件的話,將AndroidManifest文件中使用res的部分刪除。修改AndroidManifest.xml文件,加入android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">與<meta-dataandroid:name="unityplayer.UnityActivity"android:value="true"/>AndriodManifest.xml<?xml

version="1.0"

encoding="utf-8"?><manifest

xmlns:android="/apk/res/android"

package="com.xxxxxx.androidunitydemo"

android:versionCode="1"

android:versionName="1.0"

>

<uses-sdk

android:minSdkVersion="15"

android:targetSdkVersion="23"

/>

<application

android:allowBackup="true"

android:label="AndroidUnityDemo"

android:supportsRtl="true"

>

<activity

android:name="com.xxxxxx.androidunitydemo.MainActivity"

android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">

<intent-filter>

<action

android:name="ent.action.MAIN"

/>

<category

android:name="ent.category.LAUNCHER"

/>

</intent-filter>

<meta-data

android:name="unityplayer.UnityActivity"

android:value="true"

/>

</activity>

</application></manifest>打包文件,點擊Build->Build

Apk,點擊Show

in

Explorer,打開arr文件所在文件夾,點擊outputs->arr,就可以看到app-debug.arr壓縮包。4.

創(chuàng)建一個簡單場景創(chuàng)建一個Unity項目名為UnityAndroidDemo。點擊File->BuildSetting,點擊Android,在點擊Switchplatform按鈕,進行平臺轉(zhuǎn)換,點擊PlayerSettings,在Inspector會看到具體內(nèi)容,點擊OtherSettings,找到Identification中的BundleIdentifier,將其內(nèi)容修改成Adnroid的packageName,也就是AndroidManifext.xml文件中package的值。點擊File->SaveScene,保存場景。5.

將AndroidManifest.xml與arr文件加入到Unity項目中在Project里創(chuàng)建文件夾Plugins,在文件夾Plugins文件夾里創(chuàng)建文件夾Android,將app-debug.arr文件解壓,將其中的classes.jar文件與AndroidManifest.xml文件取出來放入Unity的Android文件夾下。

6.

調(diào)用Android類打開MainCamera,點擊AddComponent->NewScript,創(chuàng)建一個c#文件,點擊CreateandAdd。

打開NewBehaviourScript.cs文件,進行編寫。

1

using

UnityEngine;

2

using

System.Collections;

3

4

public

class

NewBehaviourScript

:

MonoBehaviour

{

5

//

Use

this

for

initialization

6

void

Start

()

{

7

}

8

//

Update

is

called

once

per

frame

9

void

Update

()

{10

if

(Input.GetKey(KeyCode.Escape))11

Application.Quit();12

}13

void

OnGUI()14

{15

if

(GUILayout.Button("NoReturnValueAndNoParameter"))16

{17

AndroidJavaClass

jc

=

new

AndroidJavaClass("com.unity3d.player.UnityPlayer");18

AndroidJavaObject

jo

=

jc.GetStatic<AndroidJavaObject>("currentActivity");19

jo.Call("test1");20

}21

if

(GUILayout.Button("HaveReturnValueAndNoParameter"))22

{23

AndroidJavaClass

jc

=

new

AndroidJavaClass("com.unity3d.player.UnityPlayer");24

AndroidJavaObject

jo

=

jc.GetStatic<AndroidJavaObject>("currentActivity");25

string

returnValue

=

jo.Call<string>("test2");26

Debug.Log("Have

Return

Value

And

No

Parameter

Return

Value

:

"

+

returnValue);27

}28

if

(GUILayout.Button("NoReturnValueAndHaveParameter"))29

{30

AndroidJavaClass

jc

=

new

AndroidJavaClass("com.unity3d.player.UnityPlayer");31

AndroidJavaObject

jo

=

jc.GetStatic<AndroidJavaObject>("currentActivity");32

jo.Call("test3","Hello

Android");33

}34

if

(GUILayout.Button("HaveReturnValueAndHaveParameter"))35

{36

AndroidJavaClass

jc

=

new

AndroidJa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論