因此,在Unity中,您可以找到并创建一个神奇的文件夹,其路径为“资产/资源”。 我之所以称其为神奇,是因为它具有特殊的力量……
好吧,不是真的,但是它做了一些有趣的事情。 您可以在资源文件夹中放置希望通过路径(而不是通过引用)轻松访问的资产。 在这种情况下,资产可以是预制件,序列化的数据,材料,纹理等。
- 开展我们的独立游戏业务
- 蓬松的鱼-在Processing.py中包含Flappy-Bird-Klon
- 格里斯
- 开放世界游戏设计中的“追随乐趣”:刺客信条和孤岛惊魂的教训
- Binary Moon Star Raid独家开发人员专访
因此,通过使用Resources类,您可以在此处阅读全部内容,只要知道资源文件夹中的位置,就可以加载和使用这些资产。
这可能非常有用。 一个很好的例子是,如果您要切换子画面的材质,则无需参考所需的新材质即可。 相反,您可以利用Resources文件夹,将资料放置在其中并调用;
而且你很好走!
唯一吸引人们的是,您无需在路径名中添加文件扩展名。 例如,对于png而不是“ Folder / image.png”,它只是位置“资产/资源/文件夹/image.png”中文件的“文件夹/图像” 。
因此,请谨慎命名相同的事物!
那为什么这么好?
因此,出于多种原因,此功能可能很有用。
一种可能是您不再需要仅在场景中使用的占位符对象,因此可以引用可能需要的某些资产。 使用资源使您不再需要引用资产来访问它们。 因此,可以潜在地删除场景上所需的对象数量,现在您可以按路径引用事物了。
另一件事是,它非常适合原型制作并且易于使用。 只需将对象bash放入正确的文件夹中,然后开始繁荣吧! 可以说,这是使用资源的最大好处,就是它使访问场景中没有的资产变得多么容易。
那为什么要吮吸呢?
因此,在Unity中实际使用Resources文件夹时会遇到一些问题。
首先是当您不需要所有资产时该如何处理的问题。 当前,即使没有在任何地方实际使用资源,Resources文件夹中的所有内容基本上都与项目一起打包。 有效地将其中的所有内容视为一个内置的大型资产捆绑包。 因此,您的项目规模将会膨胀。 这不理想
另一个问题是所有内容都由路径引用。 当您必须将路径作为字符串硬编码到代码中时,这可能是个问题。 每次在项目中移动资产时,都必须更新代码。 这有点麻烦,并且在代码库中挂起一堆字符串从来都不是理想的,因为它很容易变得难以管理。 我想值得注意的是,有很多方法可以解决这个问题,但是我仍然认为这值得提出。
另一个问题是,这也意味着如果您想对新资产进行无线更新,则不能对Resources文件夹中的任何资产进行更新。 这可以吸引人们,因为使用Resources类与使用Asset Bundles不同。
那么我什么时候应该使用资源?
我想说的是,如果您要制作原型或只是充实想法,请使用它,但是如果您仍然关心性能或内存使用,则请当心!
如果您将不断需要小的资产,但不想在所有场景中都引用这些资产,那么使用资源将非常有益。 例如,您需要一些数据配置所需的脚本对象,或者,就像我前面提到的那样,您可能希望将某些材料应用于精灵以产生常见的效果。
总而言之,Unity中的资源可能非常有用,但是在性能和易用性之间需要权衡取舍,这也使您可以决定代码的外观。 我的建议是仔细考虑使用资源来加载可编写脚本的对象和小型资产以外的任何东西,尤其是在针对移动平台进行开发时。
Doc!我有哪些选择?
最后,我只想补充一点,仍然有一种方法可以通过路径获取资产,而无需使用资源,并且可以更好地控制内存使用。 这是通过使用资产捆绑包实现的,尤其是对于更复杂的游戏,我建议对此进行研究。
不幸的是,这是一个很大的话题,只想在这里结束,但是如果有兴趣的话,我很乐于在另一篇文章中谈论有关使用资产捆绑包的更多信息,所以让我知道!