Fer*_*jka 5 resources load renderer sprite unity-game-engine
我试图用这段代码改变我的对象的图像(用作Sprite强制转换):
GetComponent<SpriteRenderer>().sprite = Resources.Load("GameObjects/Tiles/Hole") as Sprite;
Run Code Online (Sandbox Code Playgroud)
它不起作用,但这工作(使用<Sprite>):
GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("GameObjects/Tiles/Hole");
Run Code Online (Sandbox Code Playgroud)
有什么不同?
Resources.Load("GameObjects/Tiles/Hole") as Sprite;
Run Code Online (Sandbox Code Playgroud)
您的资源文件夹中还有另一个“漏洞”。这个其他洞不是一个Sprite。因此,当您使用as Sprite它时,它根本无法转换为 1 并且不会抛出异常(在该行上),因为:
as 运算符类似于强制转换操作。但是,如果无法进行转换,as 将返回 null 而不是引发异常。
Resources.Load<Sprite>("GameObjects/Tiles/Hole");
Run Code Online (Sandbox Code Playgroud)
在工作代码中,您指定所需的文件Sprite,以便它找到正确的文件。
| 归档时间: |
|
| 查看次数: |
9433 次 |
| 最近记录: |