收到邮件发个处女贴,总结一下这段时间使用EasyAR的情况

+10 投票
最新提问 7月 15, 2017 用户: wangshuhao (740 分)
修改于 7月 24, 2017 用户:wangshuhao
大伙不要喷我哈,我只是写一下,最近用EasyAR开发的心得。

1.关于替换Demo中模型的问题。

答:尽可能使用unity3d。原生的用opengl切入太难。

      1个月前我对3d模型,unity3d这块也是空白,也想着替换模型。想用原生原因很简单:原生的sdk接入现有的apps更顺,更符合我们常规接入sdk思维。最后放弃了。通过查资料知道模型展示不仅有模型还有灯光,摄像机角度,效果等等(就像一个舞台,单单有演员不够),用opengl,后续这些你怎么接入,即便ok了,做这个的下一步会想到,动态加载模型呈现,到这一步如何实现?至少我自己是没办法做。

      后面硬着头皮下载了unity3d,发现也还好,基本就是拖拉。可以参考一下http://www.jianshu.com/p/a00115099e97 ,http://www.jianshu.com/p/92734936a07e  。我也是照着这个做的。

      还有,如果你是像识别到图以后就做自己的业务(扫红包抽奖)可以用原生的sdk,做识别到以后的callback。如果是要做识别到以后显示模型,还是建议用unity3d。

     还有朋友像识别到图以后调用android的3d模型显示sdk(类似Rajawali),我也试过了不怎么推荐。原因:A。这种框架多数不能加载大(精度高)的模型。B。还是有场景这块问题,还不能可视化,不如把这个时间去搞unity3d。unity3d入门做easyar的demo真不难,我(phper的)都能搞出来,你一定可以

2.unity导出与android结合的问题。

答:多数朋友是把ar集成到现有的android apps里面。网上的教程多数是unity独立打包成一个app,或者unity为主调用android jar。ar应用恰好是反过来,android为主,ar的为辅(多数是哈)。我也尝试过了,这块也不难。无非是android要用unity里面传递数据,大家可以看一下UnityPlayer.UnitySendMessage 。

      导出来之后就是几个so,一堆资源文件,一个activity,把这些拷贝到自己的android工程就是了,就像我们copy网上的其他android工程一样。有个点要注意一下:unityactivity启动后关闭会把apps整个关闭。我暂时解决的办法是unityactivity独立一个进程(AndroidManifest里面那个actvity的android:process=":e.unity3d")

3.unity动态加载模型的问题。

回答:我现在是把要识别的图片,模型/视频。放到自己的cms上。android启动easyar这块的逻辑如下:A。把图片,模型,视频打个zip包。里面写一个自己的json描述文件。B。android下载这个zip包,解压缩,修改这个json描述文件各个资源的路径。C。整个json字符串传递到unity里面(这里的路径要注意一下,坑比较多,每个平台还不一样)。D。unity反序列化json文件,按类型动态绑定imagetarget。

        模型这一块打包我是用的assetbundle,在上面的d步骤后加载assetbundle

4.动态加载assetbundle里面的脚本失效。

   如果你在assetbundle打包cs脚本,然后尝试动态加载这个assetbundle会提示script missing。我的做法是把脚本再单独打包成dll,用反射加载。如下(不够据说ios不行)

Assembly ass = Assembly.Load (asset.bytes);
System.Type type = ass.GetType('类名');
Component t = obj.AddComponent (type);//obj是GameObject

//如果需要传递值
//我这里是加载材质,然后动态改变模型材质
value = bundle.LoadAsset ('资源值');
MethodInfo method = type.GetMethod ('方法名');
method.Invoke (t, new Object[]{ 值});

以上都是我这段时间摸索出的东西,我之前也是只会一点点android的东西,这样做下来,我还是用的eclipse。as实在用不来。希望能帮助到大家

9 个回答

+1 投票
最新回答 7月 18, 2017 用户: Dita (2,020 分)
谢谢你对EasyAR的支持!
0 投票
最新回答 7月 18, 2017 用户: albert52 (37,800 分)
6666666666,赞赞赞赞赞赞赞赞赞
0 投票
最新回答 2月 12, 2018 用户: xlwarworld (1,840 分)
有动态加载的案例了吗?给我讲讲可以吗
发表于 3月 1, 2018 用户: wangshuhao (740 分)
有,之前就做好了,有什么问题可以一起研究
0 投票
最新回答 2月 13, 2018 用户: kun0830 (200 分)
你的经验很宝贵!对我帮助很大!感谢!
发表于 3月 1, 2018 用户: wangshuhao (740 分)
谢谢,都是慢慢摸索中,有问题一起研究。easyar很久没更新了,所以很久没关注了
0 投票
最新回答 2月 22, 2018 用户: yydjtcy (840 分)
好贴,实打实的经验,共勉
发表于 3月 1, 2018 用户: wangshuhao (740 分)
共同进步,有问题一起研究,不过我主要不是做这个,业余的
0 投票
最新回答 3月 13, 2018 用户: dhydhy (690 分)
怎么显示模型 和识别图片??? 用微信扫描吗??
发表于 3月 16, 2018 用户: wangshuhao (740 分)
用apps吧,自己集成easyar sdk
发表于 3月 20, 2018 用户: dhydhy (690 分)
可以加个联系方式吗  前辈  1594402084 我的QQ  谢谢大神
0 投票
最新回答 9月 3, 2018 用户: kingsleyyyyyy (160 分)
请问可以通过扫描不同的识别图加载Unity中的不同的场景(Scene)吗?
发表于 9月 4, 2018 用户: albert52 (37,800 分)
准确的来说是加载不同的model
发表于 9月 7, 2018 用户: wangshuhao (740 分)
可以吧,之前那些图对应的模型,我都是动态加载的
apk包中没有包含任何模型
0 投票
最新回答 5月 22, 2019 用户: g185544972 (220 分)
你好,我能问一下Stroage.App这个识别路径是哪里吗
0 投票
最新回答 1月 19 用户: lazystone (160 分)
牛的。
我最近也在做安卓和Unity混合开发的工作,现在完成了安卓启用uvc摄像机,通过mediapipe识别手势数据,再传给Unity做显示。
下面就打算做安卓启动uvc摄像机,通过easyar对物体进行平面图像跟踪,识别出来后,发给unity来显示这个物体信息。
看到你的回答中经历过的一些尝试,很感动,大家一起努力钻研哈哈哈!
欢迎来到 EasyAR Q&A ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...