unity工程是怎么在android上运行的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity工程是怎么在android上运行的相关的知识,希望对你有一定的参考价值。

首先我们要创建一个android项目因为项目需要使用Unity提供的接口,所以需要将接口classes.jar引入至当前工程但中。接口包的所在地,打开Finder->应用程序->Unity->点击Unity图标,鼠标右键选择“显示包内容”->Contents->PlaybackEngines->AndroidPlayer->bin->classes.jar 。接口包引入工程后,开始编写JAVA代码。UnityTestActivity是主Activity,Unity程序一起动就会调用这个Activity,它是在AndroidManifest.xml中配置的。它需要继承UnityPlayerActivity,然而它就是刚刚我们引入的classes.jar包中提供的接口类。UnityTestActivity对外提供了两个方法接口,StartActivity0(String name) 方法与StartActivity1(String name)方法,这两个方法是在Unity中使用C#脚本调用的,意思是调用后程序将打开一个新的Activity,参数name也是由C#脚本传递过来的,接着将传递的String参数继续传递给新打开的Activity。接下来就是设置xml文件和布局文件了。对于会android编程的同学就很熟悉了。把写好的java代码发布成jar包。接下来就创建unity工程,Unity工程中文件夹的结构如下,Plugins->Android的名称不能修改,必需保持一致。接着把Eclipse中Android的工程文件拷贝至这里,除了Android工程中的src文件夹,将其它文件夹全部拷贝至Plugins->Android文件夹中。最后在Plugins->Android文件夹中创建bin文件夹,然后将刚刚生成的.jar文件拷贝进来,jar的名称可以随便修改,但是jar包里面必须是com->xys->你的class文件,否则运行程序后提示找不到类文件。接下来就是如何在C#中调用android的方法的代码了。加入如下代码。 AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); jo.Call("StartActivity0","第一个Activity");先得到AndroidJavaClass,然后得到AndroidjavaObject就是当前Activity的对象,也就是我们在上面创建的主UnityTestActivity.JAVA。拿到它的对象后调用jo.Call()参数1表示调用UnityTestActivity.JAVA类中的方法名称,参数2表示该方法传递过去的参数。如下图所示:“第一个Activity”与“第二个Activit”就是我在C#中传递过去的字符串。7发布成android平台apk 参考技术A 1.确保Android工程代码正确,然后在Eclipse中build一下,使所有类都生成.class文件。

2.将所有.class文件打成jar包

例如我现在的工程目录为:C:\Users\95\Documents\GitHub\3D_Sphere\3DVoiceWeather。编译好的.class文件都在工程目录下的\bin\classes中。

打开cmd中cd到这个目录:cd C:\Users\95\Documents\GitHub\3D_Sphere\3DVoiceWeather\bin\classes

执行命令:jar -cvf class.jar *

没有意外就会在当前目录下生成一个class.jar,

Unity1.2 HelloWorld--测试桌面和Android游戏能否正常运行

分类:Unity、C#、VS2015

创建日期:2016-03-23

一、简介

这一节先搞一个最简单的Unity游戏,目的是为了验证Unity的桌面游戏开发环境和Android游戏开发环境是否有问题。实现的功能是:

将该游戏部署在桌面计算机上,运行窗口中显示一个“Hello World!”。

将该游戏部署在Android x86模拟器中,运行界面上显示一个“Hello World!”。

二、设计步骤

1、新建项目

运行Unity,选择“New”,输入项目名HelloWorld,选择“3D”:

image

单击【Create Project】,它就会自动进入Unity3D开发界面。

下面是场景(Scene)面板中视图的常用操作:

按下鼠标中键:平移视图

Alt + 左键:旋转视图

Alt + 右键(或滚轮):推拉视图

2、创建脚本文件

鼠标右击Project下的【Asset】,选择【Create】-->【Folder】,文件夹命名为“Scripts”。

image

右击【Asset】下的【Scripts】-->【Create】à【C# Script】,将其命名为HelloWorld。

双击HelloWorld,它就会自动在VS2015中打开该文件。

image

将HelloWorld.cs文件改为下面的内容:

using UnityEngine;
using System.Collections;

public class HelloWorld : MonoBehaviour
{
    // Use this for initialization
    void Start()
    {
        Screen.fullScreen = false;
    }

    // Update is called once per frame
    void Update()
    {

    }

    //显示Hello World
    void OnGUI()
    {
        GUI.skin.label.fontSize = 85;
        // 显示区域(x,y,w宽,h高),“显示的文本”)
        GUI.Label(new Rect(75, 50, Screen.width, Screen.height), "Hello World!");
    }
}

按<F5>附加到Unity(Atach to Unity),编译成功后,按<Shift>+<F5>结束。

3、将脚本添加到主相机(Main Camera)中

切换到Unity开发环境,将刚创建的.cs脚本添加到主相机(Main Camera)中。

办法1:将Assets中的脚本文件拖放到Hierarchy中的“Main Camera”上。

image

办法2:先在Hierarchy(层次视图)里选中“Main Camera”,然后从“Component”菜单的“Scripts”里选中HelloWorld脚本。当主相机处于选中状态时,从“Inspector”面板中就可看到用于相机的HelloWorld脚本文件了。

4、测试运行效果

按下图上方中间的【播放】(三角符号)按钮,即可看到下面的结果:

image

再次按【播放】按钮结束测试。

5、保存场景

选择【File】-->【Save Scene】,输入场景名称“HelloWorld”:

image

6、将场景添加为关卡

游戏都是一关一关的让玩家去玩的,每一关都称为一个“关卡”。

三、将项目发布为在桌面上运行的游戏

1、设置窗口大小

选择【File】-->【Build Settings...】,在弹出的“Build Settings”窗口中,单击“Add Open Scenes”按钮,此时它就会自动添加HelloWorld.unity文件到场景集合中。如下图所示:

image

在“Build Settings”窗口中,单击“Player Settings”,将游戏窗口设置为800×600(也可以设置为其他大小):

image

2、发布游戏

在“Build Settings”窗口中,选择要发布的关卡(HelloWorld.unity),单击【Build And Run】按钮,在弹出的窗口中,文件名改为“HelloWorld.exe”,如下图所示,单击“保存”:

image

此时即可看到弹出的运行窗口,与按“播放”按钮看到的结果相同。

image

出现此界面,说明Unity的桌面游戏开发环境安装成功。

四、将项目发布为在Android中运行的游戏

1、修改首选项

选择【Edit】—>【Preference…】:

image

在首选项窗口中,设置【SDK】、【JDK】路径(见C#之Android App开发中介绍的安装步骤),此处的NDK为空即可。如下图所示:

image

设置后关闭该窗口。

注意Unity使用的是64位的Android NDK r10e,不是原来已经安装的32位的Andoid NDK r10e。如果你希望在这个界面中输入NDK路径,可单击【Download】直接下载64位的自解压文件,下载后将其解压到某个文件夹下再指定这个路径就行了。

2、修改Android清单配置

选择【File】-->【Build Settings...】,在弹出的“Build Settings”窗口的“Platform”选项中,选择“Android”,然后单击单击“Player Settings”:

image

接着修改【Other Settings】为下面的内容:

image

3、启动x86 API 23模拟器

切换到VS2015,启动x86 API 23模拟器:

image

image

稍等片刻,等模拟器启动完毕后,再执行下面的发布游戏步骤。

4、发布游戏

在“Build Settings”窗口中,单击【Build And Run】按钮:

image

在弹出的窗口中,文件名改为“HelloWorld.apk”,如下图所示,单击“保存”:

image

此时就可以在x86模拟器中看到运行的效果了,如下图所示:

image

可见,不论是将游戏发布到桌面上还是发布到Android手机或模拟器上,步骤(二)介绍的基本设计步骤都是一样的(以后个别地方不同的平台会有稍微的不同)。因此,在接下来的章节中,我们仅掌握桌面游戏的基本开发步骤就行了,因为掌握了桌面游戏开发的基本步骤,再根据发布到的平台,再修改一下相关的代码就行了。

以上是关于unity工程是怎么在android上运行的的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio的工程怎么能导入到Unity里面使用

怎么修改unity入口androidmainfest

Unity3DUnity 中使用 C# 调用 Java ③ ( C# 调用 Java 实例 | 进行 Android 工程打包 | Android Studio 中运行 Android 工程 )

Unity3DUnity 中使用 C# 调用 Java ③ ( C# 调用 Java 实例 | 进行 Android 工程打包 | Android Studio 中运行 Android 工程 )

修改unity导出到安卓的activity

unity导出的安卓apk运行第一个场景没问题,第二个场景闪