Resources 资源

The Resources class allows you to Find and Load Objects by their path name.

Resources类允许你按照它们的路径名查找并加载物体。

All assets that are in a folder named "Resources" anywhere in the Assets folder can be accessed via the Resources.Load functions.

所有位于Assets文件夹下名为"Resources"的文件夹中的资源,都可以Resources.Load 函数访问。

In Unity you usually don't use path names to access assets, instead you expose a reference to an asset by declaring a member-variable, and then assign it in the inspector. When using this technique Unity can automatically calculate which assets are used when building a player. This radically minimizes the size of your players to the assets that you actually use in the built game. When you place assets in the "Resources" folder this can not be done, thus all assets in the "Resources" folder will be included in a build.

在Unity中通常不需要使用路径名来访问资源,相反你可以通过声明一个成员变量来暴露一个资源的引用,然后在检视面板中指定它。使用这个技巧的时候Unity可以在构建的时候自动计算哪个资源被使用。这从根本上最大限度地减少了实际用于游戏的资源的尺寸。当你放资源在"Resources"文件夹中时这个不会这么做,因此所有在"Resources"文件夹中的资源都将被包含在游戏中。

Another disadvantage of using path names is that it leads to less reusable code since scripts will have specific hard coded requirements on where the used assets are placed. On the other hand using references that are exposed in the inspector are self-documenting and immediately obvious to the user of your script.

另一个使用路径名的缺点是,缺乏可重用性,因为脚本对于使用的资源具有硬编码要求。另一方面使用暴露在检视面板中的资源引用,是自文档化的,对于使用脚本的用户来说也是立竿见影的。

However there are situations where it is more convenient to fetch an asset by its name instead of linking to it in the inspector. Essentially whenever it is inconvenient to assign the reference to the object in the inspector. For example you might want to create a game object procedurally from a script and for example assign a texture to a procedurally generated mesh.

然而,有些情况下按照名称而不是在检视面板中取回一个资源是更方便的,尤其是当在检视面板中指定引用是不方便的时候。例如你或许想从脚本创建一个游戏物体,为程序生成的网格赋值一个纹理。

var go = new GameObject.CreatePrimitive(PrimitiveType.Plane);
go.renderer.material.mainTexture = Resources.Load("glass");

Class Functions类函数

Page last updated: 2011-3-13