从Unity到Eclipse -《unity3d手机游戏开发》

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10.6从Unity到Eclipse

我们还可以将Unity工程导出为eclipse工程,然后再导入到eclipse中,听起来有些麻烦,但对于有些Android接口,不得不这么做,因为有些时候使用在Unity中导入.jar的方法无法使其正常工作。

在下面的示例中,我们仍将在Unity中显示一个Android对话框,但这次是将Unity工程导入到eclipse中。eclipse与Unity工程之间的通信我们将使用Unity的UnitySendMessage函数完成,这个做法与在IOS平台是一样的。

10.6.1导出eclipse工程

1)打开光盘目录chapter10_Android_Plugin_Start内的Unity工程。

2)打开角本AndroidAPP.cs,添加代码如下:

// Android 的Activity

private AndroidJavaObject activity;

// Use this for initialization

void Start () {

// 当前游戏体的名字

= "AndroidManager";

// 获得Android Activity

AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

activity = jc.GetStatic("currentActivity");

}

void OnGUI()

{

GUI.skin=m_skin;

if (GUI.Button(m_showAndroidDialog, "显示android 对话框"))

{

string[] args=new string[2];

args[0]="Hello";

args[1]="World";

activity.Call("HelloWorld", args);

}

}

Unity手机网页游戏开发

// 改变摄像机背景颜色为红色,将在eclipse中使用SendMessage执行

void AndroidCallBack()

{

Camera.main.backgroundColor = new Color(1.0f, 0, 0);

}

这里的代码与前一节示例中的代码相似,增加了一个AndroidCallBack函数,它的作用是改变摄像机背景的颜色,我们将在eclipse中使用SendMessage执行这个函数。

在Start函数中,我们将当前游戏体的名字改为AndroidManager,在eclipse工程中,我们将查找这个名字传送消息。

3)将当前工程的Bundle Identifier设为com.project.helloworld,稍后在eclipse工程中设置的Package Name一定要与它相同。

4)在Unity菜单栏选择【File】→【Build Settings】,确定当前工程已转为Android平台,选中Create Eclipse project,然后选择Export将当前工程导出为eclipse工程,如图10-30所示。

图10-30 导出为eclipse工程

10.6.2设置导出的eclipse工程

下面的工作将在eclipse中完成,实际上,从Unity中导出的eclipse工程并不能直接使用,我们需要将其设为库,然后在另一个新建的eclipse工程中引用这个库。

1)在eclipse的菜单栏选择【File】→【Import】,然后选择Existing Android Code Into Workspace导入上一节从Unity中导出的eclipse工程,如图10-31所示。

第10章Android游戏

图10-31 导入Android工程

2)在eclipse的菜单栏选择【Project】→【Properties】,选中Is Library,将当前工程设为库,如图10-32所示。

图10-32 设置为库

Unity手机网页游戏开发

10.6.3 创建用于发布的eclipse工程

下面,我们将创建一个新的eclipse工程,引用Unity导出的eclipse工程。

1)创建一个新的eclipse工程,注意Package Name一定要与Unity工程中的Bundle Identifier一致。在创建工程的过程中不要选中Create Activity,我们将手工创建Activity。

2)选择新建的工程,在菜单栏选择【Project】→【Properties】,然后选择Add,选择Unity导出的eclipse工程,将其引用到当前工程,如图10-33所示。

图10-33 引用另一个工程

3)确定选择新建工程,在菜单栏选择【File】→【New】→【Class】创建一个名为MainActivity的类,Package名字与当前工程的Package Name一致,如图10-34所示。

图10-34 创建Activity

第10章Android游戏

4)在eclipse的菜单栏选择【Project】→【Properties】,然后选择Java Build Path,选择Add External JARs,浏览Unity安装目录Editor\Data\PlaybackEngines\androidplayer\bin,选择classes.jar,将其添加到当前的eclipse工程中。

5)选择从Unity导出的eclipse工程,将assets中的文件拖拽到新建的Helloworld工程的assets目录内,如图10-35所示,左边是从Unity导出的工程,右边是新创建的工程目录。

图10-35 工程目录

6)打开MainActivity.java,添加代码如下:

package com.project.helloworld;

import android.os.Bundle;

import android.app.AlertDialog;

import android.content.DialogInterface;

import com.unity3d.player.UnityPlayer;

import com.unity3d.player.UnityPlayerActivity;

public class MainActivity extends UnityPlayerActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

}

// 在Unity中调用的函数

protected void HelloWorld(final String title, final String content)

{

runOnUiThread(new Runnable() {

public void run() {

MakeDialog(title, content);

}

相关文档
最新文档