我想改变UI image以随机顺序。我有一个游戏对象用户界面(画布)含有图片组件它有空图像最初。我附加了一个脚本(游戏对象)来在运行时更改图像。
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class changeImg : MonoBehaviour {
public Sprite sprite1;
public Sprite sprite2;
public Sprite sprite3;
void Start()
{
ChangeImg();
}
void ChangeImg()
{
int rand=Random.Range(0,3);
if(rand==0)
{
gameObject.GetComponent<Image> ().sprite = sprite1;
//gameObject.GetComponent<UnityEngine.UI.Image> ().sprite = sprite1;
}
else if(rand==1)
{
gameObject.GetComponent<Image> ().sprite = sprite2;
// gameObject.GetComponent<UnityEngine.UI.Image> ().sprite = sprite2;
}
else if(rand==2)
{
gameObject.GetComponent<Image> ().sprite = sprite3;
//gameObject.GetComponent<UnityEngine.UI.Image> ().sprite = sprite3;
}
}
}
我已在检查器中分配了公共字段(sprite1,sprite2,sprite3)。我尝试了这两个选项,正如我在代码中评论的那样。我没有收到错误,但图像也没有按照我想要的方式更改。在程序运行期间,游戏对象(脚本所附加的)与最初一样具有空图像源。
Use overrideSprite
字段而不是sprite
- 文档
不幸的是,unity ui 充满了这样的陷阱,而且它的 api 完全违反直觉,所以你必须小心并定期检查文档
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)