我希望了解如何通过单击来更改对象(子画面)(然后它将更改为另一个子画面对象)。
如果我单击另一个对象,则先前更改的对象将被改回,而新单击的对象将被更改为另一个对象。
答案 0 :(得分:1)
如何更改Sprite
private void changeSprite(Sprite newSprite){
this.GetComponent<SpriteRenderer>().sprite = newSprite;
}
//if the object is an image you should use this instead
private void changeSprite(Sprite newSprite){
this.GetComponent<Image>().overrideSprite = newSprite;
}
如何通过“点击”获取它
private void OnMouseDown()
{
changeSprite();
}
//If it's a UI Element
public Button btn;
private void Start()
{
btn.onClick.AddListener(changeSprite);
}
“交换内容”效果,请注意,这仅对2个对象是“静态”的,您需要遍历列表/数组或任何独立于对象数量而动态工作的对象。
//Your Object Class
public Sprite initialSprite;
public Sprite changeSprite;
public bool isChanged = false;
public GameObject otherObject;
private void OnMouseDown()
{
changeSprite(changeSprite);
isChanged = !isChanged;
if(otherObject.isChanged)
{
otherObject.changeSprite(initialSprite);
otherObject.isChanged = !otherObject.isChanged;
}
}