Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用资源。加载?_C#_Unity3d - Fatal编程技术网

C# 如何使用资源。加载?

C# 如何使用资源。加载?,c#,unity3d,C#,Unity3d,我已经找了一段时间来解决这个问题,我加载精灵。我正试图从文件夹资产->资源->精灵->播放器加载精灵,但事实并非如此,我无法找出原因?我将它加载到一个静态类中,并尝试从另一个类调用它,因为它是我创建的结构中的一个参数,名为Item 项目结构 公共字符串itemName; 公共字符串itemType; 公共int itemId; 公共雪碧项目雪碧; 公共色彩; public Itemstring ItemName、string ItemType、int ItemId、Sprite ItemSpri

我已经找了一段时间来解决这个问题,我加载精灵。我正试图从文件夹资产->资源->精灵->播放器加载精灵,但事实并非如此,我无法找出原因?我将它加载到一个静态类中,并尝试从另一个类调用它,因为它是我创建的结构中的一个参数,名为Item

项目结构

公共字符串itemName; 公共字符串itemType; 公共int itemId; 公共雪碧项目雪碧; 公共色彩; public Itemstring ItemName、string ItemType、int ItemId、Sprite ItemSprite、Color ItemColour{ itemName=itemName; itemType=itemType; itemId=itemId; itemSprite=itemSprite; ItemColor=ItemColor; } 静态类项目数据库

私有静态项[]项=新项[]{ 新项目红色衬衫,衬衫,0,资源。加载精灵/Player/Base_3作为精灵,新颜色32255,0,0,255 }; 公共静态项getItemByidit i{ 退货项目[i]; } 其他类

Debug.LogItemDatabase.GetItemByID0.itemSprite; 它返回空值,我不知道为什么。

这是因为它是一个精灵,是更大图像资产的一部分 您需要这样做:

Resources.LoadAll<Sprite>("Sprites/Player/Base");
这将返回一个包含所有子精灵的数组,您可以使用第三个索引获得Base_3。例如:

//do this once:
Sprite[] baseSprites = Resources.LoadAll<Sprite>("Sprites/Player/Base");

//get the one you need:
return baseSprites[3];

什么是GetItemByID?你能截图你的文件夹结构吗;具体来说,路径精灵/Player/Base_3是否在unity的资产/资源中?请检查我添加的编辑这项工作,不知道您必须使用这些精灵,谢谢!我也不知道我是怎么发现的。但这与以下事实有关:子标准只是不同的元数据,而不是真实的对象。我怀疑资源可能可以单独加载它们;但我从未尝试过。我曾经用过的一个精灵集合就是一堆图标,我在任何地方都用过。只是测试了一下,你无法使用资源。LoadSprites/Player/Base/Base_3;如果你可以的话,那就太酷了,不过哦,好吧。