Суббота, 09 Ноября 2024, 05:12

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Не понимаю ''лямбду''. Unity 3D
killing002Дата: Четверг, 28 Ноября 2019, 20:33 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Вот весь код, нужный для понимая дела. Читал про этот оператор на офф. сайте и не только, но все равно не понимаю этой записи и его смысл. Ведь можно эту строку вообще не писать и будет работать. Просто происходит создание gameobject'а и все и добавления его в list. Спасайте, проблема в синтаксисе и смысле данной записи в целом.
Код

public void Start()
    {
        highlights = new List<GameObject>();
    }

    GameObject GetHighLightObject()
    {
        GameObject go = highlights.Find(g => !g.activeSelf);
        if (go == null)
        {
            go = Instantiate(highLightsPrefab);
            highlights.Add(go);
        }
        return go;
    }


123

Сообщение отредактировал killing002 - Четверг, 28 Ноября 2019, 20:34
drcrackДата: Пятница, 29 Ноября 2019, 00:54 | Сообщение # 2
старожил
Сейчас нет на сайте
смысл записи в том что ты находишь обьект, который выключен

Код
GameObject go = highlights.Find(g => !g.activeSelf);

это то же самое что
Код

GameObject FindDisabledObject(GameObject go) {
  return !go.activeSelf;
}

GameObject GetHighLightObject() {
  var go = highlights.Find(FindDisabledObject);
}


Сообщение отредактировал drcrack - Пятница, 29 Ноября 2019, 00:55
killing002Дата: Пятница, 29 Ноября 2019, 11:29 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Я так понимаю, это предикат, который мы передаём в параметры Find. Собственно это и определяет, каким образом производить поиск. Благодарю.

123
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг