当前位置:首页 » 安卓系统 » unityandroid教程

unityandroid教程

发布时间: 2022-08-07 17:13:55

1. 如何配置unity3d的安卓手机开发环境

1.Android运行环境的搭建

进行安卓系统的软件设计,那么JDK的开发环境搭建必须是首要的。我们选择Windows10 64位操作系统。同时在JDK版本的选择中选用Windows x64版本的java SE Development Kit 8u5,该版本稳定,应用广泛而且开源免费,获取方便。在安装的过程中要注意不要重复安装,应安装完毕后立即删除安装包,否则如果不小心再次点到安装包,该安装包会立刻删除所安装的程序并询问是否重新安装。在JDK的安装过程中,要注意开发工具,源代码,公共JRE三项都要选中,而且要安装到C盘默认目录下,同时将其附带的JRE同样安装到相同目录下,同时硬盘至少应该留有2G的空间。

选择好JDK的版本并进行安装后,我们的JAVA环境就安装好了,众所周知,安卓系统是由JAVA语言架构的,所以在搭建安卓运行环境之前必须要先安装JAVA环境。安装完JAVA环境之后,我们进行安卓开发环境的搭建。我们就要进行Android SDK版本的选择。我们这里选择android-sdk_r24.4.1-windows版本。这个版本是与安卓8.0同时发布的,同时它的发布时间也在我们的安卓测试机红米NOTE5A型号之后,可以完美兼容我们的安卓测试机所运行的安卓7.1.2版本。

以上就是安卓环境的安装和搭建,更多Unity开发方面的问题可以看下这个视频教程网页链接,希望我的回答能帮到你。

2. 如何使用Unity制作Android游戏

我想问问 android 是一个 开放性平台 各路厂商都能出android 机器和 深度改造 android系统 我想问问 怎么保证 Unity3D能适应所有的android 环境,而且随着android多元化设备的产生 android眼镜 android 电视业有了 是否能基于 非操作型平台做游戏? 查看原帖>>

3. unity项目如何导入android项目中成为安卓项目中的一部分

1.Android端代码可以在Eclipse中开发(AndroidStudio没有试,应该也可以)

2.Unity3D端代码要在Unity中开发

3.Android和Unity3D端,两边都需要加入一些代码从而可以使之关联交互。

4.将Android端代码编译成jar文件以插件形式放入到Unity端中

5.在Unity中将整个项目Build成apk文件,然后安装到手机或模拟器里运行

本文主要讲解1,2,3。对于4,5建议大家去看雨松MOMO的Unity博客的第17篇和第18篇。

UnityPlay:

在编写Android端和Unity3d端代码前,有必要先了解一下可以使两部分交互的类UnityPlay。

个人理解UnityPlay是个Unity提供给外部交互的一个接口类。

为什么是“个人理解”?这我不得不爆粗口了,TMD官网根本就没有相关的API和文档(如果大家有谁找到一定给我来一份,就当我骂自己了)。

在关联Android时,想拿到UnityPlay以及相关类的jar包可以从下面的地址找到:Unity安装路径\Editor\Data\PlaybackEngines\androidplayer\bin在bin文件夹下有一个classes.jar的jar文件,它就是我们想要的。

而在bin同目录下有一个src文件,点击到最后有3个类,分别是UnityPlayerActivity.java,UnityPlayerProxyActivity.java,UnityPlayerNativeActivity.java。前两个打开个后只有一行代码,说的是UnityPlayerActivity和UnityPlayerProxyActivity都继承自UnityPlayerNativeActivity。而打开UnityPlayerNativeActivity中居然有代码,而且我估计这应该是UnityPlayerNativeActivity的源码

由于关于UnityPlay的资料我只找到这么一个,所以我把UnityPlayerNativeActivity中的代码都贴出来,如果我注解有不对的地方希望大家指正。

/**
* UnityPlayerActivity,UnityPlayerProxyActivity都继承自UnityPlayerNativeActivity
* 而UnityPlayerNativeActivity继承自NativeActivity
* 在该类里定义了一些和ANDROID生命周期相同的回调方法,留给自定义的Activity子类重写。
*/
public class UnityPlayerNativeActivity extends NativeActivity
{
//UnityPlayer的引用,并且我们不能改变这个引用变量的名字,它被native code所引用
protected UnityPlayer mUnityPlayer;

protected void onCreate (Bundle savedInstanceState)
{
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
// 设置显示窗口参数
getWindow().takeSurface(null);
setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);
getWindow().setFormat(PixelFormat.RGB_565);

// 创建一个UnityPlayer对象,并赋值给全局的引用变量
mUnityPlayer = new UnityPlayer(this);
//为UnityPlayer设置一些参数
if (mUnityPlayer.getSettings ().getBoolean ("hide_status_bar", true))
getWindow ().setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

int glesMode = mUnityPlayer.getSettings().getInt("gles_mode", 1);
boolean trueColor8888 = false;
// UnityPlayer.init()方法需要在将view附加到layout之前调用。它将会调用native code
mUnityPlayer.init(glesMode, trueColor8888);

// 从UnityPlayer中获取到Unity的View视图
View playerView = mUnityPlayer.getView();
// 将Unity视图加载到根视图上
setContentView(playerView);
// 使Unity视图获取焦点
playerView.requestFocus();
}
protected void onDestroy ()
{
// 当Activity结束的时候调用UnityPlayer.quit()方法,它会卸载之前调用的native code
mUnityPlayer.quit();
super.onDestroy();
}

// 下面几个方法都是ANDROID相关回调方法,确保在ANDROID执行相应方法时UnityPlayer也需调用相应方法
protected void onPause()
{
super.onPause();
mUnityPlayer.pause();
}
protected void onResume()
{
super.onResume();
mUnityPlayer.resume();
}

public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
mUnityPlayer.configurationChanged(newConfig);
}
public void onWindowFocusChanged(boolean hasFocus)
{
super.onWindowFocusChanged(hasFocus);
mUnityPlayer.windowFocusChanged(hasFocus);
}
public boolean dispatchKeyEvent(KeyEvent event)
{
if (event.getAction() == KeyEvent.ACTION_MULTIPLE)
return mUnityPlayer.onKeyMultiple(event.getKeyCode(), event.getRepeatCount(), event);
return super.dispatchKeyEvent(event);
}
}
看完这个类后就知道了为什么在自定义的Activity中继承了UnityPlayerActivity等类以后,只要重写了onCreate并调用super.onCreate()方法后不需要任何其他的代码就会自动的显示出Unity3D的视图。因为初始化Unity视图的代码都在UnityPlayerNativeActivity父类中实现了。

ANDROID端代码:

在写ANDROID代码的时候,一定要导入Unity3D提供给我们的jar包,jar包的位置我在上面说了。引入jar包加入到buildpath中这些最基本的我就不多说了。

要想和Unity交互,我们就不能继承ANDROID提供给我们的Activity,我们需要继承刚才jar包中引入的Unity提供的Activity类,一共有这么3个:

UnityPlayerActivity,UnityPlayerProxyActivity,UnityPlayerNativeActivity。具体区别不知道,因为没有文档,没有API,没有源码(这里再次鄙视一下)。刚才我们看过UnityPlayerNativeActivity的代码(虽然很短,但我觉得这个就是源码),知道UnityPlayerActivity,UnityPlayerProxyActivity都是它的子类,而且最终父类为NativeActivity。所以我们继承Unity提供的最外层的子类是最好的选择,我这里选择的是UnityPlayerActivity,因为名字最简单,觉得该封装的都应该封装好了。

public class MainActivity extends UnityPlayerActivity {

private Button topButton;
private Button bottomButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// 设置test为我们的根布局
setContentView(R.layout.test);

// 通过刚才的源码分析,知道mUnityPlayer为一个全局的引用变量,而且已经在父类中设置好了,所以直接拿来用就可以了
View playerView = mUnityPlayer.getView();
// 将Unity的视图添加到我们为其准备的父容器中
LinearLayout ll = (LinearLayout) findViewById(R.id.unityViewLyaout);
ll.addView(playerView);

// 上面的button设置监听器
topButton = (Button) findViewById(R.id.topButton);
topButton.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
//发送消息给Unity端,该函数第一个参数为接受消息的类对象,第二个该类对象用接受消息的方法,第三个参数为传递的消息
//所以下面的意思就为:调用Main Camera下面的Previous方法,传送的消息为空
UnityPlayer.UnitySendMessage("Main Camera","Previous","");
}
});

// 为下面的button设置监听器
bottomButton = (Button) findViewById(R.id.bottomBtn);
bottomButton.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
//调用Main Camera下面的Next方法,传送的消息为空
UnityPlayer.UnitySendMessage("Main Camera","Next","");
}
});
}
}
最后看一下Android端的布局文件,布局很简单,上下各有一个button按钮,两个按钮中间是Unity的视图。

4. 如何进行Unity3D与Android消息传递

1.Unity工程导出为Android Studio工程
(我个人用的U3D版本是5.1.1,已经支持直接将Unity工程导出为AS工程了,以前的版本我不敢保证.)

首先你要写好Unity工程里面的脚本,包括你希望Android调用的方法和调用Android方法的方法,这个在下面会有详细叙述;接下来导出AS工程,方法是:
File里面的Build Settings -> 平台选择Android,在Player Setting里面设置API版本和包名(包名很重要) -> 点击Build Setting中的Google Android Project复选框 -> Export

2. AS打开导出的工程

首先随便打开一个AS工程,然后FIle -> New -> Import Project -> 选刚才导出来的工程 -> 等待Gradle -> 以此工程为基础继续开发Android代码

5. 怎么运行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

6. 用UNITY3D开发android游戏要学习什么

你可以先去【绘学霸】网站找“游戏特效/unity3D”板块的【免费】视频教程-【点击进入】完整入门到精通视频教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=305,306&zdhhr-11y17r-560576480037136404

想要系统的学习可以考虑报一个网络直播课,推荐CGWANG的网络课。老师讲得细,上完还可以回看,还有同类型录播课可以免费学(赠送终身VIP)。

自制能力相对较弱的话,建议还是去好点的培训机构,实力和规模在国内排名前几的大机构,推荐行业龙头:王氏教育。
王氏教育全国直营校区面授课程试听【复制后面链接在浏览器也可打开】:
www.cgwang.com/course/gecoursemobilecheck/?zdhhr-11y17r-560576480037136404

在“游戏特效/unity3D”领域的培训机构里,【王氏教育】是国内的老大,且没有加盟分校,都是总部直营的连锁校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚,爆肝式的学习模式,提升会很快,特别适合基础差的学生。

大家可以先把【绘学霸】APP下载到自己手机,方便碎片时间学习——绘学霸APP下载: www.huixueba.com.cn/Scripts/download.html

7. 怎样用Android开发Unity3D游戏

开发环境
Window 7
Unity3D 3.3.0
MB525 defy Android 2.1-update1

本次学习:
1.认识Unity
2.Unity3D环境搭建与Android软件生成
3.Unity3D基本使用方法

1.认识Unity3D
Unity3D是一个让开发者能够在多平台制作同一款游戏的游戏开发工具,有专业的图像处理和游戏引擎,能做出各式各样的游戏。
羽化以前认为Android游戏开发只能在Eclipse
里面死活敲代码,也许是自己阅历不够,不知道游戏引擎能给游戏开发带来如此大的便利,无论是3D游戏还是2D游戏都可以用Unity3D开发而且转成
IPHONE游戏也很简单,因为Unity3D很多移动开发功能IPHONE与Android是共用的,其中最主要的控制器就是一样的,这样我们就基本上
告别Eclipse了。。。

由于Unity3D里面的脚本是用C#或者Java
Script写的,学习过这两个语言最好,不会也没关系,还可以学嘛(和羽化一样),其实C#和JS与Java类似,看起来不会那么陌生,要注意的是JS
中无论什么变量声明都是”var”表示,这点对于声明经常出错的羽化来说很好-0-

2. Unity3D环境搭建与Android软件生成方法

这里给大家介绍两个网站,在里面可以下载到最新的UnitySetup-3.3.0包括破解补丁U3v3.3.0f4_Win和脚本编辑器
UnityScriptEditor2.55,还有很多学习资料,包括羽化正在学的Unity视频教程(全英文啊=。=),还有全中文帮助文档,虽然现在
资料很少,但可以看出Unity3D越来越给力中。。。

http://3d.ceeger.com/ Unity3D中文帮助文档
http://www.u3dpro.com/ Unity3D专业论坛

安装过程就不详细写了,很简单的。这里要注意的是,安装的系统用户名不要是中文的,要不打开Unity3D以后Scene里面看不到东西,这是羽化的切生体验- -。
1)第一次打开Unity3D后会出现创建Project的界面,这就和Eclipse创建项目一样的道理,这时候可以添加一些插件包,这步操作羽化留在了软件打开后。

2)新建以后就出现了开发界面,这里简单介绍下:
Scene 开发视图:里面可以拖拽物体位置、改变大小、旋转角度等,是开发中最常的地方。
Game 游戏视图:点上面的运行以后游戏就会在Game视图里面运行,没点的时候可以看到摄像机当前的图像。
Hierarchy 层试图:放置游戏物件,在游戏运行时可以观察游戏物件变化
Project 工程视图:里面可以新建文件夹管理脚本,渲染,图片等。
Inspector 检查视图:显示物件属性等
最下面一条,一般情况下不会显示东西,如果出错或者打印语句都是显示在下面:

先不管那么多,生成个Android软件再说。

3)在Project里面右击 ——〉 Import Package ——〉 Standard
Assets(Mobile)这是移动开发的包,全部Import导入吧。再在Project里面选中导入的Standard
Assets(Mobile)———〉Control
Setups——〉CameraRelativeSetup,这会提示保存Scene,我们就保存一个,可以看到Project里面多了一个我们保存的
Scene,游戏运行就是从Scene开始,这时应该可以看到这个包的显示了。一眼就看出这是一个演示控制器的包,这个时候我们就不管这个工作原理,先放
在Android手机里面看看效果。

4)点击左上角的File菜单——〉Build Settings——〉选中Android——〉右边Development
Build勾打上——〉点击下面Player Settings,这时在Insperctor视图里面可以看到一些基本设定,第一个Resolution
and Presentation是游戏视图设定,横屏还是竖屏随你可以默认它,点击Other
Settings,这里主要设置Identification这个属性,里面第一个相当于项目包,这个一定不能默认,自己随便写个名字比如羽化就是
com.LB.first其他设定大家可以自己研究,对于生成这个软件,这步必须改。

5)然后回到窗口点击Build,这里第一次点会跳出一个选中Android SDK的路径,大家都懂的,自己放哪的选哪,确定后,输入一个apk的名字,就叫作LB,如果发生什么错误,可以看看下面的提示。

6)软件已经生成好了后就可以丢到手机里面安装试试了,你可以直接丢在SD卡里面安装,这里羽化给大家介绍个简单的方法,对于模拟器还是真机都适用,首先
设置环境变量,在Path里面添加如羽化自己目录的D:android-sdk-windowsplatform-tools,这样就可以在命令控制台里
面打命令了,比如羽化安装的命令是cd C:UsersLiBeiDocumentsLB先到apk目录下,再输入adb install
LB.apk这里要注意若你原来安装过相同名字软件,先卸载了再装。

7)实际运行效果左摇杆是控制位移,右摇杆是控制方向:

步骤看起很多,其实很简单。

3.Unity3D基本使用方法
这里羽化推荐大家看看视频,看视频学起来得很快,羽化就讲讲自己照视频做的例子,解压后可以通过Open Project选项打开这个例子,选中Scene里面的Scene1打开,运行是在电脑上。

1)场景创建
全是Cube搭建的,看一眼就知道了,Cube可以在上方Gameobject——〉create
other里面创建,也点击Hierarchy层视图下面的Create创建,位置调整可以在Scene里面通过左上角的物件选项慢慢调整,第一个是观
察,第二个是调整位置,第三个是调整角度,第四个调整大小。
2)主视角
这里主视角是用Standard Assets(这要自己导入)——〉Character Controllers——〉First Person
Controller 可以看到这里能直接用的物件其实都是Prefab预设。这里可以看天空,其实是运用了Skybox组件,选中Main
Camera可以在菜单中Component——〉Rendering——〉Skybox。
3)光
若无光运行的时候漆黑一片,这里放了个Point Light点光,数值可自行调整,添加和Cube一样。
4)脚本
脚本放在Scripts文件夹下,里面Door是控制门开关,Shoot是鼠标点击事件,Respawn是坠落返原地。注意这里脚本写好以后要拖到对应物体上才能运行。
5)动画
开门其实是个动画,创建在Component——〉Miscellaneous ——〉Animation
6)火焰
火焰是粒子产生的,粒子创建和Cube类似,Particle System里面的数值要做相应调整就会有火焰效果了。

再介绍几个Component里面重要的组件
1)Rigidbody 刚体
刚体顾名思义,有重量,带碰撞都是刚体的属性,若你为一个物件添加这个组件,证明你需要前面这几个属性。
2)Character 人物
其实里面放的都是控制视角或者是主角操作的脚本。
3)Trail Renderer 路径渲染器
很有用的组件,可以看到自己走过的路径,论坛上有个切水果刀光的例子就是用到它。

8. android unity 3d配置教程

http://www.cnblogs.com/sifenkesi/p/3501371.html
图文教程,请参考,按步骤进行操作

9. 如何使用unity开发安卓游戏

你需要先到安卓官网下载并安装安卓的SDK.....这样UNITY就可以发布到安卓了.......开发方法和WINDOWS平台基本一样.......Input类里面,针对鼠标的方法,可以自动转换为触摸操作。
安卓SDK下载地址如下:http://android-sdk.en.softonic.com/

10. Unity3D发布安卓详细教程

这个太简单了 直接再发布的时候选安卓设备的就行 如果不能运行就下载个安卓低版本的API再发布

热点内容
c语言单元测验 发布:2025-01-19 07:58:56 浏览:990
c语言贪吃蛇源代码 发布:2025-01-19 07:58:53 浏览:879
c语言char数组长度 发布:2025-01-19 07:46:23 浏览:10
淘宝如何清理缓存垃圾 发布:2025-01-19 07:42:07 浏览:438
电脑输入密码阶段如何改语言 发布:2025-01-19 07:42:05 浏览:786
存储器国产率 发布:2025-01-19 07:04:36 浏览:567
锐程cc蓝鲸版选什么配置 发布:2025-01-19 06:56:28 浏览:169
城镇居民医保卡的原始密码是多少 发布:2025-01-19 06:55:54 浏览:788
wifi密码如何修改密码 发布:2025-01-19 06:39:06 浏览:962
sqlserver认证 发布:2025-01-19 06:34:30 浏览:815