Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Unity, C#

3133  1 2 3 4 5 6 7 8 9 10 все
uscheswoi_82 коренной житель23.07.22 05:37
uscheswoi_82
NEW 23.07.22 05:37 

Всем привет, есть пару вопросов по Unity.

1. Как лучше установить Unity через Visual Studio 2022 Installer или отдельно скачать?



2. Как перемещать камеру в Unity на C#?

3. Как перемещать объект в Unity на C#?

Всем ответившим огромное спасибо!

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#1 
AlexNek патриот23.07.22 11:03
AlexNek
NEW 23.07.22 11:03 
в ответ uscheswoi_82 23.07.22 05:37

1. С Unity не работал, но лучше начинать со студии, если вдруг чего не будет хватать, лучше доустановить.

#2 
alex445 Забанен до 27/5/24 14:18 коренной житель23.07.22 14:41
23.07.22 14:41 
в ответ uscheswoi_82 23.07.22 05:37, Последний раз изменено 23.07.22 14:48 (alex445)

В установщике Студии есть какие-то штуки для Юнити, я их ставил. Не знаю, будет ли работать без них. Но по сути редактор Юнити может сам по себе работать - там и код писать можно. Правда поддержка синтаксиса на уровне голого блокнота.


После установки Юнити можно выбрать дебаггер и редактор кода - установленную Студию. Я качал Юнити отдельно и Студию отдельно (но как и сказал, поставил компоненты для Юнити вместе с ней). Я сейчас запускаю проект в Юнити, а потом кликаю в Студии на Ф5 для отладки. Т.е. дрюкать минимум 2 раза приходится, чтобы отладить. Можно вроде как-то и на одно нажатие настроить, но у меня пару раз получилось, а потом сбилось.


Сначала лучше сказать Unity Hub - через неё можно ставить сам редактор Юнити и запускать проекты.

https://unity.com/download#how-get-started


Если нужны какие-то старые версии Юнити или новые, которые ещё не в официальном релизе, то сюда

https://unity3d.com/get-unity/download/archive


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

https://learn.unity.com/project/survival-shooter-tutorial


Но пока ещё мест для обучения достаточно. Как на самом сайте Юнити, так и сторонних. Например

https://catlikecoding.com/unity/tutorials/


Как двигать объекты и прочее - лучше гуглить. Там главное принцип понять, что у Юнити компонентная модель - т.е. к объекту "прицепляются" другие объекты по принципу "has a" - наследование там при создании игровых объектов не сильно приветствуется. Создаёшь какой-нибудь трёхмерный объект и прикрепляешь к нему "поведения" - скрипты. Как конкретно делать - лучше в тьюториалы и гуглить. Я тут выкладывал раньше свои поделки. Могу лишь сказать, что для управления персонажем игры нужен контроллер - т.е. код, которые будет собственно управлять. Хорошо написанный контроллер, который хорошо обрабатывает всякие сложные штуки, типа незастревания в узких проходах, касания поверхностей, скольжения, бега, ходьбы, прыжков - довольно сложная вещь, за которую просят денег (в среднем 100 долларов). Можно и самому написать или по тьюториалам - долго и упорно, и наверняка не все узкие моменты будут хорошо обойдены. Погуглите Unity player controller.


В любом случае, читать придётся просто дохрена. Там буквально в каждой области зарыться можно на месяцы. Текстуры, например. Их форматы, как делать, у них куча параметров, и все на что-то влияют. Я, даже отказавшись от мультитекстурирования и слоёв бампа, отражений и прочего, всё равно испытываю некоторые сложности с ними. Т.е. мои текстуры - просто картинки, как было принято в 90-х. А стандартом давно уже требуется к самой картинке текстуры ещё минимум карты нормалей, смещений и отражений (спекуляр). Потом звук. Потом три-де. Один нормальный редактор для Юнити найти и освоить - та ещё проблема. Я выбрал Блендер. Но импорт из Блендера всё равно лучше делать потом в Юнити Про Билдер и там слегка дорабатывать. Плюс в Про Билдере лучше делать некую простую геометрию. Затем к Про Билдеру добавить Polybrush, чтобы легко и быстро наносить объекты на полигонные поверхности. Ну а для нормального моделирования в Блендере лучше купить планшет с электронным пером. Затем шейдеры и шейдерные языки... Вобщем, эту тему годами надо изучать.

#3 
alex445 Забанен до 27/5/24 14:18 коренной житель23.07.22 15:34
NEW 23.07.22 15:34 
в ответ alex445 23.07.22 14:41, Последний раз изменено 23.07.22 15:34 (alex445)

Могу только добавить, что перемещать можно не саму камеру, а какой-то объект, персонажа. А камеру уже к нему прикрепить. Тогда они будут вместе перемещаться.


Например, код моей камеры для игры от первого лица простой и выглядит так:


public class CharacterCamera : MonoBehaviour

{

float lookSpeed = 4.0f;

float xRotation = 0.0f;

float yRotation = 0.0f;


private void Start()

{

Cursor.lockState = CursorLockMode.Locked;

Cursor.visible = true;

}


void Update()

{

yRotation += Input.GetAxis("Mouse X") * lookSpeed;

xRotation -= Input.GetAxis("Mouse Y") * lookSpeed;

xRotation = Mathf.Clamp(xRotation, -90.0f, 90.0f);


// rotate player's body - player's body can't tilt

// (Spielerkörper kann nicht kippen)

transform.parent.rotation = Quaternion.Euler(0.0f, yRotation, 0.0f);


// rotate player's camera - camera can tilt

transform.localRotation = Quaternion.Euler(xRotation, 0.0f, 0.0f);

}

}


Но камера прикреплена к персонажу, движения которого описываются на порядок сложнее. Камера же просто повторяет движения персонажа, плюс некоторые свои особенности, связанные с наклоном, поворотами и прочим.

#4 
alex445 Забанен до 27/5/24 14:18 коренной житель23.07.22 15:41
NEW 23.07.22 15:41 
в ответ alex445 23.07.22 15:34

Тут ещё стоит обратить внимание на класс Mathf. Это классы Юнити, аналогичные Math в Дотнете, но оптимизированные (вроде как) для работы с float, а не с double. Игровые трёхмерные движки работают в основном с float.


Кроме того, насколько я знаю, Юнити до сих пор не поддерживает .NET, а только .NET Framework и .NET Standard (но не выше 2.0). Но даже из поддерживаемых версий небольшая часть вещей не поддерживается (какие именно - нужно рыться в их доках, ну или при написании кода будет подсказка). В частности pattern matching там в зачаточном состоянии. Они хотели сначала сделать поддержку .NET 5, год телились, потом выдали, что перейдут сразу на .NET 6. Уже скоро 6 будет deprecated, а релиза с его поддержкой до сих пор нет и непонятно, когда будет. Всё это время народ сидит по сути на .NET 4.7+. Но ещё года 4 назад и это было шикарно, т.к. кроме первых версий 4.х Юнити ничего не поддерживал. Короче, остают они от новых версий Шарпа и Дотнета на несколько лет.

#5 
uscheswoi_82 коренной житель24.07.22 22:16
uscheswoi_82
NEW 24.07.22 22:16 
в ответ alex445 23.07.22 15:41

НП Спасибо всем за ответ! У меня был раньше в 2020 году установлен Unity, устанавливал раздельно, и лицензия привязана к e-mail, нужно ли отвязывать лицензию?

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#6 
alex445 Забанен до 27/5/24 14:18 коренной житель25.07.22 00:51
NEW 25.07.22 00:51 
в ответ uscheswoi_82 24.07.22 22:16, Последний раз изменено 25.07.22 00:52 (alex445)

У меня персональная лицензия - т.е. бесплатный вариант. Я ничего не отвязывал и не привязывал, но у меня стоит две версии Юнити одновременно - одна long term support и одна бета.

#7 
alex445 Забанен до 27/5/24 14:18 коренной житель13.08.22 19:06
NEW 13.08.22 19:06 
в ответ alex445 25.07.22 00:51

Ну что, есть за полгода успехи в освоении игродела? Что-нибудь такое уже получается?

#8 
uscheswoi_82 коренной житель14.08.22 15:51
uscheswoi_82
NEW 14.08.22 15:51 
в ответ alex445 13.08.22 19:06, Последний раз изменено 14.08.22 15:52 (uscheswoi_82)

Это вы меня спрашиваете? Я отдал свой компьютер отцу на время, на котором установлен VS2022, т.к. его комп точнее Windows 10 сильно глючит.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#9 
Petrovi4 старожил16.08.22 03:01
Petrovi4
NEW 16.08.22 03:01 
в ответ uscheswoi_82 14.08.22 15:51

Я начинал с юньки в 17-м году. Ох и попил он мне крови. Потом резко перешёл на анриал. Там программинг на блупринтах. Это намного круче чем болт. Хотя, может его уже подтянули, но если вы ещё мыслите кодами C#, то нет.

В анриле можно и на С++ кодить, но когда есть визуальный редактор типа лего с пазлами, то это просто отдых. Одно удовольствие. Правда, там тоже нужно соображать, но это намного проще, чем безошибочно кодить, строго следуя синтаксису.

Уроков на торрентах валом. Материалов бесплатных тоже хватает. Каждый месяц выкладывают от 5 до 6 бесплатных ассетов, а потом опять возвращают ценник. Я собрал на анриле программу для изучения иностранных языков. Там графики ноль, но вся суть в диалогах на немецком. Это реальный тренажёр, в котором можно тренировать немецкий. В ветке немецкий язык мой пост Звуковой тренажёр. Можно скачать программку и посмотреть.

#10 
alex445 Забанен до 27/5/24 14:18 коренной житель16.08.22 09:47
NEW 16.08.22 09:47 
в ответ Petrovi4 16.08.22 03:01, Последний раз изменено 16.08.22 09:52 (alex445)

Блупринты это, как я понимаю, куски кода, которые представлены в виде прямоугольничков и которые вы компонуете. Что-то типа "поведений" в Юнити - небольших скриптов, описывающих какую-то одну задачу для объекта. Но кто-то их всё равно до этого написал, и стандартный набор явно лишь для самых базовых вещей. Т.е. свою сложную логику всё равно придётся кодить в текстовом редакторе.


Ну и про визуальное программирование уже давно все копья сломаны и пришли к выводам: для простых прожек пойдёт, для средних - уже с большим скрипом, а для сложных - абсолютное зло. Потому что неудобно смотреть на "микросхему" прямоугольничков с кучей "дорожек" между ними. Ну не хватает двухмерной поверхности для сложных систем сущностей и связей между ними. Даже если вводить укрупняющие модули. Всё это давно пройдено также с диаграммами классов, диаграммами систем и подсистем ПО - все эти картинки пойдут лишь для набросочных схем в общем виде и небольшой логики в частном виде. Но если всё равно логику придётся писать в коде, то и небольшоая логика тоже пишется в коде. Для визуальщины остаются лишь схемы для более высоких уровней связей.


Скажем так, было бы неплохо, если бы весь проект был представлен в виде такой схемы с крупными блоками со связями между ними, затем можно было бы в реальном времени "зазуммиться в блок" и посмотреть на связи классов, и затем уже посмотреть на сам код в каждом классе и методе. Только чтобы это выглядело непрерывным процессом, а не переключением окон и табов между редактором кода и редактором диаграмм. Типа как в электронных географических картах - "наезжаешь" и видишь всё больше подробностей.

#11 
alex445 Забанен до 27/5/24 14:18 коренной житель16.08.22 09:48
NEW 16.08.22 09:48 
в ответ Petrovi4 16.08.22 03:01, Последний раз изменено 16.08.22 09:56 (alex445)

В Юнити, кстати, блупринтами можно "писать" шейдеры. Ну т.е. составлять из готовых примитивов. Но если надо что кастомное или сложное - всё равно приходится открывать редактор кода, т. к. все их графические примитивы для базовых логических конструкций, типа булевых операций, операций с числами и прочего, выглядят слишком громоздко по сравнению с обычным текстовым кодом. И это, как я уже выше сказал, одна из базовых причин, почему "графическое программирование" сидит на задворках и вызывает первоначальные восторги лишь у людей, от нормального программирования далёких.


Проблема с блупринтами - это требует другого подхода и привычек, чем написание кода. У программиста и так голова занята кодом и конструкциями языка, а тут ещё правила и подходы блупринтов знать надо. Чтобы что? Чтобы просто повторить то, что можно сделать и в коде. Поэтому блупринтами пользуются в основном новички и пришедшие из других областей старички - всякие дизайнеры и "составители спецэффектов", а также обычные программисты на других языках, которым низкоуровневый шейдинговый язык неохота изучать, а от шейдеров не требуется особого кастомного поведения.

#12 
Petrovi4 старожил16.08.22 14:05
Petrovi4
NEW 16.08.22 14:05 
в ответ alex445 16.08.22 09:48

Чувствую в вашем голосе (тексте ) обиду за настоящих программистов. И даже в некоторой степени разделяю ваши чувства. Но жизнь реальная штучка, в которой порой всё рушится. Слава богу программисты ещё долго будут нужны.

Итак, игры сделанные в UE4. Эээээээээээээээээ... я и сам не ожидал. Там их около 50 или 60-ти. Это не те поделки, которые делают любители типа меня, а студии. И эти игры продаются. Кстати, я там не увидел Зельда. Но я точно знаю, что это анриал.

https://yandex.ru/search/?lr=103768&clid=2270456&win=263&s...

Но не будем о плохом. О хорошем. Можно поискать на ютубе анализ чем блупринты лучше кода и наоборот. Там на самом деле есть разница и она важна при сложных вычислениях. Чистая математика требует чистого кода.

Скрипты в юнити это всё же описания чего и как должно делаться при столкновении с коллайдером. В анриле блупринты это готовые куски кода. Кстати, каждый блупринт можно раскрыть и увидеть его нутро.

Плюсы блупринтов в том, что сразу устраняются принципиальные ошибки. Если ноды не стыкуются, то стыковать их бесполезно. Это заведомо известная ошибка и она не допускается.

На торрентах полно обучалок с переводами в том числе с чистым кодом в UE4, смешанном и только на блупринтах.

Но даже чистый блупринт требует знаний программиста. Нет, кодить не надо, но надо иметь понимание чего и как со всеми типами данных, создания переменных set и get. Создания функций, массивов, даже БД ибо без неё нет инвентаря.

В общем хочешь, не хочешь, а постепенно растёт уровень знаний от которых один шаг к чистому коду, если приспичит.

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

Вот последняя игруха собранная на пятой версии.


#13 
alex445 Забанен до 27/5/24 14:18 коренной житель16.08.22 18:49
NEW 16.08.22 18:49 
в ответ Petrovi4 16.08.22 14:05, Последний раз изменено 16.08.22 18:56 (alex445)
Итак, игры сделанные в UE4. Эээээээээээээээээ... я и сам не ожидал. Там их около 50 или 60-ти. Это не те поделки, которые делают любители типа меня, а студии.

На Юнити чел в одиночку может быстро наклепать игру. В УЕ45 тоже можно по-быстрому самому набросать всё, или без студии с толпой трудяг ничего толком не выйдет?


А вообще, проблема давно не в кодинге, а в контенте. Тупо народу дофига нужно, чтобы контент нормального качества и разнообразия сделать.


В анриле блупринты это готовые куски кода. Кстати, каждый блупринт можно раскрыть и увидеть его нутро.
Плюсы блупринтов в том, что сразу устраняются принципиальные ошибки. Если ноды не стыкуются, то стыковать их бесполезно. Это заведомо известная ошибка и она не допускается.

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

#14 
alex445 Забанен до 27/5/24 14:18 коренной житель16.08.22 18:51
NEW 16.08.22 18:51 
в ответ Petrovi4 16.08.22 14:05, Последний раз изменено 16.08.22 18:55 (alex445)
Но даже чистый блупринт требует знаний программиста. Нет, кодить не надо, но надо иметь понимание чего и как со всеми типами данных, создания переменных set и get. Создания функций, массивов, даже БД ибо без неё нет инвентаря.
В общем хочешь, не хочешь, а постепенно растёт уровень знаний от которых один шаг к чистому коду, если приспичит.

От описанного вами уровня блупринтера до "чистого кода" пропасть. Кроме понимания, чистый код приобретает себя ещё и обязательными жопочасами написания (или попыток написания) этого чистого кода. Жопочасы блупринтинга в жопочасы чистого кода плохо конвертируют себя.


Другое дело, как уже говорили, что чистый код многим и нафиг не сдался, а достаточно блупринтинга, чтобы что-то склепать и может даже немного на этом заработать. Впрочем, если где-то в студиях смогли интегрировать в свой рабочий процесс чистого блупринтера без ущерба для качества и решения задач (в чём сомневаюсь), то тоже можно.

#15 
Petrovi4 старожил17.08.22 02:02
Petrovi4
NEW 17.08.22 02:02 
в ответ alex445 16.08.22 18:51

Писал я на шарпе, начинал же со скриптов. Нудное это занятие. Для меня. Не моё это. Желания недостаточно. Мне срочно понадобилась оболочка для тренажёра. А все уроки для игрунов. Бегать, прыгать, скакать, стрелять, убивать.

На анриале та же фигня. Но там есть блупринты!

Сначала взял готовый ассет и часть прожки на нём собрал, но его функционал меня не устраивал. Учиться шарпу, чтобы сделать программу для обучения немецкому это ещё пару лет в песок. В итоге анриал победил.

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

#16 
alex445 Забанен до 27/5/24 14:18 коренной житель17.08.22 09:41
NEW 17.08.22 09:41 
в ответ Petrovi4 17.08.22 02:02, Последний раз изменено 17.08.22 09:53 (alex445)
Учиться шарпу, чтобы сделать программу для обучения немецкому это ещё пару лет в песок. В итоге анриал победил.Спорить можно бесконечно. Предлагаю померяться результатами работы. Ссылка на мой тренажёр в соседней ветке. Программка по графике никакая, но в ней главное немецкий.

Если вы не собираетесь в геймдев углубляться, а визуальная часть у вас простая, то странно выбирать Анрил. Лучше было взять что-то из десктопных или вебовских технологий - типа WPF, Blazor или ASP.NET MVC. Это если говорить о Microsoft way. Впрочем, если во главу угла поставлено "не учить язык" и "составлять код визуально, на блупринтах", то понятно. Но даже в этом случае по-моему больше подошёл бы какой-нибудь простой учебник по созданию форм в десктопных приложениях и программирование в обработчиках событий (по сути тот же скриптинг), как делали начинающие ещё 15 лет назад.

#17 
AlexNek патриот17.08.22 12:49
AlexNek
NEW 17.08.22 12:49 
в ответ Petrovi4 17.08.22 02:02
Программка по графике никакая, но в ней главное немецкий

сразу возникает вопрос, а для чего тогда 3Д графика?

Кстати, можно ли прямую ссылку на прогу?

#18 
Petrovi4 старожил17.08.22 13:10
Petrovi4
NEW 17.08.22 13:10 
в ответ alex445 17.08.22 09:41

Не увидел ответа.

#19 
Petrovi4 старожил17.08.22 13:14
Petrovi4
NEW 17.08.22 13:14 
в ответ AlexNek 17.08.22 12:49, Последний раз изменено 17.08.22 14:13 (Petrovi4)

Можно по разному ответить. От я так вижу, до удобства пользователя.

https://drive.google.com/file/d/10MVDmnEW9KaDm8dTzU73XNJst...


#20 
1 2 3 4 5 6 7 8 9 10 все