2个月前,接到一个需求,生产现场需要APP查询SAP中的数据,并要有扫条码功能。
这段时间玩了一下unity , 还是用C#来写移动端APP。
总的来说,unity做程序还是很方便,也比较灵活,除了GUI控件中没有TableView这个控件。
1、unity开发版本和安装
unity的网站上下载5.5.2f1, 免费版就可以了,然后在用网上的方法破解一下。
android SDK, unity开发安卓APP需要这个东西,我的做法是下载android studio 2.2 ,安装后,unity就可以直接找到SDK了。
2、入门介绍
unity的原厂DEMO中告诉我们,UNITY除了做游戏还可以做很多建筑相关的程序展示,而2D开发功能也在逐渐增强。
我们要开发工厂的APP所以就用2D项目。新建一个2D的空项目即可。
下图中:
(1)hierarchy 海尔阿奇,对象列表。 unity 中所有的对象都是从gameobject这个基本对象变化而来。 在hierarchy中列出了对象和它们的层次关系。
camera, 摄像机,我觉得在2D项目中有些多余,其实2D就是一平面,把3D的摄像机搞里面反而弄复杂了,
一开始,Canmera摄像机, Canvas桌布,Game 游戏屏幕,Scene场景 这4个东西绞在一起,居然让执行程序控制要显示的区域都做不了。
后来我找到一个方法,在(3)Game中设置实际分辨率,
然后在Canvas桌布也设置实际分辨率
再用Screen Match Mode : Match Width Or Height ,
最后你在(2)Scene中缩小世界,就可以看到你的设计控件。
(4)Assets是资源商店,你可以在线使用其它开发者提供的资源,有免费的,也有付费的。
(5)项目的Assets放项目的各种文件,有C#脚本,有类库,有图片。 都有固定的目录,
比如Resources目录放图片,这样unity可以有命令固定调用这目录里的东西 Resources.Load("TableItem")
(6 )Inspector 属性窗口,这个很好理解,可视化编程都有的东东。
unity设计的核心我觉得是,所有对象都基于GameObject基础对象变化而来,你可以在GO的基础上不断增加你想加的,比如大小,图像
还有最神奇的Script 代码,有了代码就意味作有了生命。。。
一个GO 在载入的时候会把附着在上面的Script 脚本执行起来,程序逻辑就这样实现开始了。
3、APP的二维码识别
我在网上找了一个unity的例子EasyCodeScanner,改改居然可以用了,就这样简单的实现了。
(没有IOS的开发帐号,所有没有测试IOS上,但在我的华为P7、android5上是可以的。 android6上好像有问题,可能要更换lib)
4、网络SOCKET
网络还是用自己的SOCKET库,没有多一点代码。(最近发现微信小程序用的websocket,难度我的服务器也要搞websocket ?)
5、UGUI没有ListView或TableView, 预制体Perfabs
这是unity 2D比较落后的地方,居然没有一个控件来方便的展示表格数据。
无赖只有自己做一个,花了一周的时间,终于完成了一个ListView的DEMO,并把这个控件用到我的APP中。
表格的行控件,是一个一个的ClickBox,所以用到了预制体。
其实预制体就是一个控件的组合,当你有一个场景需要很多同样的对象,并且这种对象是由几个对象合并而来时,你就需要使用预制体。
MyListView例子: https://pan.baidu.com/s/1pLNjROf