在 Unity 中使用 Android SDK(一)资料.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
将 Java 代码做成 Unity 插件 ? ?? ?下载 Android sdk、在 Unity 中配置好路径,保证 Unity 可以正常导出 apk;下载 JDK 、配置好环境变量,保证 Eclipse 可以正常打开。另外你需要知道使用Eclipse的logcat查看调试log。 1.打开 Eclipse, ? ?? ? 建立一个 Android 空项目,注意 package name 一栏,这里写的名称会添加到项目 manifest 中,仅影响 gen 中自动生成的代码所在的包,由于 Android 项目仅作为插件项目,最好与自己代码包名、应用包名区别开。设置好最低sdk、目标sdk版本,点击Next。 ? ?? ?? ? ?? ??2.取消图标、 ? ?? ? Activity,标记为 library 项目,创建项目目录,点击 finish。 ? ?? ?? ? ?? ??3.再继续之前,先解释一下Android项目的结构: ? ?? ? src:源代码目录,java代码是按照包名划分目录的,根目录就是src; ? ?? ? gen:自动生成代码的目录,比如 R.java 文件(这个class为每个资源定义一个唯一id); ? ?? ? assets:一个可以存放任何其他资源的目录; ? ?? ? bin:生成的二进制文件目录; ? ?? ? libs:存放引用的其他包文件; ? ?? ? res:项目标准资源目录,图标啦、字符串啦等等; ? ?? ? AndroidManifest.xml:配置清单。 ? ?? ? 好了只需要了解这些。 ? ?? ?? ? ?? ??4.打开 Unity 安装目录,复制 Editor\Data\PlaybackEngines\androidplayer\release\bin\classes.jar 到 Android 项目的 libs 里面,这个 jar 包仅用于辅助 Eclipse 代码检查和提示,不用于最后导出. ? ?? ???? ? ?? ??5.开始码起来。右键src,创建 java 类 UnityPluginTest.java。点击finish。 ? ?? ?? ?? ? ?? ??6.写点有用的东西。比如显示一个 Android UI 风格的小提示的功能。 package unityplugin; import android.widget.Toast; import com.unity3d.player.UnityPlayer; public class UnityPluginTest { ? ? public static void ShowToast(final String content, final boolean isLong) ? ? { ? ?? ???UnityPlayer.currentActivity.runOnUiThread(new Runnable() ? ?? ???{ ? ?? ?? ?? ?@Override ? ?? ?? ?? ?public void run() ? ?? ?? ?? ?{ ? ?? ?? ?? ?? ? Toast.makeText(UnityPlayer.currentActivity, content, isLong ? Toast.LENGTH_LONG : Toast.LENGTH_SHORT).show(); ? ?? ?? ?? ?} ? ?? ???}); ? ? } } ? ?? ? 注意你的项目不应该含有任何错误,否则请检查 classes.jar 是否成功的被引用了。 ? ?? ? 关于这段代码,有必要做一下解释。首先这个方法是 static 类型的。接下来我们几乎把所有需要与 Unity 交互的代码都会写成静态的。不为什么,就是任性。然后注意在这个方法里面我们调用了 UnityPlayer.currentActivity.runOnUiThread 方法,参数是一个 Runnable 对象。很多与Android UI 相关的代码都必须写在 UI 线程里,这与 windows 的消息队列类似,事情必须一件一件来做才不会乱掉。最后你还需要了解函数参数的关键字 final,它可以让这个参数穿越时空——哦不,是穿越到 Runnable 的 run 里面(如果你知道C#的 delegate 可以引用外部变量应该会感到熟悉,只是这里需要显示的标记为 final)。文章出处于狗刨学习网 ? ?? ??7.打开 Unity,创建一个新的空 Unity 项目,切换目标平台为Android。创建如图所示的目录结构。 ? ?? ?? ? ????8.切换到 Eclipse,右键项目菜单,选择 “Export.

文档评论(0)

0520 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档