#c# #unity3d
#c# #unity3d
Вопрос:
В чем разница между созданием переменной специально для присвоения переменной и использованием ключевого слова new для ее создания в соответствии с присвоением значения? Я понимаю, что они оба дают одинаковый результат, я просто хотел бы знать, есть ли какие-либо различия в производительности и тому подобное.
Например:
this.transform.position = new Vector3(mousePosInBlocks, this.gameObject.transform.position.y, this.transform.position.z);
против
Vector3 temp = new Vector3(mousePosInBlocks, this.gameObject.transform.position.y, this.transform.position.z);
this.gameObject.transform.position = temp;
В этом примере кода используется система позиций Unity 5s с игровыми объектами..
Комментарии:
1. Можете ли вы сравнить скомпилированный код? Я бы ожидал, что они будут точно таким же кодом в режиме выпуска.
2. @Rup Я только что просмотрел скомпилированный код, и он выглядит так же, просто строки расположены в немного другом порядке. Спасибо!
3. @Rup Я немного новичок в StackOverflow, поэтому я не уверен, что это единственный способ, но если вы создадите короткий ответ, я пометлю его как правильный и проголосую за него. Спасибо за помощь!
4. Первый требует больше горизонтального пространства. Второй требует больше вертикального пространства.
5. В «вертикальном» примере вы можете отлаживать переменную temp немного проще, чем переходить к «горизонтальному» коду. YMMV.
Ответ №1:
Скомпилированный код был по существу таким же, что означает практически отсутствие различий. Спасибо @Rup за то, что указал мне на это.
Ответ №2:
Оба имеют одинаковый конечный результат, однако второй метод не нужен, поскольку новая переменная ‘temp’ создается и сохраняется в памяти. Для этого требуется немного памяти и небольшая вычислительная мощность.
Комментарии:
1. Спасибо за информацию!