unity 加载关卡_程序丨如何解决Unity3D场景加载中出现的问题?

原标题:程序丨如何解决Unity3D场景加载中出现的问题?

译者:崔嘉艺(milan21)

审校:崔国军(飞扬971)

为什么会想要和大家说说Unity3D中加载场景,主要是因为在项目的场景中经常会出现一些问题,所以在这里就想和大家分享一些加载场景的想法。

你如何对一个“关卡”进行编程?

这在游戏引擎中通常不是一个问题,但Unity需要你将每个“关卡”隔离为一个场景。并且Unity的场景有一些奇怪的设计选择(或者就是bug?) - 感觉他们引擎的场景是为玩具项目设计的,而不是为产品级别的游戏所设计。

这里有一个什么起作用、什么不起作用、以及我如何解决/在Unity内做得更好的意识流。。。这些内容没有经过仔细研究,大多是来自记忆或我自己的拍脑袋。 所以。。。这篇文章里面记录的内容可能不是全部是真的:)。

当我切换到Unreal4的时候,我将使用这样的帖子作为基准来比较Unity为什么会失败,以及多么糟糕 - 反之亦然。

更新:我添加了更多的方法和想法/评论

举个简单的例子来说:

1.加载场景的时候,游戏中的所有内容都将被销毁。

2.场景不能带参数。

3.场景不能保留状态。

4.场景不能在代码中构造或是修改。 程序化的游戏? 哈哈! 根本没有机会!

5.你不能一次编辑多个场景(这是荒谬的,给开发带来不必要地痛苦)。

6. 。。。和一堆其他问题,其中许多问题是上述问题的副作用。

更多Unity的bug使得你在处理这个问题的时候感觉像是在地狱里

1.当场景加载的时候,没有办法告诉Unity要运行什么代码。

•这是必需的,因为Unity拒绝让你传递参数。

•因为没有办法传递参数,所以你必须依赖Awake(),Start()和OnEnable()方法。

•这三种方法被定义为在对象之间以“随机”的顺序进行运行。

•如果你有一个需要被查找、加载和定位的参数,可以将其放在Awake()函数之中。

•如果需要对这个参数做全局引用,则必须在Start()函数运行期间设置它,否则不能保证它已被找到。

•任何需要使用该参数的代码都不能写在OnEnable()之外的其他方法中。

•。。。但是:很多(绝大多数?)理应在Start()方法中的代码,如果写在OnEnable()中就不能正常工作了,因为Start()和OnEnable()这两个方法做的是不同的事情!

Unity的场景加载太烦人了。

一些常见的解决方法

Unity5:增量加载

你可以加载一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值