安卓SDK接入Unity
环境搭建:
(1)需要安卓JDK,并配置环境变量。
(2)需要安卓SDK,放在本地,unity发布时需要调用。
(3)需要Eclipse,Java代码编写工具。
实现步骤:
(1)打开 Eclipse,建立一个 Android 空项目(File\New\AndrAPP Project)
注意Package Name 要 与unity bundle identifier一致
(2)创建新的安卓项目。
(3)打开Unity安装目录
C:\ProgramFiles\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Development\Classes
复制classes.jar 文件。
(4)将classes.jar导入Android项目。
(5)Android项目的结构:
src:源代码目录,根目录。
gen:自动生成代码的目录。
assets:资源目录。
bin:生成的二进制文件目录。
res:项目标准资源目录,图标等。
AndroidManifest.xml:配置清单。
(6)添加服务项,范例是添加手机震动,注意选中res 文件夹下的AndroidManifest.xml 进行修改
选完之后点击一下Use Permission 就ok了
(7)编写代码Java代码,以备unity调用。
改完之后这样:
package com.niubi.andriod;import android.app.Service;import android.os.Bundle;import android.os.Vibrator;import com.unity3d.player.UnityPlayerActivity;public class MainActivity extends UnityPlayerActivity{ Vibrator m_vibrator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.m_vibrator = ((Vibrator)getSystemService(Service.VIBRATOR_SERVICE)); } public String ShakeForUnity() { if (this.m_vibrator == null) { return "IS NULL"; } this.m_vibrator.vibrate(2000); return "Shakeing"; } }
(8)导出JAR包 注意仅选中src和res 右键 Export 导出,否则Unity5.0以上版本生成APK包会报错。(可参考http://forum.china.unity3d.com/thread-5434-1-1.html)
注意:出现Resource is out of sync with the file system 导出报错时,尝试以下解决方案。
解决办法:需要手动刷新一下资源管理器。
(1)在eclipse或mycelipse中,工程目录右键,选择F5(refresh)
(2)或者设置eclipse或mycelipse自动刷新。
通过Window->Preferences->General->Workspace,选中Refresh automatically。
(9)
回到Unity中创建 Plugins 文件夹 Plugins /Android
Android/bin/ 这里复制刚导出的安卓的.jar文件 到这个文件夹
Android/libs/ 这里是放入第三方的.jar //例如91等
Android项目中的中的res文件夹 拷贝的unity Android文件夹 中,Android项目中的AndroidManifest 配置文件 复制到 Android文件夹中。
先写到这里 明天再补
搭建个简单的UI界面
差不多这样
ok 写代码挂再mgr上
代码如下:
Button shake;Text show;AndroidJavaObject JavaObj;void Awake() { shake = transform.Find("shake").GetComponent
ok 结束 build 出来
注意:
这几个地方尽量保持一致
结束 导出到手机就可以震了
更多相关文章
- cocos打包android遇到的那些坑
- Android(安卓)Audio代码分析10 - audio_track_cblk_t::framesRea
- C++项目RapidJson的详细用法总结
- Android_RecyclerView&SwipeRefreshLayout_swiperefreshlayout不
- android 之 PhoneGap+jQuery Mobile+Rest 访问远程数据
- android 安卓APP获取手机设备信息和手机号码的代码示例
- Android(安卓)基于Socket.io即时通讯IM实现,WebRTC实现视频通话
- 《第一行代码》阅读笔记(三十四)——Material Design
- 走心的Android(安卓)10 适配指南,手把手上代码