ero*_*ero 5 c# unity-game-engine
我想以随机顺序更改UI 图像。我在UI(画布)中有一个包含图像组件的游戏对象,它最初具有空图像。我附加了一个脚本(游戏对象)来在运行时更改图像。
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已在检查器中分配了公共字段(sprite1,sprite2,sprite3)。我尝试了这两个选项,正如我在代码中评论的那样。我没有收到错误,但图像也没有按照我想要的方式更改。在程序运行期间,游戏对象(脚本所附加的)与最初一样具有空图像源。
小智 5
如果您使用的是 Unity 2017.3,您也可以只使用 Image(不确定这是否适用于旧版本)。例如:
using UnityEngine.UI;
-----
public Image ObjectwithImage;
public Sprite spriteToChangeItTo;
void Start () {
ObjectwithImage.sprite = spriteToChangeItTo;
}
Run Code Online (Sandbox Code Playgroud)
对我来说效果很好。
| 归档时间: |
|
| 查看次数: |
43719 次 |
| 最近记录: |