咨询热线

+86-0000-96877

新闻资讯
您当前的位置:主页 > 新闻资讯 >

Unity3D游戏开辟之从Unity3D到Eclipse

发布时间:2018-09-04  点击量:
更多

  ▓通过前面的进修,大师曾经晓得通过在Eclipse中为Unity编写插件的方式,我们能够实此刻Unity与Android API的通信。可是倒霉的是,这种方式并不克不及对所有的Android API见效,在某些时候,我们需要反宾为主,将Unity项目导出为Android项目,然后在Eclipse中继续点窜游戏的内容。这种方式在《Unity3D游戏开辟之Unity与Android交互挪用研究》这篇文章中曾经提及,不外并没有真正地进行过研究。之前有个叫@SHANlover的伴侣问我,能不克不及写一篇Unity项目导出Eclipse的文章,因而博主便抽暇研究了下这种方式,从而有了今天的这篇文章。起首,我们来建立一个简单地场景:

  这段脚本十分地简单,没有什么可说的,在这里我们定义了两个方式ZoomIn和ZoomOut,这两个方式我们将供给给Android来挪用。我们将这段脚本绑定到Main Cube这个对象上。接下来,游戏开发我们将项目Build一下,这里我们将项目标PackageName设为com.android.unity2eclipse,然后将其导出为一个Android项目:

  那么,如许我们就获得一个能够在Eclipse中打开的Android项目。pk10牛牛开奖可是这个Android项目我们怎样样利用呢?在金曾玺教员《Unity3D手机游戏开辟》一书中是将Unity导出的Android项目作为一个库,然后再用一个新的Android项目去挪用这个库。这本书中所利用的Unity版本是4.X,而博主所利用的Unity版本是4.5.1。最后博主就是按照这种思绪去编写Android法式,可是在履历了无数次的失败后,博主起头思疑这种方式的准确性。带着测验考试的念头,博主间接运转了由Unity导出的Android项目,成果法式成功地在手机上运转了。如图:

  相信大大都看过我博客的人城市感觉这个类有点眼熟吧,不错,在之前的《Unity3D游戏开辟之在Android视图中嵌入Unity视图》这篇文章中,我们就是操纵这个类实现了在Android视图中嵌入Unity视图,只不外其时这个类是定义在Unity的unity-class.jar这个库中的,而更为切当地位置是在com.unity3d.player这个包下面的UnityPlayerNativeActivity类,我们留意到此时这个类是承继自NativeActivity的,在前面的文章中博主已经提及这个类,它是Android供给给C/C++开辟者的接口。换句话说,Unity项目在Android平台上内部依托的现实上就是NativeActivity接口,只不外Unity本人利用的接口是封装过的,而我们这里利用的接口是间接承继自父类。那么,我们在这一刻就会发生疑问,从这个类从具体实现上来讲次要的功能就是对Activity进行初始化,那么我们在Activity中可以或许看到什么由谁来决定呢?大师留意到这里有一个SetContentView()的方式,它传入了UnityPlayer类型的参数作为Activity显示的内容。相信从此刻起头,大师对Unity供给的Android接口的认识会越来越清晰吧。为了验证我们的设法,接下来,我们来建立一个结构文件activity_main,它的代码定义如下:

  之前我们在讲Unity视图嵌入Android视图时已经碰着过Android视图无法取得核心的问题,其时就是在设置装备摆设文件中插手了如许两行代码,此时此刻,大师是不是和博主一样有种大彻大悟的感受呢。我们运转法式,会发觉界面像我们所但愿看到的那样被改变了,并且我们能够通过两个按钮来改变视图中立方体的大小:

  如许我们就能够认识到从Unity中导出的就是Android项目,我们能够间接将其点窜来达到满足我们要求的目标。至于金曾玺教员的这种方式,在官方API文档中简直有提到过这种方式,不外博主测验考试了很久,这种方式都失败了,不晓得是不是由于Unity在新版本中曾经处理了这个问题,从而能够间接导出可运转的Android项目。

  最初来说说收集上传播的一种方式,听说在Unity中将项目Build下就会在工程目次下的Temp文件夹下生成一个名为StagingArea文件夹,我们将这个文件夹在导入到Eclipse中并将其设为一个库,然后在新建的Android项目中援用这个库,并将这个项目中的assets文件夹笼盖新建项目中的assets文件夹,然后我们只需让主Acitivity承继Unity供给的Android接口中的UnityPlayerActivity即可。这种方式博主并没有去测验考试,不外在Build的时候确实会发生如许一个文件夹,不外博主感觉如许是不是有点麻烦了啊,既然Unity导出的Android项目间接就能用,我们何须要再去用这种复杂的方式呢,不外我感觉大致的思绪就是如许的,UnityPlayerActivity担任Acivity生命周期的维护,UnityPlayer担任衬着Unity场景中的内容,而我们在Unity中利用的资本都被Unity的引擎在内部进行了处置,总之把握了这些,Unity和Android的交互就根基没什么问题了

地址:这里是您的公司地址  电话:+86-0000-96877  手机:+86-0000-96877
技术支持:pk10牛牛  ICP备案编号:ICP备********号
2014-2018 pk10牛牛下注,pk10牛牛 ;兑奖,pk10牛牛开奖 版权所有