永远就三年疗 发表于 2021-3-22 16:27

用Unity开发跨平台的非游戏应用有什么利弊?

用Unity开发跨平台的非游戏应用有什么利弊?

我心如烟卸 发表于 2021-3-22 16:35

就我所知,的确有App是使用Unity开发的。
Unity对自己的定位是“创建互动内容的综合型创作工具”,官网宣传其并不只是用来做游戏,也可以进行其他App的制作。(当然,他这么宣传并不代表他就真的合适)
一般而言,会使用到Unity开发App的有以下几种情况:
1、外包公司,有些外包项目,外包公司会利用游戏引擎的跨平台特性,解决劳动力,并且降低客户的成本(毕竟有些客户预算有限);
2、小创业团队,同样是利用Unity可以跨平台的特性,来解决人力物力不足的问题;
3、游戏开发人员,这部分就不用说了,比较熟悉Unity引擎。


以上的这几种情况其实也就阐明了Unity做非游戏应用的利,其实最主要就是可以跨平台,并且Unity有着非常强大且稳定的工具集。


但同样的,使用Unity做非游戏的应用弊端也很多。
最主要的原因集中在游戏引擎和App框架在渲染方面的不同,Unity引擎是逐帧渲染,而App是脏渲染,这也造成了使用Unity去开发App渲染消耗过大,运行时手机会很烫 :)。同时很多App上的UI效果使用Unity并没有原生好用,并且使用Unity开发非游戏应用很难控制包的大小。所以使用Unity开发非游戏应用的技术难度其实很高。


但对Unity引擎的把控度很高的话,在一定情况下使用Unity进行非游戏应用的开发并非不可行。如果是展示类的App以至于VR、AR相关的应用(Unity中有非常优秀的VR、AR解决方案),使用Unity去开发更加便利,还会有很多意想不到的好处。

冀苍鸾 发表于 2021-3-22 16:39

这个问题的答案在于这个app是什么,如果是基于3D的交互式应用,那么unity显示是个合适的工具;如果不偏重交互式3D应用,不需要3D的图像效果(又不是游戏)那么,unity可能就累赘了。

因为你提的很宽泛,所以大致这么说一下。如果可能,具体把应用的形态说说,可以具体分析。

愿为素心人 发表于 2021-3-22 16:43

同意王楠的答案,unity开发非游戏app,大坑之一是UI,还有集成其他第三方SDK也很麻烦。
UI是大部分跨平台开发方案的重灾区,开发起来没有Native顺手,用户用着更没有Native流畅。
而第三方SDK如果没有提供unity的,集成也会很麻烦。几乎所有app都会用到第三方服务了,如统计分析、社交分享、地图等等...

所以按你的需求,“类似知乎的跨平台app(手机端、电脑端、web),用户需要登录、编辑、浏览、上传文字包括图片内容”,还是走js web流吧,手机web已很常见,电脑端的案例也越来越多了,如slack。

浅层试用过大部分跨平台开发方案,深层用Adobe AIR和unity做过两个上架的项目,都是非游戏app。
选AIR的项目是因为当时的技术背景及人力的原因。前期还算顺利,UI比原生差但也堪用,但地图、统计、广告等SDK,就完全不是跨平台了,并且安卓国内外版本还要按有无google服务来用不同方案...更酸爽的是还有语音识别、音频处理等功能,c、c++的lib,先分别与obj-c、java整合,再与AIR整合...整完了开始调试,crash在AIR层还好,如果是在obj-c/java层或者c/c++层....呵呵呵。这个项目的AIR版上架跑了一年,之后重构成了Native版。
另一个选unity的项目,虽然是个非游戏app,新闻播报类,但里边的新闻主播是个unity做的3d avatar,所以为了方便整个app就都用unity了,也会遇到跟AIR类似的种种问题,然后这个app很久没有更新过了.....

内托体头 发表于 2021-3-22 16:47

建议用 QT

我心如烟卸 发表于 2021-3-22 16:52

有没有人用Unity3D不是做游戏而是做App的? - 朱涛的回答

塞翁364 发表于 2021-3-22 17:01

unity的UI系统谈不上多优秀,更缺少文字排版和预设的交互行为控件。

一般文字阅读为主的app用web开发再转到手机上都会方便很多。更别提xcode整个工具链都是为这一类应用优化的。

永远爱你冰塘 发表于 2021-3-22 17:05

我想用Unity做工业上的上位机,这样可以吗?

米老鼠和蓝精鼠v 发表于 2021-3-22 17:08

unity一个空包就十几兆大小,

心随674 发表于 2021-3-22 17:13

还不如用html5呢……
页: [1]
查看完整版本: 用Unity开发跨平台的非游戏应用有什么利弊?