forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Вопросы от новичка (http://forum.boolean.name/showthread.php?t=15809)

WISHMASTER35 16.06.2013 14:36

Ответ: Вопросы от новичка
 
Помогите разобраться с IEnumerable<T>. Делаю свой список, в котором есть массив.
Сейчас пишу так:
Код:

    Enumerator IEnumerable.GetEnumerator() {
        return GetEnumerator();
    }
       
        public IEnumerator<AbstractBlock> GetEnumerator() {
                for(int i=0; i<blockSet.Length; i++) {
                        yield return blockSet[i];
                }
    }

Но не пойму для чего нужно два метода. И что значит IEnumerable. в названии первого.
И можно это как-то упростить, ведь массив имеет метод GetEnumerator().

pax 16.06.2013 14:47

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 261486)
И что значит IEnumerable. в названии первого.

Это явная имплементация метода интерфейса. Наверное применяется для того, чтобы разделить имплементацию одинаковых по названию методов разных интерфейсов, ведь можно наследоваться сразу от нескольких.

http://msdn.microsoft.com/ru-ru/library/87d83y5b.aspx
Цитата:

Класс, реализующий интерфейс, может явным образом реализовывать члены этого интерфейса. Явно реализованный член можно вызвать только через экземпляр интерфейса, но не через экземпляр класса.
По поводу остального хз, не пользуюсь энумераторами в явном виде.

Nuprahtor 16.06.2013 14:53

Ответ: Вопросы от новичка
 
А как-то можно бороться с не очень правильной сортировкой плейнов?

Издалека нормально


Подойти поближе - объект сзади становится виден спереди

pax 16.06.2013 16:19

Ответ: Вопросы от новичка
 
Использовать Transparent/Cutout материалы

Nuprahtor 16.06.2013 16:28

Ответ: Вопросы от новичка
 
Ух ты! Пакс, спасибо, снова выручил! Использовал обычный транспарент все время, думал что с кутаутом то же самое будет, ан нет!

WISHMASTER35 16.06.2013 21:56

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Nuprahtor (Сообщение 261489)
А как-то можно бороться с не очень правильной сортировкой плейнов?

Или полигоны меньше делать.

pax, первый метод понятно от интерфейса IEnumerable. А вот от чего второй метод с таким же названием не пойму.

pax 17.06.2013 06:43

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 261523)
Или полигоны меньше делать.

pax, первый метод понятно от интерфейса IEnumerable. А вот от чего второй метод с таким же названием не пойму.

IEnumerable.GetEnumerator() - метод интерфейса, GetEnumerator() - метод класса. Первый метод не доступен у класса, у класса доступен второй, а у интерфейса наоборот. Зачем так хз, ни разу не применял.

Morganolla 21.06.2013 00:21

Ответ: Вопросы от новичка
 
Не работает сохранение игры под андроидом... Почему не сохраняет файл сохранения? Файл записываю средствами C#.
А PlayerPrefs - можно использовать для сохранения игры?

pax 21.06.2013 02:07

Ответ: Вопросы от новичка
 
Вопрос куда ты сохраняешь файл? http://docs.unity3d.com/Documentatio...tDataPath.html сюда пробовал?

Morganolla 21.06.2013 11:27

Ответ: Вопросы от новичка
 
Разве это имеет значение куда? В винде по умолчанию в папку приложения. В андроиде вообще похоже все вешается при попытке записи в файл, перестают работать кнопки перехода на другую сцену.
Но все равно спасибо, попробую.

pax 21.06.2013 11:29

Ответ: Вопросы от новичка
 
Имеет, это же "линукс"

seaman 21.06.2013 17:24

Ответ: Вопросы от новичка
 
Цитата:

В винде по умолчанию в папку приложения.
Далеко не везде можно писать в папку приложения.

WISHMASTER35 21.06.2013 19:18

Ответ: Вопросы от новичка
 
Unity многомерные массивы не сериализует или их надо объявлять как-то по другому? Сейчас всегда так пишу int[,,];

RegIon 21.06.2013 21:45

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 261797)
Unity многомерные массивы не сериализует или их надо объявлять как-то по другому? Сейчас всегда так пишу int[,,];

Нет, да и как ты себе это представляешь?
Сделай класс, сделай в нем массив.
Потом объяви массив классов. Я так делал, вроде получилось.

WISHMASTER35 21.06.2013 22:03

Ответ: Вопросы от новичка
 
Тогда не подскажите как по 3д индексу работать с одномерным массивом?
Т.е. xyz нужно перевести просто в index.
Для 2д все просто: index = y*sizeX + x.


Часовой пояс GMT +4, время: 04:22.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot