|
0 / 0 / 0
Регистрация: 24.01.2020
Сообщений: 45
|
||||||
Плавание плота15.04.2020, 22:13. Показов 2022. Ответов 8
Метки нет (Все метки)
Написал код для управления плота посредством стрелок, код с поворотами и перемещениями Translate писал впервые.
Посмотрите, может у кого есть предложения по оптимизации или сокращению размера.
0
|
||||||
| 15.04.2020, 22:13 | |
|
Ответы с готовыми решениями:
8
Плавание тела в двух жидкостях Выбор и програмирование 3D плота Для каждой из точек определить расстояние до ближайшей стороны плота |
| 15.04.2020, 22:24 | |
|
Не по теме: Код идеальный. Ничего не меняй. Всё очень ясно и понятно, структура просто бомба, про оптимизацию вообще нечего сказать, один восторг да и только!
0
|
|
|
0 / 0 / 0
Регистрация: 24.01.2020
Сообщений: 45
|
|
| 15.04.2020, 22:28 [ТС] | |
|
Если это не прикол, то мне приятно)
0
|
|
|
68 / 48 / 20
Регистрация: 09.10.2013
Сообщений: 156
|
|
| 16.04.2020, 11:46 | |
|
EgorCol1, к сожалению, это был прикол.
Компоновать символы так, чтобы это компилировалось и даже работало — вы уже научились. После первых успехов очень важно не оттягивать продолжение обучения. Чтобы не приходилось годами учиться на собственных ошибках, отличным вариантом может быть чтение технической литературы, где вам удастся узнать о лучших и повсеместно используемых практиках программирования. Ваш пример кода в текущем состоянии откровенно ужасен. Минимум — его очень некомфортно читать из-за отсутствия форматирования. В мире разработки ПО есть много дополнительных и очень важных формальностей, которые у вас не соблюдены. На данном этапе "читабельность" и качество вашего кода сильно хромают — это абсолютно нормально, все через это проходят. Наберитесь терпения, больше гуглите о том, как делать нужно и как не стоит, читайте классику, практикуйтесь. Удачи!
2
|
|
|
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
|
||||||||||||||||||||||||||||||||||||||||||
| 16.04.2020, 19:37 | ||||||||||||||||||||||||||||||||||||||||||
|
По оптимизации. Про GetComponent<> Кликните здесь для просмотра всего текста
Сам метод GetComponent<> не рекомендуют вызывать часто, тем более в Update. Этот метод каждый раз при вызове - перебирает все компоненты объекта и ищет необходимый. Поэтому лучше один раз получить ссылку на нужный компонент и использовать эту ссылку, например
На счёт манипуляции параметров аниматора через строки _oarsAnimator.SetBool("MoveRight", false); Кликните здесь для просмотра всего текста
Передача строки так же не оптимальное решение. Плюс всегда можно сделать опечатку, а потом долго искать причину проблемы. Для оптимизации и решения подобного случая, есть специальный метод, который возвращает хеш имени нужного параметра, точнее строки (хеш это уникальный int, а число всегда работает быстрее, чем стока). Поэтому можно сначала получить хеши всех нужных параметров, сохранить их в приватных полях и использовать именно их. Например оптимизируем ещё больше:
Частый вызов одних и тех же операций, иногда проще вынести в отдельный метод. Например у вас следующие строки встречаются три раза.
Кликните здесь для просмотра всего текста
По-сути что здесь происходит? У вас есть неких три параметра, которые ВСЕГДА работают в группе. И вы хотите чтобы "включённым" был ВСЕГДА только один из них.
Решение - создать метод, который сначала "выключает" все эти три параметра, а потом включает только нужный. Нужный параметр можно передавать в метод, например ещё больше оптимизируем:
по оптимизации пока хватит на первых порах. Теперь немного о том, как сделать код немного понятнее, взяв за основу некоторые принятые соглашения. У вас встречаются "магические числа". Player.GetComponent<FirstPersonAIO>().wa lkSpeed = 4; LeftOar.transform.localScale.x > 1.50045 transform.Rotate(Vector3.down * Time.deltaTime * 2); Кликните здесь для просмотра всего текста
Проблема в том, что если вы захотите изменить некоторое из них, вам придётся изменять его по всему коду и очень просто пропустить одно из них. Это очень неудобно, согласитесь.
Лучше вынесите такие числа в поля класса, там и виднее и очень легко будет редактироваться один раз из одного места, например
Касательно инспектора в Unity. Часто делают все публичные поля, лишь бы их было видно в инспекторе. Хотя большинство полей должны быть приватными (по логике класса). Кликните здесь для просмотра всего текста
Если вы хотите наблюдать за поведением приватных полей в инспекторе и изменять их для разных тестов, то можете временно установить перед ним специальный атрибут, который будет показывать эти приватные поля, например:
Например ещё часто делают публичное поле для GameObject-а, только для того, чтобы потом в классе "вытащить" из него один компонент. Например у вас это был объект Player, хотя по сути, вам нужен был только компонент (FirstPersonAIO) из этого объекта и всё. И глядя на инспектор, где есть поле для GameObject-а, совсем не факт, что туда нужно переместить объект именно с компонентом FirstPersonAIO. Решение очень простое, вы делаете публичное FirstPersonAIO поле, а в инспектор всё так же перетащите ваш объект со сцены, на котором есть этот компонент, и тогда поле автоматически заполниться именно ссылкой на FirstPersonAIO. Так же, нет смысла делать публичные поля для GameObject-ов, если вы будете пользоваться только их трансформом. У вас это были вёсла. Делайте поля Transform, и у вас будет стразу ссылка на нужный вам компонент. Кликните здесь для просмотра всего текста
Ещё много чего можно сказать, но вы сами всё узнаете со временем. Если применить некоторые их этих советов на ваш код, то он выглядит примерно так, но это не обязательно, скорее просто для наглядности: Кликните здесь для просмотра всего текста
5
|
||||||||||||||||||||||||||||||||||||||||||
|
75 / 53 / 25
Регистрация: 08.03.2020
Сообщений: 243
|
|
| 16.04.2020, 19:54 | |
|
samana,
Private переменные вначале ставится нижнее подчёркивание Public переменные всегда идут без нижнего подчёркивания Компоненты и GameObjects не зависимо от public или private с большой буквы Я правильно понял? Это правило хорошего тона в коде или есть какие-то рекомендации в книгах по оформлению кода или почему вообще именно так?
0
|
|
|
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
|
|||
| 16.04.2020, 20:04 | |||
Сообщение было отмечено EgorCol1 как решение
РешениеНапример мне неудобно называть публичные поля и методы с заглавной буквы, вот просто неудобно и всё.. А приватные привык уже с нижнего подчёркивания начинать, так нагляднее в коде и сразу понятно чем я манипулирую. Хотя по соглашению, если не ошибаюсь, то там должен быть префикс _m. Ещё частенько могу писать this, перед публичными полями/свойствами, тоже чисто для себя, для наглядности.
1
|
|||
|
68 / 48 / 20
Регистрация: 09.10.2013
Сообщений: 156
|
|
| 16.04.2020, 20:35 | |
|
Вставлю свои пять копеек для MrFelix.
В самых популярных и, возможно, широко используемых практиках, насколько мне известно, используют следующий принцип: публичные поля любого типа именуются с заглавной буквы, а приватные начинаются с символа подчеркивания и последующим началом с прописной буквы. Бытуют также взгляды (которые лично я полностью разделяю), что венгерская нотация, которая была упомянута в предыдущем ответе — не очень удачная практика именования. По личному опыту скажу, что принципы именования — штука зачастую сугубо индивидуальная. Я встречал случаи, когда названия абсолютно всех полей начинается с заглавной буквы, а кому-то, например, удобней использовать snake_case стиль. Всегда можно нагуглить популярные соглашения по кодСтайлу и книги известных авторов, где все по полочкам растолковывается. Также полезно иногда смотреть код из открытых репозиториев авторитетных разработчиков.
1
|
|
|
0 / 0 / 0
Регистрация: 24.01.2020
Сообщений: 45
|
|
| 16.04.2020, 21:26 [ТС] | |
|
Благодарю за столь подробный ответ! Я обязательно приму всё к сведению, и постараюсь нормализовать свой код.
0
|
|
| 16.04.2020, 21:26 | |
|
Помогаю со студенческими работами здесь
9
На плот прыгает человек. Какой будет общая скорость плота и человека? Определить, к какой стороне или к какому углу плота пловец доплывёт быстрее всего
С какой наименьшей скоростью и под каким углом относительно воды должен прыгнуть человек вдоль плота Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|