当前位置:   article > 正文

Unity 代码动态改变Sprite的实验_unity如何更换sprite

unity如何更换sprite

在我的Resources文件夹在建立了一个General文件夹,文件夹下有一个叫General的PNG文件。

自己想用代码调用该文件的图片内容。

  1. Sprite spriteTest = Resources.Load("General/General_0") as Sprite;
  2. Debug.LogWarning("spriteTest="+ spriteTest.name);
  3. Sprite spriteTest1 = Resources.Load("General/General/General_0") as Sprite;
  4. Debug.LogWarning("spriteTest=" + spriteTest1.name);
  5. Sprite spriteTest2 = Resources.Load("General/General/0") as Sprite;
  6. Debug.LogWarning("spriteTest=" + spriteTest2.name);
  7. Sprite spriteTest3 = Resources.Load("General/General") as Sprite;
  8. Debug.LogWarning("spriteTest=" + spriteTest3.name);
  9. Sprite spriteTest4 = Resources.Load("General/0") as Sprite;
  10. Debug.LogWarning("spriteTest=" + spriteTest4.name);

测试后没有一个能调用到图片的。

于是在网上找到了新的代码:在原来的代码中加入<Sprite>

  1. Sprite spriteTest = Resources.Load<Sprite>("General/General_0") as Sprite;
  2. Debug.LogWarning("spriteTest="+ spriteTest.name);
  3. Sprite spriteTest1 = Resources.Load<Sprite>("General/General/General_0") as Sprite;
  4. Debug.LogWarning("spriteTest=" + spriteTest1.name);
  5. Sprite spriteTest2 = Resources.Load<Sprite>("General/General/0") as Sprite;
  6. Debug.LogWarning("spriteTest=" + spriteTest2.name);
  7. Sprite spriteTest3 = Resources.Load<Sprite>("General/General") as Sprite;
  8. Debug.LogWarning("spriteTest=" + spriteTest3.name);
  9. Sprite spriteTest4 = Resources.Load<Sprite>("General/0") as Sprite;
  10. Debug.LogWarning("spriteTest=" + spriteTest4.name);

这次发现正确的代码是:

Sprite spriteTest3 = Resources.Load<Sprite>("General/General") as Sprite; 

Debug.LogWarning("spriteTest=" + spriteTest3.name);

返回的内容为spriteTest=General_0,也就是第一个小图片的名称。

这个测试也可以通过:

Sprite spriteTest3 = Resources.Load("General/General_1", typeof(Sprite)) as Sprite;

所以从Resources中引用Sprite是要求类型的<Sprite> 或typeof(Sprite)。

经过自己的查询发现了:下面是获取所有Sprite(Multiple)中的Child Sprites

  1. Sprite[] sprites = Resources.LoadAll<Sprite>("General/General");
  2. for (int i = 0; i < sprites.Length; i++)
  3. {
  4. Debug.LogWarning(sprites[i].name);
  5. }

这样就能获得所有的子Sprites!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/566308
推荐阅读
相关标签
  

闽ICP备14008679号