Автор Will Goldstone Источник Unity Game
Скачать 7.66 Mb.
|
com, который является вебсайтом свободных к использованию шрифтов, который очень полезен когда начинающийся в любом виде типографского проекта. Знайте, что некоторые вебсайты шрифта предоставляют шрифтам ограничение, сообщая, что Вы должны использовать их в проектах, которые могли сделать шрифт извлекаемым - это не проблема с Unity, поскольку все шрифты преобразованы в структуры в экспортируемом, строят из игры. Посетите этот участок теперь и загрузите шрифт, взгляд которого Вы любите, и который легок читать. Помните, Выбудете использовать этот шрифт, чтобы дать инструкции, таким образом что-нибудь чрезмерно сложное будет противоинтуитивно игроку. Если Вы хотели бы использовать тот же самый шрифт, который я использую, затем искать шрифт по имени Sugo. Загрузите шрифт, расстегните молнию на нем, и затем используйте методы, только обрисованные в общих чертах, чтобы добавить файл Sugo.ttf как актив. Как только это находится в Вашем проекте, найти шрифт в Проектной группе и выбрать это. Тогда, чтобы облегчить читать, мы увеличим размер шрифта для того, всякий раз, когда этот шрифт используется. В Инспекторе для шрифта Sugo при Истинном Импортере Шрифта Типа (обращаются к следующему скриншоту), установите Размер Шрифта в 24 и затем нажмите кнопку Apply. Если Вы выбрали собственный шрифт, знают, что калибровка может отличаться, но Вы можете возвратить и изменить Размер Шрифта, устанавливающий в любое время. Затем, выберите это как шрифт, чтобы использовать для TextHint GUI, выбирая это в группе Иерархии и затем выбирая Ваш шрифт из опускаться меню направо от параметра Шрифта компонента GUIText в 140 Инспекторе. Альтернативно, помните, что Вы можете также drag and drop (перетащили и опустили, чтобы назначить в Unity, при перемещении актива шрифта от Проектной группы и понижая это на этот параметр в Инспекторе. Теперь нажмите кнопку Play, и проверьте Вашу игру. На сей раз, когда Вы приближаетесь к двери с меньше чем четырьмя батареями, Ваше сообщение появится на экране. Когда Вы больше не столкнетесь с дверью, это исчезнет после этих пяти секунд мы определили ранее. Нажмите Игра снова, чтобы прекратить проверить игру и идти в Файл | Экономят, чтобы обновить Ваше продвижение Резюме В этой главе мы успешно создали и решили сценарий игры. Оценивая, что Ваш игрок будет ожидать видеть в игре, что Вы представляете им - за пределами Вашего предшествующего знания ее работ - Вы можете лучше всего разработать подход, который Вы должны проявить как разработчик. Попытайтесь считать каждый новый элемент в своей игре от перспективной игры игрока существующими играми, думать о сценариях реального мира, и больше всего, не принять предшествующее знание. Самый интуитивный gameplay всегда находится в играх, которые ударяют баланс между трудностями в достижении набора задачи должным образом оборудовании игрока для задачи сточки зрения информации и дружественных отношений с намеченным подходом. Соответствующая обратная связь для игрока крайне важна здесь, быть этим визуальный или звуковой базирующийся всегда рассматривают, какую обратную связь игрок имеет всегда, проектируя любую игру. Теперь, когда мы исследовали основной сценарий игры и смотрели на то, как мы можем построить и управлять элементами GUI, в следующей главе, мы будем идти дальше к более продвинутому сценарию игры, в котором мы будем смотреть на два более решающих понятия - физика Твердого тела и Экземпляр. 6 Экземпляр и Твердые тела В этой главе мы будем исследовать два решающих понятия в трехмерном 141 проекте игры. Впервой половине мы будем смотреть на понятие Экземпляра - процесс создания объектов вовремя времени выполнения. Мы тогда исследуем практический пример экземпляра, поскольку мы узнаем об использовании физики Твердого тела. Когда Вы сначала начнете строить сцены игры, Вы поймете, что не все объекты, требуемые в пределах любой данной сцены, присутствовали бы вначале игра. Это верно для большого разнообразия жанров игры как головоломки, такие как Tetris. Части загадки случайных форм созданы или иллюстрируются примерами наверху экрана в интервалах набора, потому что все они не могут быть сохранены наверху экрана бесконечно. Теперь возьмите нашу игру исследования острова как другой пример. В этой главе мы будем смотреть на физику твердого тела, создавая метод для нашего характера игрока, чтобы играть в простую кокосовую застенчивую игру, но кокосовые орехи, которые будут брошены, не будут присутствовать в сцене игры, когда это начнется. Это - то, где экземпляр входит снова. Определяя актив (наиболее вероятно prefab объекта, позиция, и вращение, объекты могут быть созданы, в то время как в игру играют - это позволит нам создавать новый кокосовый орех всякий раз, когда игрок нажимает кнопку огня. Чтобы связать эту новую часть нашей игры в игру как, это стоит, мы будем удалять одну из батарей, которая обязана входить в заставу от игры. Мы дадим игроку шанс выиграть заключительную батарею, которой они требуют, играя в кокосовую застенчивую игру. Вам предоставят модель кокосовой застенчивой платформы. Вы должны будете создать кокосовый prefab и управлять мультипликацией целей в пределах игры через обнаружение столкновений между кокосовыми орехами и целями. Как цели мы обеспечиваем, у Вас сесть "сбитый" и мультипликация 'сброса, мы также напишем scripting, чтобы гарантировать, что цели перезагружали, будучи сбитым для определенного числа секунд. Это означает, что игрок может выиграть эту миниигру, только если все три цели снижаются в тоже самое время. Это добавляет дополнительный слой навыка для игрока. В этой главе Вы изучите следующее Подготовка prefab для экземпляра Команда экземпляра осуществлена Проверка игрока введена Добавление физики к объекту с твердыми телами Обеспечение обратной связи для игрока Представление экземпляра В этой секции мы узнаем, как породить и дублировать объекты, в то время как игра работает. Это - понятие, которое используется во многих играх, чтобы создать снаряды, коллекционируемые объекты, и даже характеры, 142 такие как враги. В понятии Экземпляр - просто метод создания объекты от шаблона (prefab в сроках Unity) вовремя времени выполнения. Это может также использоваться, чтобы дублировать существующие объекты игры уже в сцене. Подход, используя экземпляр будет обычно принимать эту форму Создайте объект, который Вы желаете иллюстрировать примерами в Вашей сцене, и добавить компоненты по мере необходимости Создайте новый prefab в своем проекте, и понизьте объект, Вы продолжали работать в тот prefab Удалите оригинальный объект из сцены так, чтобы это было только сохранено как заранее приготовленный актив Напишите сценарий, который вовлекает Instantiate Проиллюстрировать) () команда, приложить это к активному объекту игры, и установить prefab, который Вы создали как объект что Instantiate (Проиллюстрировать) (), команда создает В коде В его ядре Instantiate (Проиллюстрировать) () команда имеет три параметра и написана следующим образом Instantiate (Проиллюстрировать) (объект, чтобы создать, поместить, чтобы создать это, вращение, чтобы дать это Понимая, как назначить эти три параметра, Выбудете в хорошем земельном участке, чтобы заняться любым использованием Instantiate Проиллюстрировать) (), приказывают, чтобы Вы могли столкнуться. Прохождение в объекте Чтобы пройти в объекте, Вы можете просто питаться, общественное имя переменной участника к первому параметру Instantiate Проиллюстрировать) (). Создавая общественный Variables участника типа GameObj ect наверху сценария, Выбудете в состоянии drag and drop перетащили и опустили) prefab на это в Инспекторе Unity и затем использовать этот Variables как объектный параметр, следующим образом var myPrefab : GameObject; Instantiate(myPrefab, position to create it, rotation to give it); Мы можем также гарантировать, что только определенные типы prefab могут быть брошены в этот myPrefab Variables, будучи более определенными в его печатании данных, например, мы могли сказать 143 var myPrefab : Rigidbody; Instantiate(myPrefab, position to create it, rotation to give it); Это гарантирует, что только заранее приготовленные объекты с компонентом Rigidbody могут использоваться. Позиция и вращение Позиция и вращение объектов, которые будут созданы, должны быть определены как ценности Vector3 (X, Y, Z). Их можно передать непосредственно следующим образом Instantiate (Проиллюстрировать) (myPrefab, Vector3 (0, 12, 30), Vector3 (0, 0, 90)); Они могут также быть унаследованы от другого объекта, беря ценности, которые представляют его позицию. Назначая позицию объекта иллюстрироваться примерами, Вы должны рассмотреть, где Ваш объект будет создан и должно ли это быть создано в местном космическом или мировом месте. Например, создавая наши кокосовые prefab, мы будем создавать их в пункте в мире, определенном пустым объектом игры, который будет ребенком нашего объекта характера игрока. В результате мы можем сказать, что это будет создано в местном месте - не в том же самом месте каждый раза относительно того, где наш характер игрока выдерживает и стоит. Это решение помогает нам решить, где написать наш код, то есть, к который объект приложить сценарий. Прилагая сценарий к пустому объекту, который представляет позицию, где кокосовые орехи должны быть созданы, мы можем просто использовать точечный синтаксис и ссылку transform.position как позиция для Instantiate (Проиллюстрировать) () команда. Делая это, созданный объект наследует позицию компонента пустого объекта Transform, потому что это - ток чему присоединен сценарий. Это может быть сделано для вращения, также дающего недавно порожденный объект вращение, которое соответствует пустому родительскому объекту. Экземпляр и Твердые тела Это дало бы нам, Instantiate (Проиллюстрировать) () приказывает, чтобы был похож на это var myPrefab : GameObject; Instantiate(myPrefab, transform.position, transform.rotation); 144 Мы проведем в жизнь это позже в главе, но сначала позволим нам смотреть на физику твердого тела и ее важность в играх. Представление твердых тел Двигатели физики дают играм средство моделирования реализма в физических сроках, и они - особенность в почти всех двигателях игры или прирожденно или как плагин. Unity использует Nvidia PhysX двигатель физики, точный современный двигатель физики, который используется во многих коммерческих играх в промышленности. Имея двигатель физики означает, что не только физические реакции, такие как веси сила тяжести являются возможными, но реалистическими ответами на трение, вращающий момент, и основанное на массе воздействие, также возможны. Силы Влияние двигателя физики на объектах известно как сила, и силы могут быть применены во множестве путей через компоненты или scripting. Чтобы применить силы физики, объект должен быть тем, что известно как объект твердого тела. Компонент Rigidbody Чтобы призвать двигатель физики в Unity, Вы должны дать объекту rigidbody компонент. Это просто говорит двигателю применять двигатель физики к специфическому объекту - что Вы не должны применить это ко всей сцене. Это просто работает на заднем плане. Добавив компонент Rigidbody, Вы видели бы параметры настройки для этого в Инспекторе таким же образом как любой другой объект, как показано в следующем скриншоте: У компонентов Rigidbody есть следующие параметры, которые будут регулироваться или управляться через scripting: Масса вес объекта в килограммах. Примите во внимание, что урегулирование массы на множестве различных твердых тел заставит их вести себя реалистично. Например, тяжелый объект, поражающий более легкий объект, заставит легкий объект быть отраженным далее. 145 Бремя Бремя, как в реальном исчислении, является просто количеством сопротивления воздуха, затрагивающего объект, поскольку это перемещается. Чем выше ценность, тем более быстрое желание объект замедляется когда просто затронуто воздушным путем. Угловое Бремя Подобный предыдущему параметру, но угловому бремени просто затрагивает вращательную скорость, определяя, сколько воздуха затрагивает объект, замедляя это к вращательной остановке. Используйте Силу тяжести Делает точно, поскольку это сообщает. Это - урегулирование, которое определяет, будет ли объект твердого тела затронут силой тяжести или нет. С этим инвалидом опции объект будет все еще затронут силами и воздействиями от двигателя физики и будет реагировать соответственно, но как будто в невесомости. Является Кинематическим Эта опция позволяет Вам иметь объект твердого тела, который незатронут двигателем физики. Например, если Вы желали иметь объект, отражают твердое тело с силой тяжести на, такой как спусковой механизм в автомате для игры в пинбол, поражающем шар - но без воздействия, заставляющего спусковой механизм быть тогда затронутым, Вы могли бы использовать это урегулирование. Интерполируйте Это урегулирование может использоваться, если Ваши объекты твердого тела дрожат. Вставка и экстраполяция могут быть выбраны, чтобы пригладить движение transform преобразовать, основанное на предыдущей структуре, или предсказали следующую структуру соответственно. Вращение Замораживания Это может использоваться, чтобы захватить объекты так, чтобы они не вращались в результате сил, примененных двигателем физики. Это особенно полезно для объектов, которые должны использовать силу тяжести, но вертикальное пребывание, такое как характеры игры. Создание миниигры Чтобы осуществить, на что мы только что смотрели, мы создадим кокосовую застенчивую игру, которая набрасывается на наш доступ к заставе. Играя в игру, игрок будет вознагражден с заключительной батареей, которой они требуют, чтобы зарядить дверь заставы. Поскольку мы уже настроили элемент заряда батареи игры, мы просто должны удалить одну из батарей от существующей сцены, оставляя игрока с одним меньше. Выберите один из объектов, названных батареей в группе Иерархии, и затем удалите это с Командой + Клавиша Backspace (Mac) или Удалите (PC). Создание кокосового prefab Теперь, когда мы узнали об экземпляре, мы начнем нашу миниигру, 146 создавая объект, который будет брошен, то есть, кокосовый орех. Пойдите в Объект Игры |, Создают Другой | Сфера Это создает новую сферу примитивный объект в сцене. В то время как это не будет создано непосредственно перед редактором viewport, Вы можете легко изменить масштаб изображения к этому, толпясь Ваш курсор по представлению Сцены и нажимая F центр) на клавиатуре. Переименуйте этот объект от Сферы до Кокосового ореха, выбирая объект в Иерархии и нажимая Возвращение (Mac) или F2 (PC) и перепечатывание. Затем, мы сделаем этот объект более соответствующим размером и формой для кокосового ореха, сокращаясь и тонко расширяя его размер в Оси Z. В компоненте Transform (преобразовать) Инспектора для объекта Coconut, измените ценность Масштаба для X и Z к 0.5 и Y к 0.6. Структуры, которые будут использоваться на кокосовом орехе, доступны в кодовой связке, обеспеченной на packtpub.com |