介绍
从
从半年前开始,我开始使用
本文介绍了此更改的原因以及
关于我使用的技术
在这里,我将介绍我所使用的技术以及为何停止使用它。
OpenGL2
游戏正在动态地改变事物!
出于这个原因进行调查时,
我通过用
退出原因
例如,仅导入
另外,如果您控制不当,屏幕可能会闪烁或一帧之前绘制的图像可能会残留为残像。
例如,当编写一个在Dragon Quest之类的地图中四处走动的过程时,有必要在每次移动时绘制整个背景图。 (以我的技能)
无论如何,这很困难而且代码量很大,所以当我制作大约3部作品时,我决定改用另一种技术。
Cocos2d-iPhone(SpriteBuilder)
"是否有无需直接使用OpenGL就可以处理OpenGL的技术?"
我发现了
我应该在此时选择
另外,
(为此,我提高了当时在业务中使用的Swift技能。)
由于
(在使用
老实说,这项技术不是最好的!我想。
退出原因
但是,当我跳到这个
支持结束后,我已经使用了一段时间,但是每次XCode更新时,我都必须重写
(这项工作真的很痛苦。没有文献,因为它没有得到支持,这是徘徊,更改和检查
在这里,我又迷失了露头。
SpriteKit
我不想直接触摸
有了它,您可以直接操作
我不喜欢
(这也是我不喜欢触摸C的原因。)
退出原因
但是,
例如,不支持
另外,当我使用该工具创建
我已经使用了很长一段时间,但是并没有变得很方便。
显然,苹果公司不愿意改进这项技术。
斯威夫特
由于以上原因,我们将开始使用
我决定仅在需要动画的地方使用
退出原因
由于是真正的
,因此在UI周围创建时没有问题,但是由于插入
即使我想添加更多的动画,我也没意识到,因为上述原因,它将是复杂的代码。
为什么我改用Unity
像这样曲折,我到达了
在这个时代,
选择
- 这是我看过的最主要的东西。
- 它是跨平台的。
- 有很多文献。
- 我以为只有Unity才能完成。 (实际上,编辑器必须选择VB等。)
- 可以用C#编写。 (我是一位经验丰富的C#人员。)
由于这些原因,我决定使用
困惑点
当我开始
使用
我还对"如何在
由于每个开发人员对
之后,担心该角色在任何文件夹结构中应该由文件夹名称更改。
(我仍然对此感到担心。)
顺便说一句,我从现代语言
(当然,这里有一些便利,但是用以后的语言编写仍然很容易。C#选项很差,所以当您从Swift移开时,代码会感到很奇怪。Lam??bda也是多余的???它不会停止。) <铅>
改变的好点
Unity的伟大之处在于,您无需编写就无需接触OpenGL和Metal等底层。
您不必触摸
左右的用户界面
这是最大的好处。
当我使用
此外,我擅长创建复杂的UI,
创建气氛很容易,因为当我在照明周围检查了一点时,就出现了2D Light等。
无论如何,通过搜索Google可以实现大多数事情,这是一件好事。
跨平台
此外,可以轻松支持
C#还有更多代码,但是一旦我习惯了,我就不在乎了。
环绕声源
Unity也对此提供支持,能够轻松地在详细设置周围设置支持是一件好事(我指的是本书,但???)。
(有时是用XCode实现的,没有声音。)
平铺地图
它比
(我想将信息嵌入放置的磁贴中,但是不支持此操作。)
处理本地数据
使用XCode处理本地数据时,文件夹层次结构非常深,如果升级XCode版本,它将丢失。
但是,由于将Unity内部的本地数据输出到一个固定的文件夹,因此即使Unity的版本更改了,本地数据也不会消失很方便。
(Unity可以轻松更改版本。如果使用git管理它,则恢复它并不难。)
您不必自己制作FPS计时器
Unity应该在FPS计时器上运行,因此您不必在此处创建自己的处理程序。
在
(我仍然不知道哪种方法更适合使用FPS或方法移动,但是当我看到类似
在OpneGL时代,我很难制作自己的FPS,因此我认为只有协程可以使编写代码变得更加容易。
可以使用ScriptableObject。
使用XCode描述周围的设置时,
该
在这方面,使用Unity的
看来您也可以使用Excel等导入,但是也可以使用XCode进行导入,因此我将省略它。
(我想尽可能地在同一环境中管理数据,所以我真的不喜欢用Excel等进行转换的双重管理方法。)
左右的帐单
小型实现非常容易。
IAP允许您用很少的代码来实现它。
如果您放入收据支票。 .. ..好吧,在任何环境下都很难,不是吗?
(资产商店)
有一种机制可以让您立即购买所需的程序和资料。
我真的很感激。
我尚未在
那很方便!
其他
还有其他事情,但是暂时,我写下了我能记住的要点。
就我个人而言,我认为上述提到的UI和跨平台的好处是最大的。
难点改变
但是,仍然存在一些困难。
我也写了关于混乱的文章,但是???
程序弱
现代语言通常是根据过去程序的优点编写的。
因此,它与将近15年前制作的C#有很大的不同。
对于
- 枚举不能有一个方法。 (可以扩展,但是代码分散)
- 即使枚举案例中有泄漏,也不会发生编译错误。 (我认为这是有利有弊,但是Swift的这一功能使您的工作效率更高。)
-
您不能在lambda表达式中使用诸如
$0 之类的缩写。 (即使是简单的lambda表达式也将是多余的。) -
可选类型很弱(可以使用
? 等,但是由于它不是可选类型,因此需要进行null检查。可空表类型代码变得多余。) -
强制转换很弱(当然不能使用
if let = optional ,并且不会隐式强制转换为父对象,因此您需要一一编写泛型代码。这很尴尬。) -
在Switch语句中不能使用相同的大小写。 (因为不能说
case a,b: 且需要break ,所以即使具有相同属性的值也必须编写代码。) -
变量的范围有些混乱。 (退出if语句后,只能在if语句中使用的变量无法重新定义。这与如何编写程序有关,但是诸如
item 之类的变量在作用域内外具有不同的含义。我可以使用它在???) -
没有
flatMap 系统。 (有相似和不相似的东西,但是……好吧,这是语言特性的问题,所以无法解决。我经常使用flatMap系统,因此有点麻烦。)
好吧,当我把它写出来的时候,它没有锋利的边缘???
那些从
多屏支持
如果它是
但是,
您基本上将其放置在屏幕上的哪个位置?我们只能处理到这一点。 (也许)
但是,我认为这可能是优先处理速度的结果,因为使用
滚动不良
如果您仅显示一个滚动条中的约500个项目,则仅通过显示上部即可呈现500个数据。
但是,与
XCode滚动有一个习惯,但是您可以放心使用它,因为它可以高速渲染。
总之,我自己解决了滚动问题。
Firebase
上的冷
可能不只是Firebase。由于可以为Android和iOS分别创建第三方,因此设置方法对于Android和iOS是不同的。
Android并不是那么糟糕,但是iOS最终需要使用
另外,有时Android和iOS之间的处理结果也不同。 (仅用于分析。
多语种为
由于
XCode实际上是相同的(我想大多数人会自己实现它,因为XCode提供的机制很难使用)。
初始化
中有陷阱
如果您在此处阅读配置文件,发出其他线程等信息,则该应用程序有时可能会崩溃。
这只是一个习惯问题,但是它非常方便,如果您打包所有初始化处理,就会遇到一个神秘的错误(该错误在启动后立即冻结)。
我花了几个星期才注意到原因。
某些版本不起作用
这也是不可避免的,但是在Mac版本成为
就XCode而言,它是由同一家Apple公司生产的,因此在实际转让后它不起作用,而是???
由于它是
,因此在更改Unity版本时需要小心。
另外,如果您更改Unity的版本,则可能需要更新XCode的
最后
最后,我写了很多问题,但这是因为我不习惯
相反,
如果您想制作游戏并且可以清除上面的内容,建议您选择
但是,建议为业务系统分别编写
不能给出关于操作系统的直接说明是有点严格的规定,并且业务程序不会太大(服务器应该能够吸收处理过程),因此建议单独编写它们。