Decompiled Unity5.3 (c#)
Декомпиленные исходники шарповской части юнити5.3
ссылка на гитхаб Как и ожидалось, почти весь код - это врапперы над c++ ядром. |
Ответ: Decompiled Unity5.3 (c#)
Зацените функцию:
PHP код:
|
Ответ: Decompiled Unity5.3 (c#)
А вот кастинг типа при каждой установке свойства в классе Transform
PHP код:
|
Ответ: Decompiled Unity5.3 (c#)
Цитата:
|
Ответ: Decompiled Unity5.3 (c#)
Все предустановленные направления вектора реализованы так:
PHP код:
Хотя я читал, что при присвоении типа struct в переменную создается копия. Получается, тут будет дважды создана копия: PHP код:
|
Ответ: Decompiled Unity5.3 (c#)
Ещё стал интесесен вопрос юзания оператора foreach. На каждый форыч создаётся новый объект-итератор.
Если не предполагается пробегать по той же коллекции внутри другого форыча, то можно бы сделать кэшированный итератор, для которого вместо new будет вызываться iterator.reset (this) - сбрасываем индекс в ноль или ссылку на first. В манки-юнити хочу сделать такой кэш-вариант для списков, которые не торчат наружу в юзерский код. |
Ответ: Decompiled Unity5.3 (c#)
Цитата:
Я не встречал, вроде - ни в проектах, ни в других файлах исходников. |
Ответ: Decompiled Unity5.3 (c#)
Цитата:
Все правильно читал - значимые типы в дотнете "копируются" при присвоении. Однако в приведенном тобой примере есть только 1 присвоение. Есть 2 причины почему здесь не будет "двойного" копирования. Причина 1: Есть код Код:
var vector = new Vector3(1, 2, 3); Другой код Код:
var vector = Vector3.Zero; Причина 2: Из-за того что геттер Vector3.Zero довольно простой и мал в размере, он 99% будет заинлайнен, так что var vector = new Vector(0, 0, 0); и var vector = Vector3.Zero; это одно и тоже. |
Ответ: Decompiled Unity5.3 (c#)
Цитата:
http://referencesource.microsoft.com...661cf752ff3f44 |
Ответ: Decompiled Unity5.3 (c#)
Добавлю
Код:
var vector = new Vector2(0, 0); Код:
var vector = Vector2.Zero; Код:
Это код геттера для Vector3 С инлайнигом: Код:
000007FF001837C4 xor eax,eax |
Ответ: Decompiled Unity5.3 (c#)
Цитата:
|
Ответ: Decompiled Unity5.3 (c#)
Цитата:
|
Ответ: Decompiled Unity5.3 (c#)
h1dd3n, большое спасибо за объяснения!
|
Ответ: Decompiled Unity5.3 (c#)
|
Часовой пояс GMT +4, время: 11:58. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot