|
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
|
||||||
Минимализирования нагрузки процессора23.07.2018, 09:28. Показов 2325. Ответов 12
Метки нет (Все метки)
Доброго времени суток, если я много раз в скрипте обращаюсь к компоненту скрипта другого объекта то для ускорения мне нужно сделать на него ссылку:
0
|
||||||
| 23.07.2018, 09:28 | |
|
Ответы с готовыми решениями:
12
Предел для нагрузки процессора. Удаление переменной, уменьшение нагрузки процессора Программа для отслеживания нагрузки процессора |
|
|
|
| 23.07.2018, 12:18 | |
|
k0vpack,
Start вызывается один раз и дает микроскопическую нагрузку. Присваивать в инспекторе конечно можно, но лучше получить нужные компоненты из кода (как в вашем примере). В инспекторе можно забыть что то присвоить, код надежнее.
1
|
|
|
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
|
|
| 23.07.2018, 13:41 [ТС] | |
|
0
|
|
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 23.07.2018, 14:32 | |
|
k0vpack, в инспекторе нужны либо отладочные поля, либо настраиваемые статически, либо для обмена данными (нарушение инкапсуляции).
0
|
|
|
29 / 27 / 9
Регистрация: 10.08.2016
Сообщений: 163
|
|
| 23.07.2018, 14:36 | |
|
Cr0c, то есть нужно стараться как можно меньше передавать параметры через инспектор?
такие связи больше нагружают приложение чем через код?
0
|
|
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 23.07.2018, 16:19 | |
|
unftech, нагрузка тут ни при чём. Это правило ООП - инкапсуляция.
Добавлено через 45 секунд Вообще, "по-правильному" говорят через гет/сет работать без публичных полей.
1
|
|
|
|
||
| 23.07.2018, 16:31 | ||
|
НО если вызывать GetComponent в Start, то разница в скорости будет мизирная и ею можно пренебречь. Зато существенная разница в функционале и архитектуре, а это важно. Присваивание в инспекторе лично мне не нравится. Там можно забыть присвоить либо неправильно присвоить, либо перепутать, либо у меня куча префабов и каждый раз кидая на сцену нужно снова делать присваивания, а мне лень, и т.д. То есть поиск нужных компонентов через код мне кажется и удобнее и лучше.
1
|
||
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 23.07.2018, 17:04 | |
|
Storm23, опытные юнитисты готовы линейкой по рукам бить за всякие GameObject.Find
Добавлено через 57 секунд Таки это здоровый костыль для новичков, который больше вредит, чем помогает.
1
|
|
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 23.07.2018, 18:39 | |
|
Storm23, я на всякий случай ))
1
|
|
|
|
|
| 24.07.2018, 11:45 | |
|
На самом деле, тема связи компонентов и объектов очень важная.
Статическое связывание через инспектор годится только для самых простейших случаев. И даже если отбросить субъективные факторы (типа забыл присвоить), то статическое связывание не работает в следующих кейсах: 1) Если контент уровня генерируется динамически. Например, враги создаются динамически, и скрипт врага имеет привязку ко внешним компонентам. В таком случае привязку через инспектор сделать никак не удастся, потому что префаб не может хранить ссылки на внешние объекты. 2) Сохранение/загрузка игры. Для сохранения/загрузки нужно иметь некоторую модель состояния игры, которая связана со сценой. Понятно, что при загрузке сейва, на сцене будут динамически изменяться или создаваться объекты. Для связи этих объектов со внешним миром опять же не годятся статические привязки из инспектора. 3) Допустим я разработал скрипт, который я могу привязать к различным объектам (например какой-нибудь DamageController). При этом гораздо удобнее что бы скрипт сам коннектился к нужным компонентам объекта, чем каждый раз делать привязку вручную. А так - кинул на объект и забыл, скрипт сам нашел все что нужно, никакой доп настройки не нужно.
3
|
|
|
29 / 27 / 9
Регистрация: 10.08.2016
Сообщений: 163
|
|
| 24.07.2018, 12:09 | |
|
Storm23, по поводу префабов и save/load вы правы, связи через инспектор с внешними объектами на сцене будут утеряны
в таких случаях стоит создавать что-то, типа менеджера объектов который будет хранить и передавать нужные связи (в случае если проект большой), либо заранее писать оптимальные "сеты" для того, что бы нужный объект нашел нужный ему объект или компонент
0
|
|
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 24.07.2018, 12:43 | |
|
Storm23, спорно. Статическая привязка вполне себе удобна для динамики при создании наборов префабов.
1
|
|
| 24.07.2018, 12:43 | |
|
Помогаю со студенческими работами здесь
13
Какова нормальная температура процессора без нагрузки? Температура процессора 85 градусов при 26% нагрузки в игре Проседания нагрузки видеокарты при неполной нагрузке процессора Лагает компьютер в независимости от нагрузки на процессора и его температуры.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|