Как изменить объект 2D спрайт, нажав?и он изменится при нажатии на другой объект, как эффект фокуса в веб-дизайне - PullRequest
0 голосов
/ 19 ноября 2018

Я хочу выяснить, как изменить объект (спрайт), нажав (затем он изменится на другой объект спрайта).

Если я щелкну другой объект, предыдущий измененный объект будет затем изменен обратно,и вновь выбранный объект будет заменен другим объектом.

1 Ответ

0 голосов
/ 19 ноября 2018

Как изменить спрайт

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; 
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...