我已经阅读了有关如何将针对Android的Unity3D项目集成到eclipse中的所有文档。我想这样做的原因是能够在我自己的“普通”Android应用程序中调用Unity3D Activity。
好吧,我尝试按照listed on this tutorial的步骤进行操作。 使用我能想象到的所有组合,我做了以下几点:
我使用Unity Android项目并在Unity中构建它
IDE),然后将/Temp/StagingArea/
文件夹复制到另一个位置。
我使用现有来源创建了一个新的Android项目,
设置StagingArea
副本文件夹的位置。这将是
Android库项目。检查属性上的“is Library” - >
Android系统。
再次,我创建一个Android项目,导入previusly创建
Android库项目和classes.jar
。
我将<{1}}文件夹内容从库项目移动到
“活动”项目。它有两个子文件夹asset
和bin
。
我修改生成的Activity以扩展libs
和
删除onCreate方法的setContent行。改变
包以匹配Unity Player包ID。
将相应的行添加到清单,基本上是那些 图书馆项目。
所以一切都编译没有错误,我可以运行项目,显示启动画面,然后是黑屏,正确播放Unity场景的声音。 logcat显示以下错误:
UnityPlayerActivity
提一下......阅读这两个SO问题:1和2。它们似乎已经成功,因此可以实现遵循这些步骤(或类似步骤)。
我还发现了有用的this topic on the Unity3D forum,它基本上以更清晰的方式描述了相同的过程。
有没有人遇到过这个问题?有任何建议或替代方案吗?
问候。
答案 0 :(得分:8)
对于任何绊倒这个的人来说,Unity3d与android eclipse项目的集成在之前的版本(3.5)中被打破了!
使用较新版本的Unity(使用3.5.2成功测试),these steps之后一切正常。
如果要定义自己的活动或在片段中使用Unity,可以直接使用UnityPlayer类。为此,您可以查看Unity Forum中提到的 [UNITY_INSTALLATION] \ Editor \ Data \ PlaybackEngines \ androidplayer \ src \ com \ unity3d \ player 。
或者只是尝试这个适用于我们的代码:
UnityPlayer mPlayer = new UnityPlayer(getActivity()); // Put your activity object here
int glesMode = mPlayer.getSettings().getInt("gles_mode", 1);
boolean trueColor8888 = false;
mPlayer.init(glesMode, trueColor8888);
// Get the view - e.g. to return from the fragment method onCreateView:
View view = mPlayer.getView();
更新:第一个链接不再在unity3d支持页面上提供,但论坛条目也包含所有必需的步骤!
答案 1 :(得分:1)
我面对同样的事情。发现在统一项目集成之上需要更多与qcar相关的东西。 它主要链接Qcar库和修改清单活动。 看看这里 https://ar.qualcomm.at/arforums/showthread.php?t=1243
然而,对我没什么帮助。仍然得到同样的错误。有点困惑。
答案 2 :(得分:0)
SO上还有另一页提出这个问题。他们声称已经在高通论坛上获得了答案,与上述论坛不同:Unable to find QCARWrapper