Zefirot
@Zefirot

Как передать объект любого класса в метод?

У меня в каждом префабе со своим классом есть метод который передает в основной класс клик по нему
public class Test1 : MonoBehaviour, IPointerClickHandler{
  public void OnPointerClick(PointerEventData pointerEventData){ GameController.instance.CellClick(this); }

.....
public class Test2 : MonoBehaviour, IPointerClickHandler{
  public void OnPointerClick(PointerEventData pointerEventData){ GameController.instance.CellClick(this); }

......
public class GameController : MonoBehaviour{
  public void CellClick(......){

как мне понять какой объект обращается и как ним потом манипулировать?
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
twobomb
@twobomb
Ну вродебы все же префабы наследуются от GameObject'a?
Можно типа такого
public void CellClick(GameObject o){
   if(o.GetType() == typeof(Car)){
      Car car = (Car)o ;
   //todo
  }
   if(o.GetType() == typeof(Animal)){
      Animal animal= (Animal)o ;
    //todo
  }
}

Если манипуляции однотипные, то можно интерфейсы прикрутить
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos Куратор тега Unity
А зачем вам это понимать? Сделайте общий интерфейс, например, и все.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы