Как изменить спрайт
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;
}
}