Автор Will Goldstone Источник Unity Game
Скачать 7.66 Mb.
|
, Экономят в редакторе сценария, и переключаются назад на Unity теперь. Назначение сценария В группе Иерархии, расширьте целевую модель, которую Вы добавили к платформе, чтобы видеть ее составные части, и затем расширяете target_pivot детскую группу, чтобы показать цель непосредственно и ее поддержки. Они должны быть похожими на это В последнем скриншоте я выбрал цель непосредственно. Вы должны сделать тоже самое теперь, поскольку мы должны гарантировать, что сценарий, который мы только написали, назначен на этот объект, в противоположность родительской целевой модели. Мы должны проверить на столкновения с этой детской частью, поскольку мы не хотим, чтобы столкновения были вызваны, если игрок бросает кокосовый орех в основу или поддержки, например. С этим отобранным объектом, пойдите в Компонент | Сценарии | CoconutCollision. Сценарий, который мы только написали, будет добавлен, наряду со Звуковым Исходным компонентом. Теперь тяните целевого родителя от группы Иерархии до Целевого Variables участника общественности Корня и targetHit и targetReset звуковых файлов от Проектной группы до соответствующих общественных variables участника в Инспекторе, как иллюстрировано в следующем скриншоте: 168 Теперь пойдите в Файл |, Экономят Сцену в Unity, чтобы обновить Ваше продвижение. Нажмите кнопку Play, чтобы проверить игру и прогулку к платформе, удостоверяясь, что Выстоите на циновке - Вы должны теперь быть в состоянии бросить кокосовые орехи и сбить цель. Нажмите Игру снова, чтобы прекратить проверять. Чтобы закончить нашу установку миниигры, мы сделаем еще три цели, используя заранее приготовленную систему. Создание большего количества целей Чтобы сделать больше целей, мы дублируем нашу существующую цель, превратив это в prefab. Сделайте новый prefab, выбирая папку Prefab в Проектной группе и идя в кнопку Create и выбирая Prefab. Переименуйте это от нового prefab, чтобы Предназначаться для Prefab. Теперь, drag and drop (перетащили и опустили) целевой объект родителя в Иерархии на этот новый prefab, чтобы спасти это. Текст родительской цели в Иерархии должен стать синим, указывая, что это связано св проекте. Теперь выберите родительскую цель в группе Иерархии, и Команду прессы + D (Mac) или Ctrl + D (PC), чтобы дублировать этот объект. С отобранным дубликатом, устанавливает его X позиций в компоненте Transform (преобразовать) в Инспекторе к 1.8. Повторите этот шаг дублирования снова теперь, чтобы сделать третью цельно на сей раз, устанавливая X позиций в 169 Победа игры Чтобы закончить Functions нашей миниигры - чтобы дать игроку заключительную батарею, они должны зарядить дверь заставы - мы должны будем написать сценарий, который проверяет, сбиты ли все три цели сразу. Выберите папку Сценариев в Проектной группе, и используйте кнопку Create, чтобы сделать новый файл JavaScript. Переименуйте этот сценарий CoconutWin, и затем щелкните два раза его изображением, чтобы начать это в редакторе сценария. Установка Variables Наверху сценария, добавьте следующие четыре variables: static var targets : int = 0; private var haveWon : boolean = false; var win : AudioClip; var battery : GameObject; Здесь мы начинаем со статического Variables, названного целями, который является эффективно в противоречии с магазином, сколько целей в настоящее время пробивается вниз - этому назначит изменение, которое мы произведем в нашем сценарии CoconutCollision позже. У нас тогда есть частный Variables, названный haveWon, который будет мешать этой миниигре быть переигранным, просто будучи установленным в истинный после первой победы. У нас тогда есть два общественных variables участника один, чтобы сохранить скрепку аудио победы, и другой, чтобы сохранить prefab батареи, так, чтобы этот сценарий мог иллюстрировать примерами его, когда игрок победил. Проверка победу Теперь добавьте следующий код к Update () function: if(targets==3 && haveWon == false){ targets=0; audio.PlayOneShot(win); Instantiate(battery, Vector3(transform.position.x, transform.position.y+2, transform.position.z), transform.rotation); haveWon = true; } Это, если у утверждения есть два условия. Это гарантирует, что целевой счет достиг 3, подразумевая, что они должны все быть сбиты, и также что haveWon Variables ложен, означая, что это - первый раз, когда игрок делал попытку игры этой миниигры. 170 Когда эти условия соблюдают, следующие команды выполнены Сценарий перезагружает целевой Variables к 0 (это - просто другая мера, чтобы гарантировать, что, если утверждение не повторно вызывает, Скрепка аудио победы играется как обратная связь игрока Случай объекта, который мы назначим на Variables батареи, иллюстрируется примерами, беря его позицию с ручным Vector3, который использует элемент X и ценности Z платформы (как, именно это к этому сценарию будут относиться, добавляя 2 к ценности y Мы устанавливаем haveWon Variables в истинный, что означает, что игра не может быть выиграна снова, и мешает игроку произвести больше батарей Наконец, поскольку мы играем звук, добавьте следующую линию к самому основанию сценария @script RequireComponent (AudioSource) Теперь пойдите в Файл |, Экономят в редакторе сценария, и переключаются назад на Unity. Назначение сценария Выберите объект родителя платформы в группе Иерархии и пойдите в Компонент | Сценарии | Кокосовая Победа Чтобы закончить это, назначьте prefab батареи от папки Prefab в Проектной группе к Variables участника батареи, и звуковой эффект Победы от Кокосовой папки Игры до Variables участника Победы. Когда сделано, компонент сценария должен быть похожим на это Увеличивание и цели decrementing Наконец, чтобы сделать работу игры, мы должны возвратиться к нашему сценарию CoconutCollision, и добавить тот к статическим целям Variables в CoconutWin, когда мы сбиваем цель, и вычитаем тот, когда цель перезагружает. Это просто сделать, поскольку наш сценарий уже настроен, чтобы обращаться с теми двумя событиями. Щелкните два раза на изображении сценария CoconutCollision в папке Сценариев, чтобы начать это в редакторе сценария. 171 Добавление В Functions-OnCollisionEnter обнаружения столкновения () - если утверждение показывает линию, устанавливающую beenHit к истинному. Найдите линию beenHit=true; и после этого, добавьте следующую линию CoconutWin.targets ++; Вычитание В Update () function, второе, если ручки утверждения, перезагружающие цель, подразумевая, мы должны вычесть от целевого счета. Найдите линию beenHit=false; и затем добавьте следующую линию после этого CoconutWin.targets-; В обоих этих случаях мы используем точечный синтаксис, чтобы обратиться к сценарию (эффективно Classes), сопровождаемый названием Variables, а именно, целей. Пойдите в Файл |, Экономят в редакторе сценария, и возвращаются к Unity. Нажмите кнопку Play теперь и проверьте игру. Бросок кокосовых орехов и сбивание всех трех целей сразу должны заставить платформу иллюстрировать примерами батарею для Вас, чтобы собраться. Когда это делает, Вы просто нажимаете Клавишу "пробел, чтобы перепрыгнуть через барьер и собрать батарею. Нажмите Игру снова, чтобы прекратить проверять игру, и пойти в Файл | Экономят Сцену в Unity, чтобы обновить Ваше продвижение. Последние штрихи Чтобы заставить эту миниигру чувствовать себя немного больше полируемой, мы добавим перекрестие к настороженному показу, когда игрок будет стоять на циновке броска, и использовать наш существующий объект GUI TextHint, чтобы дать инструкции игрока относительно того, что сделать, чтобы выиграть кокосовую застенчивую игру. Добавление перекрестия Чтобы добавить перекрестие к экрану, сделайте следующее Откройте Кокосовую папку Игры в Проектной группе. 172 Выберите файл структуры Перекрестия. Пойдите в GameObject |, Создают Другой | Структура GUI. Это возьмет измерения файла структуры и назначит им для Вас, создавая новый объект Texture GUI, названный в честь структуры Перекрестия. Это автоматически отобрать в группе Иерархии, таким образом Вы сможете видеть ее компонент GUITexture в Инспекторе. Графическое перекрестие должно было стать видимым в представлении Игры ив представлении Сцены, если у Вас есть кнопка Game Overlay toggled. Поскольку это сосредоточено по умолчанию, это работает отлично с нашими маленькими 64 x 64 файла структуры. Когда мы создали файл структуры для этого примера, было важно, что мы использовали легкие и темные края так, чтобы крест был легок видеть независимо оттого, смотрит ли игрок кое на что легкое или темное. Примите во внимание, что, если не выбирая файл структуры и просто создавая Структуру GUI, Вам подарят эмблему Unity. Вы тогда должны обменять это для своей структуры в Инспекторе, также как заполниться в измерениях вручную. Поэтому это всегда лучше, чтобы выбрать структуру, Вы желаете сформировать свой объект Texture GUI сначала. Toggling перекрестие Структура GUI Откройте сценарий PlayerCollisions от папки Сценариев Проектной группы. В OnControllerColliderHit () Functions, Вы заметите, что у нас уже есть scripting, который проверяет, находимся ли мы на циновке броска. Поскольку мы хотим, чтобы перекрестие было видимо только, когда мы будем на этой циновке, мы добавим больше кодак ним если утверждения. Перед, если утверждение, которое читает if(hit.collider == GameObject.Find("mat").collider){ CoconutThrow.canThrow=true; Добавьте следующие две линии var crosshairObj : GameObject = GameObject.Find("Crosshair"); var crosshair : GUITexture = crosshairObj. GetComponent(GUITexture); Здесь мы устанавливаем два variables, тот, который находит объект перекрестия, использующий GameObject. Найдите и имя объекта и другой, который использует GetComponent (), чтобы представить компонент предыдущего Variables GUITexture. Делая это, мы можем просто позволить и повредить перекрестие, еще используя если и утверждения. Теперь в, если утверждение, показанное ранее, мы добавляем следующую линию 173 crosshair.enabled = true; Ив сопровождении еще утверждение, мы добавляем линию crosshair.enabled=false; Информирование игроку Чтобы помочь игроку понять, что они должны сделать, мы будем использовать наш объект GUI TextHints от Главы 5, чтобы показать сообщение на экране, когда игрок будет стоять на циновке броска. В, если утверждение OnControllerColliderHit () в PlayerCollisions, добавьте следующие линии TextHints.textOn=true; TextHints.message = "Knock down all 3 at once to win a battery!"; GameObject.Find("TextHint GUI").transform.position.y = 0.2,- Здесь мы включаем TextHint GUI, устанавливая его статический Variables textOn к истинному, тогда посылая последовательность текста к его сообщению статический Variables. Таймер в пределах сценария TextHints будет заботиться о выключении этого сообщения, как только игрок оставляет циновку. Здесь мы также использовали GameObject. Найдите, чтобы обратиться к TextHint GUI объект непосредственно и установить его y позицию в 0.2. Это - то, потому что, по умолчанию, наши TextHint GUI сообщения появляются в центре экрана, который означал бы, что они будут в том же самом месте как наше перекрестие. Поскольку мы не хотим это, мы используем последнего этих трех линий в предыдущем кодовом отрывке, чтобы установить позицию ниже на экране. Теперь, в еще утверждение OnControllerColliderHit (), добавьте следующее GameObject.Find("TextHint GUI").transform.position.y = 0.5; Это просто перезагружает TextHint GU I объект назад к его оригинальной позиции, когда игрок сделан с кокосовой игрой и оставляет циновку. Ваш законченный OnControllerColliderHit () Functions должен быть похожим на это Пойдите OnControllerColliderHit(hit: ControllerColliderHit){ var crosshairObj : GameObject = GameObject.Find("Crosshair"),-var crosshair : GUITexture = crosshairObj.GetComponent(GUITexture); if(hit.collider == GameObject.Find("mat").collider){ CoconutThrow.canThrow=true; 174 crosshair.enabled = true; TextHints.textOn=true; TextHints.message = "Knock down all 3 to win a battery!"; GameObject.Find("TextHint GUI").transform.position.y = 0.2,} else{ CoconutThrow.canThrow=false; crosshair.enabled = false; GameObject.Find("TextHint GUI").transform.position.y = 0.5; } } в Файл |, Экономят в редакторе сценария, чтобы обновить Ваше продвижение и возвратиться к Unity. Нажмите кнопку Play и проверьте игру. Теперь, стоя на циновке броска, Вы должны видеть перекрестие и сообщение, говоря Вам, что сделать. Оставьте циновку, и перекрестие должно исчезнуть из экрана, сопровождаемого сообщением после нескольких секунд. Нажмите Игру снова, чтобы прекратить проверять игру, и пойти в Файл | Экономят Проект обновить Ваше продвижение пока. Резюме В этой главе мы затронули различные темы, которые Вы найдете крайне важным, создавая любой сценарий игры. Мы смотрели на осуществление объектов твердого тела, которые используют двигатель физики. Это - кое-что, на что Вы вероятно расширитесь во многих других сценариях игры, работая с Unity. Мы также исследовали понятие экземпляра, кое-что, что очень важно, чтобы схватиться с, поскольку это означает, что Вы можете создать или клонировать любой заранее приготовленный актив или объект игры вовремя очень полезного инструмента во-время-выполнения-a в Вашем проектирующем игру арсенале. Мы также дали игроку дальнейшую обратную связь, снова используя наш объект GUI TextHint, сделанный в Главе 5, и работали через сценарии, чтобы послать информацию в этот объект. Они - понятия, которые Вы продолжите использовать в остальной части этой книги ив Ваших будущих проектах Unity. В следующей главе мы будем отдыхать от кодирования и смотреть на большее количество эстетических эффектов Unity. Мы исследуем использование систем частицы, чтобы создать огонь вне предоставления каюты заставы игрок визуальная награда зато, чтобы выиграть миниигру и открыть дверь. 175 7 Системы Частицы В этой главе мы будем смотреть на некоторые из эффектов предоставления, доступных для Вас как разработчик Unity. Чтобы создать более динамические трехмерные миры, отдавая эффекты за пределами простых материалов и texturing используются, чтобы моделировать, и часто подчеркнуть, особенности реального мира. Много трехмерных игр приняли визуальные соглашения захваченных камерой образов, вводя такие эффекты как вспышки линзы и полоски света как часть моделируемой точки зрения, которая в реальном исчислении никогда не свидетельствовала бы такие эффекты. Мы уже использовали в своих интересах эффект предоставления вспышки линзы в Главе 2, где мы использовали вспышку линзы Солнца на легком компоненте нашего главного направленного света. В этой главе мы будем смотреть на более универсальные эффекты, которые могут быть достигнуты при использовании систем частицы в пределах Вашего трехмерного мира. Игры используют эффекты частицы достигнуть обширного диапазона эффектов от тумана и дыма к искрам, лазерами простым образцам. В этой главе мы будем смотреть на то, как мы можем использовать две системы частицы, чтобы достигнуть эффекта моделируемого огня. В этой главе Выбудете учиться Что составляет систему частицы - ее компоненты и параметры настройки Как построить системы частицы, чтобы моделировать огонь и дым Дальнейшая работа с инструкциями игрока на экране и обратной связью Используя variables, чтобы активизировать системы частицы вовремя времени выполнения Какова система частицы? Система частицы упомянута в Unity как система - а не компонент как, требуется много компонентов, сотрудничающих, чтобы функционировать должным образом. Прежде, чем мы начнем работать с 176 системами непосредственно, мы должны понять составные части и их роль в системе. Эмитент частицы В пределах любой системы частицы компонент эмитента отвечает за иллюстрирование примерами отдельных частиц. Весть Эллиптический Эмитент Частицы и доступный Эмитент Частицы Петли. Эллипсоид обычно используется для эффектов, таких как дым, пыль, и другие такие экологические элементы, которые могут быть созданы в определенном месте. Это упоминается как эллипсоид, потому что это создает частицы в пределах сферы, которая может быть протянута, чтобы приспособить систему. Эмитент петли создает частицы, которые привязаны непосредственно к трехмерной петле и могут или быть оживлены вдоль вершин петли или просто испущены на пункты петли. Это более обычно используется, когда есть потребность в прямом управлении предоставлением позиции частицы разработчик, способность следовать за вершинами петли означает, что они могут проектировать точные системы частицы в любой трехмерной форме, которой они желают. В составляющих сроках у обоих эмитентов есть следующие параметры настройки вместе Размер видимый размер отдельной частицы Энергия количество времени частица существует в мире перед авторазрушением Эмиссия число частиц, испускаемых за один раз Скорости скорость, на которой едут частицы Мы будем смотреть на некоторые из более детальных параметров настройки, определенных для любого вида эмитента, поскольку мы идем далее в главе. Для задачи создания огня мы будем использовать эллиптического эмитента - это позволит более случайный эффект, поскольку это не привязано к петле. 177 Аниматор Частицы Аниматор Частицы отвечает, как отдельные частицы ведут себя в течение долгого времени. Чтобы казаться динамичными, у частиц есть продолжительность жизни, после которой они авторазрушат. Как в нашем примере создания огня, должны идеально быть оживлены частицы так, чтобы внешность каждой отдельной частицы изменилась вовремя ее продолжительности жизни в мире. Поскольку огонь разрывается и усиливает реальный огонь - мы можем использовать компонент аниматора, чтобы применить различие цвета и видимости, также как применить силы к частицам непосредственно. Частица Renderer Частица renderers определяет визуальное появление отдельных частиц. Частицы - эффективно квадратные эльфы (2-ая графика, ив большинстве случаев предоставлены в той же самой манере как трава, которую мы добавили к нашему ландшафту в Главе 2 - при использовании billboarding техники, чтобы дать появление всегда столкновения перед камерой. Частица renderers в Unity может показать частицы другими способами, но billboarding является соответствующим 178 для большинства использования. Частица компонент Renderer также обращается с материалами, относилась к системе частицы. Поскольку частицы предоставлены просто, поскольку эльфы, применяя частицу shaders к материалам в renderer компоненте означают, что Вы можете создать иллюзию неквадратных эльфов при использовании альфа-канала окруженные структуры (прозрачности. Вот пример, который мы будем использовать коротко на нашем материале огня - темная область здесь - прозрачная часть В результате использования прозрачности для частицу них больше нет квадратного появления - поскольку предоставленный 2-ыми эльфами обычно был бы. Комбинируя отдавание только видимой части этой структуры с более высокими ценностями эмиссии эмитента, эффект плотности может быть достигнут. Частица renderers может также оживить частицы, используя УЛЬТРАФИОЛЕТОВУЮ мультипликацию, при использовании сетки изображений, чтобы эффективно обменять структуры вовремя продолжительности жизни частицы, но это немного более продвинуто чем область этой книги, таким образом рекомендуется, чтобы Вы обратились к руководству Unity для получения дополнительной информации об этом. В резюме Система частицы работает, потому что у нее есть ряд компонентов, которые сотрудничают, а именно, эмитент, создающий частицы, аниматор, определяющий их поведение / изменение в течение долгого времени, и renderer определение их эстетических материалов использования, и показывают параметры. Теперь, мы будем смотреть на создание следующей части нашей учебной игры, которая достигнет высшей точки в зажигании огня, сделанного из двух систем частицы, один для огня и другого создания пера дыма. Создание задачи Наша существующая игра состоит из задачи для игрока закончить, чтобы войти в заставу - они должны собрать четыре батареи, чтобы привести дверь в действие, один из которых должен быть выигран, 179 выигрывая игру, которую мы добавили в предыдущей главе. В настоящее время, войдя в заставу, игрок встречен со смыслом разочарования как нет ничего, чтобы быть найденным внутри. В этой главе мы изменим это, добавляя коробок спичек, который будет поднят игроком, когда они войдут в заставу. Мы тогда создадим наш огонь снаружи, который может только быть зажжен, если игрок несет коробок спичек. Таким образом, мы можем показать игроку ряд регистраций, ждущих, чтобы быть освещенными, принуждая им попытаться найти спички, заканчивая задачи вынутый (то есть, открывая дверь. Чтобы создать эту игру, мы должны будем осуществить следующее в Unity: Определите местонахождение пакета актива, и добавьте модель дров к нашей сцене около заставы. Создайте системы частицы для огня и дым для того, когда огонь зажжен. Тогда заставьте их не испускать пока не вызвано сценарием. Настроенное обнаружение столкновения между характером игрока и дровами возражает, чтобы зажечь огонь, включая компонент эмитента. Добавьте модель спичек к заставе и настройте обнаружение столкновения, чтобы функционировать как коллекция объекта, и заставить это ограничить, может ли огонь быть зажжен. Используйте наш объект GUI TextHint, чтобы показать игроку намек, если они приближаются к огню без спичек. Загрузка актива Чтобы заставить активы, необходимые заканчивать это осуществление, определите местонахождение файла, названного firePack. unitypackage от нашей извлеченной кодовой связки. В Unity, пойдите в Активы | Пакет Импорта, и проведите к местоположению, Вы загрузили пакет к, и выбираете его. Это импортирует несколько файлов, требуемых создать осуществление огня Трехмерная модель регистраций походного костра Структура Пламени для нашего материала системы частицы огня Структура Дыма для нашего материала системы частицы дыма Звуковая скрепка треска огня Материальные папки для трехмерных моделей Файлы будут импортированы в папку в Проектной группе под 180 названием особенность Огня Добавление груды регистрации В папке особенности Огня в проектной группе Вы найдете модель названной походным костром. Выберите это, и измените Коэффициент пропорциональности на 0.5 в компоненте Импортера FBX Инспектора. Это гарантирует, что модель импортирована в нашу сцену в разумном размере по сравнению с другими объектами, уже представляют. Нажмите кнопку Apply у основания компонентов в Инспекторе, чтобы подтвердить это изменение. Теперь тяните эту модель в Сцену, и используйте инструмент Transform (преобразовать, чтобы поместить это около заставы и кокосового ореха, застенчивого, которые уже присутствуют. Вот расположение, которое я использовал Теперь, потому что мы не хотим, чтобы наш игрок шел через эту модель, у этого должен быть коллайдер. Обычно, со сложными моделями, такими как это, мы использовали бы Импортера FBX, чтобы произвести коллайдеры петли для каждой отдельной петли в модели. Однако, при условии, что мы только должны гарантировать, что игрок врезается в этот объект, мы можем просто использовать краткий коллайдер вместо этого. Это будет работать точно также в цели и экономить на обработке власти, потому что процессор не должен будет построить коллайдер для каждой части. Выберите объект походного костра в Иерархии и пойдите в Компонент | Физика | Краткий Коллайдер. Выбудете побуждены подтвердить, что Вы желаете разъединить этот случай от оригинала с высказыванием окна диалога, Теряющим Заранее приготовленного Родителя просто, 181 нажимают, Продолжаются как обычно. Это даст Вам маленький сферически выглядящий коллайдер в основе модели огня. Мы должны увеличить размер этого, чтобы покрыть границу огня - в недавно добавленном Кратком компоненте Коллайдера в Инспекторе, установить Радиус в 2, Высоту к 5, ив ценностях для Центра, установить Y в ценность 1.5. Ваш коллайдер должен теперь смотреть кое-что как то, что показывают в следующем скриншоте, и после тестирования игры, должно заставить игрока врезаться в объект. Создание систем частицы огня В этой секции мы создадим две различных системы частицы, один для огня и другого для дыма, происходящего от этого. При использовании двух отдельных систем мы будем иметь больше контроля над мультипликацией частиц в течение долгого времени, поскольку мы не должны будем оживлять от огня, чтобы курить в единственной системе. Создание огня Чтобы начать строить наши системы частицы огня, мы можем добавить объект игры со всеми тремя существенными компонентами частицы. Пойдите в GameObject |, Создают Другой | Система Частицы. Это создает новый объект игры в Сцене/Иерархии под названием Система Частицы. Нажмите Возвращение (Mac) или F2 (PC) и тип, чтобы переименовать это к FireSystem, гарантируя, что нет никакого места на 182 название - это крайне важно для нашего scripting позже. Примите во внимание, что на данном этапе, мы не должны поместить огонь, пока мы не закончили делать его. Поэтому, это может быть разработано в произвольном пункте в трехмерном мире, что редактор Unity поместил это в. По умолчанию, у Вашей системы частицы есть появление частицы по умолчанию смягченных точек белого, в группе, не слишком несходной от светлячков в группе. Это просто демонстрирует большинство родовых параметров настройки для каждого компонента - эмитент частицы испускает и имеет скромное число частиц, аниматор просто заставляет частицы усилиться и, и у renderer еще нет никакого материала, настроенного. Давайте пройдем каждый компонент теперь и давайте настроим их индивидуально. Выбудете в состоянии видеть предварительный просмотр системы частицы в представлении Сцены, так часы, поскольку Вы регулируете каждое урегулирование в Инспекторе Эллиптические Параметры настройки Эмитента Частицы Начните, устанавливая ценность Размера Минуты в 0.5, и Макс Сайз оценивают 2. Наш огонь значительно больше чем подобные светлячку точки, замеченные в установках по умолчанию. Как со всеми параметрами настройки Минуты и Макса, эмитент породит частицы размера между этими двумя ценностями. Теперь Энергия Минуты набора к 1 и Макс Энерджи к 1.5 - это - продолжительность жизни частиц, ив результате частицы продлятся между 1 и 1.5 секундами перед авторазрушением. Установите ценность Эмиссии Минуты в 15, и Макс Эмишен оценивают 20. Это - определение ценности, сколько частиц находится в сцене в любой момент времени. Чем выше эти ценности идут, тем больше частиц будет на экране, давая больше плотности огню. Однако, частицы могут быть дорогими, чтобы отдать для центрального процессора. Так, вообще говоря, лучше держать ценности эмиссии как они к самому низкому урегулированию, которое Вы можете эстетически предоставить. Установите ценность Y Мировой Скорости к 0.1. Это заставит частицы повышаться вовремя их продолжительности жизни, поскольку огонь был бы из-за естественной высокой температуры. Мы делаем это с Мировой Скоростью с объектами, которые должны всегда повышаться в мире игры. Если бы это было сделано на объекте, который был подвижен с Местной Скоростью и тем объектом, вращаемым вовремя игры, то ее местная Ось Y больше не стояла бы Мир Y. Например, пылающий баррель с физикой может упасть, но его огонь должен все еще повыситься в Мировых сроках. В то время как наш походный костер неподвижен, это - хорошая практика, чтобы понять 183 различие между Местными Мир здесь. Тогда установите ценность Y Скорости Rnd Случайной) к 0.2 - это заставит случайный случайный огонь прыгать немного выше чем другие. Скорость Тангенса должна быть установлена в 0.2 в X и Осях Z, оставляя Ось Y на 0. Скорость Тангенса определяет стартовую скорость отдельных частиц. Так, устанавливая маленькую ценность в X и Z, мы стимулируем огню огня горизонтально. Скоростной Масштаб Эмитента может быть установлен в 0, поскольку это только относится к движущимся системам частицы, поскольку он управляет, как быстро сами частицы перемещаются, если родительский объект системы перемещен. Поскольку наш огонь останется статичным, это можно оставить в 0. Моделируйте в Worldspace, может быть оставлен отсеянным, поскольку мы хотели бы, чтобы наши частицы были созданы относительно позиции системы, в противоположность мировой космической позиции. Один Выстрел можно оставить отсеянным, поскольку мы нуждаемся в наших частицах, чтобы течь непрерывно. Один Выстрел был бы более полезным кое в чем, таком как затяжка дыма от орудия например. Эллиптические ценности могут быть установлены в 0.1 для всех топоров - это - маленькая ценность, но наша система частицы только в мелком масштабе - эллиптическая ценность для системы частицы пера дыма, например, должна будет быть намного более высокой. Параметры настройки Аниматора Частицы Затем мы должны настроить компонент Аниматора Частицы, который определит поведение наших частиц в течение их продолжительности жизни. Здесь мы должны будем заставить частицы усилиться и, и живой через цвета (оттенки красных/оранжевых), также как применить силы к ним, которые заставят огонь прыгать и вздыматься в сторонах более реалистично. Начните, гарантируя, что это Действительно Оживляет Цвет, отобран, который заставит пять Цветных коробок Мультипликации играть роль. Теперь пройдите каждую коробку, нажимая на цветное место - ив цветном сборщике, который появляется, выбранные цвета, которые исчезают от белого в цвете Мультипликация [0] через к темно-оранжевому в цвете Мультипликация [4]. Ваша система частицы в представлении Сцены должна теперь 184 вздыматься более естественно и оживлять через цвета и альфа-ценности, которые Вы определили. [193] Поскольку Выделаете это, также устанавливаете (альфа) ценность у основания цветного сборщика к ценности так, чтобы у Цветной Мультипликации [0] и Цветной Мультипликации [4] была альфа 0, и государства промежуточный постепенно уменьшают и назад. Альфа иллюстрирована в Инспекторе белым/черным пятном ниже каждого цветного блока. См. следующий скриншот для визуального представления какой Поскольку Выделаете это, также устанавливаете (альфа) ценность у основания цветного сборщика к ценности так, чтобы у Цветной Мультипликации [0] и Цветной Мультипликации [4] была альфа 0, и государства промежуточный постепенно уменьшают и назад. Альфа иллюстрирована в Инспекторе белым/черным пятном ниже каждого цветного блока. См. следующий скриншот для визуального представления того, что Вы должны сделать здесь Эффект Цветной системы Мультипликации может выглядеть более или менее эффективным в зависимости оттого, относились ли материалы к специфическому Shaders использования системы Вашей частицы - некоторый показ красит больше так чем другие например, shaders с прозрачностью, может казаться, показывает цвета менее эффективно. После отъезда параметров настройки Оси Вращения в их неплатеже 0 во всех топорах, Размер набора Растет к ценности. Мы устанавливаем это в минус ценность, чтобы заставить частицы сжиматься вовремя их продолжительности жизни, давая более динамический взгляд огню. Затем мы добавим силы, чтобы дать более реалистическое движение огню. Силы различны к скоростям, добавленным в параметрах настройки Эмитента, поскольку они применены, когда частицы - иллюстрировавший примерами выз повышение скорости после замедлением. Расширьте параметр Силы Rnd, нажимая на серую 185 стрелку налево от этого и поместите ценность 1 в X и Оси Z. Тогда расширьте параметр Силы таким же образом, и установите ценность Оси Y в 1. Установите ценность для Демпфирования к 0.8. Демпфирование определяет количество, которое частицы замедляют вовремя их продолжительности жизни. С ценностью по умолчанию 1 значения не происходит никакое демпфирование, ценности между 0 и 1 причиной замедляются, 0 являющийся самым интенсивным замедлением. Мы устанавливаем умеренную ценность 0.8 так, чтобы наши частицы не замедлились слишком противоестественно. Заключительное урегулирование, Авторазрушьте, может быть оставлен отсеянным. Все частицы непосредственно естественно авторазрушают в конце их продолжительности жизни, но авторазрушать урегулирование здесь имеет отношение с родительским объектом игры непосредственно - если отобрано, и все частицы в системе авторазрушили, тогда объект игры будет разрушен. Это только играет роль, используя урегулирование Выстрела Того в компоненте эмитента - в примере взрыва орудия, разработчик вероятно иллюстрировал бы примерами случай системы частицы с одним выстрелом с, авторазрушают отобранный. Это означает, что, как только это было создано, как только все частицы умерли, объект игры будет разрушен, таким образом экономя ресурсы системы, такие как центральный процессор, GPU, и RAM. Частица параметры настройки Renderer В нашей системе частицы огня мы просто должны применить заштрихованный частицей материал, содержащий огонь, графический, Вы загружали и импортировали. Но прежде, чем мы делаем это, мы гарантируем, что Частица Renderer настроена правильно в нашей цели. Поскольку частицы или огонь огня должны технически излучать свет, мы отсеем и Бросок и Получим тени, чтобы гарантировать, что никакая тень не набрана или медведем огня в памяти, что это только действительно для пользователей Unity Про версия, поскольку Инди не показывает динамические тени вовремя письма. В настоящее время нет никаких материалов, относился к этой системе частицы, таким образом нет никаких записей в области Материалов - мы исправим это коротко. Затем, гарантируйте, что Скоростной Масштаб Камеры установлен в 0 - это только использовалось бы, если бы мы небыли рекламным щитом, отдающим наши частицы. Если бы мы запланировали протянуть частицы, то мы использовали бы это урегулирование, чтобы определить, сколько из движения камеры эффекта имело на протяжении частицы. Частицы Протяжения должны быть установлены в Рекламный щит как обсужденное более раннее обеспечение, что независимо оттого, откуда игрок рассматривает огонь, частицы оттянуты, стоя передними. Поскольку Длина и Скоростной масштаб только используются в 186 протянутых частицах, мы можем счастливо оставить эти два параметров настройки в с 0 изменениями, эти ценности не будут затрагивать billboarded частицы. Урегулирование финала к рассмотренный имеет в памяти, что мы не используем УЛЬТРАФИОЛЕТОВЫЙ, Мультипликация Размер Макса Партикла. Это урегулирование управляет, насколько большой частица может быть относительно высоты экрана. Например если установлено в 1, частицы могут иметь размер до высоты экрана, вони могут быть до половины высоты экрана, итак далее. Поскольку наши частицы огня никогда не должны будут иметь размер столь же большой как высота экрана - мы можем оставить это урегулирование на его неплатеже 0.25. Добавление материала Теперь, когда наша система частицы настроена, все, что оставляют сделать, должен создать материал для этого использующий нашу структуру огня. Выберите папку особенности Огня в Проектной группе, и нажмите на кнопку Create наверху группы, и выберите Материал. Это заставит новый актив под названием Новый Материал в папке просто переименовать это Пламя, и затем выбрать это, чтобы видеть его свойства в Инспекторе От Shader опускаются меню, выбирают Частицы | (мягкая) Добавка. Это даст нам, основанная на альфе частица с мягким отдает структуры, которую мы применяем. Теперь, тяните структуру под названием Огонь 1 от папки Особенности Огня в Проектной группе, и понизьте это на пустой квадрат направо от Структуры Частицы, где это в настоящее время говорит Ни один (Texture2D). Чтобы применить этот материал, просто тяните материал от папки особенности Огня в Проектной группе и понизьте это на объект FireSystem в группе Иерархии. Расположение FireSystem Чтобы поместить систему частицы огня более легко, мы должны будем сделать это ребенком объекта походного костра уже в нашей сцене. В группе Иерархии, тяните объект FireSystem, и понизьте это на родительский объект, названный походным костром, чтобы сделать это детским объектом. Тогда перезагрузите его позицию, нажимая на изображение Винтика направо от компонента Transform преобразовать) FireSystem, и выберите Сброс 187 Теперь, когда Вы перезагрузили позицию, Ваша система частицы будет непосредственно в центре ее родительского объекта поскольку Вы заметите, это слишком низко снижается. Если Вы не можете видеть это, то выберите объект в Иерархии и парении Ваш курсор мыши по представлению Сцены и нажмите F, чтобы сосредоточить Ваш взгляд относительно этого. Все еще в компоненте Transform (преобразовать, набор позиция Оси Y к 0.8, чтобы поднять это немного. Время, чтобы Проверить Нажмите кнопку Play, чтобы проверить игру теперь и восхититься Вашей ручной работой Не забудьте нажимать Игру снова, чтобы прекратить проверять прежде, чем Вы продолжите. Создание дыма Как говорится, "нет дыма без огня, и наоборот. С этим в памяти, мы будем нуждаться в пере дыма, появляющемся из выше нашего походного костра, если это должно выглядеть реалистичным вообще. Начните, добавляя новую систему частицы к Сцене пойдите в GameObject |, Создают Другой | Система Частицы. Переименуйте Систему Частицы, которую Вы только что сделали в Иерархии к SmokeSystem снова, отметьте, что я не использую место на это объектное название. Эллиптические параметры настройки Эмитента Частицы Поскольку мы уже обсудили значения параметров настройки в предыдущем шаге, теперь Вы можете просто использовать следующий список и наблюдать изменения, поскольку Выделаете их. Любые параметры настройки, не перечисленные, нужно оставить при их установке по умолчанию Размер Мин 0.8(Min Size: 0.8) Макс Сайз: 2.5(Max Size: 2.5) Энергия Мин 8(Min Energy: 8) Макс Энерджи: 10(Max Energy: 10) Эмиссия Мин 10(Min Emission: 10) Макс Эмишен: 15(Max Emission: 15) 188 Мировая Скорость Y: 1.5(World Velocity Y: 1.5) Скорость Rnd Y: 0.2(Rnd Velocity Y: 0.2) Скоростной Масштаб Эмитента 0.1(Emitter Velocity Scale: 0.1) Параметры настройки Аниматора Частицы Настройте своего аниматора частицы, чтобы оживить через оттенки серых, как показано в изображении ниже Снова, здесь Вы должны заметить, что частицы должны быть оживлены между двумя нулевыми альфами так, чтобы они начали и закончились незримо. Это избежит визуальной "популярности, поскольку частицы удалены - если они видимы, когда они удалены, удаление намного более примечательное, и менее естественным. Теперь измените следующие параметры настройки Размер Растет 0.2(Size Grow: 0.2) Сила Rnd: (1.2, 0.8, 1.2)(Rnd Force: (1.2, 0.8, 1.2)) Сила (0.1, 0 0.1)(Force: (0.1, 0 0.1)) Авторазрушьте(Autodestruct): Не отобранный Частица параметры настройки Renderer Мы создадим материал, чтобы относиться к дыму коротко, но сначала, гарантировать, что следующие параметры настройки применены к частице renderer компонент Бросьте/Получите Тени Shadows): оба отсеяли Частицы Протяжения Рекламный щит Particles: Billboard) Скоростной Масштаб Камеры, Характерный радиус взаимодействия, Скоростной Масштаб 0(Camera Velocity Scale, Length Scale, Velocity Scale: 0) Размер Макса Партикла: 0.25(Max Particle Size: 0.25) Теперь, следуйте, шаг назвал Добавление Материала при Создании огня выше. Однако, на сей раз, назовите свой материальный Дыми назначьте файл структуры, названный дымом 1, и понизьте материал, который Выделаете на объект игры SmokeSystem. 189 Расположение Повторите шаг для того, чтобы поместить огня для системы дыма при перемещении и понижая объект SmokeSystem на родителя походного костра в Иерархии. Тогда используя изображение Винтика, выберите Сброс, и установите ценность позиции Y в 0.9. Нажмите кнопку Play теперь, и Ваш походный костер должен осветить, и перо дыма должно повыситься, смотря кое-что как следующий скриншот. Как всегда, не забудьте нажимать Игру снова, чтобы прекратить проверять. Добавление аудио к огню Теперь, когда наш огонь выглядит эстетически приятным, мы должны будем добавить атмосферный звук треска огня. В пакете Вы загружали, Вам предоставляют звуковой файл, названный fire_atmosphere, который является моно звуковой скрепкой, которая может быть закреплена петлей. Быть моно, когда мы применяем этот файл к звуковому источнику, убегая от огня, будет означать, что аудио исчезнет с расстоянием, которое должно иметь смысл игроку. Выберите объект походного костра в Иерархии, и пойдите в Компонент | Аудио | Звуковой Источник. Это добавляет звуковой исходный компонент к объекту, так теперь просто тяните fire_atmosphere звуковую скрепку от папки особенности Огня в Проектной группе, и понизьте его на Звуковой параметр Скрепки Звукового Источника в Инспекторе. Чтобы закончить, просто выберите коробку рядом с параметром Петли. Нажмите кнопку Play и приблизьтесь к огню, прислушиваясь к звуку треска огня тогда уйдите, и слушайте исчезающий эффект. 190 Зажигание огня Теперь, когда наш огонь полон, давайте выключать системы частицы и аудио так, чтобы это не было освещено вначале игры. Выберите объект походного костра в Иерархии, ив Звуковом Источнике компонент в Инспекторе, отсейте Игру На Активном параметр. Выберите детский объект FireSystem походного костра, ив Эмитенте Частицы компонент, отсейте Испускать параметр. Выберите детский объект SmokeSystem походного костра, ив компоненте Эмитента Частицы, отсейте Испускать параметр. Теперь мы должны создать коллекцию спичек и показ интерфейса факта, у насесть спички. Чтобы сделать это, мы должны будем сделать следующее Добавьте, что модель спичечной коробки загружала ранее к заставе, делая это цель из получения входа. Сделайте Структуру GUI, используя структуру в папке особенности Огня, и сохраните это как prefab. Добавьте к существующему сценарию PlayerCollisions, строящему в обнаружении столкновения для спичечной коробки, чтобы разрушить это и иллюстрировать примерами спичечную коробку prefab GUI. Добавление спичек Выберите модель спичечной коробки в папке особенности Огня Проектной группы, тяните это к Иерархии, и понизьте это на объект заставы, делая это детский объект. Это облегчит позиции. В компоненте Transform (преобразовать) для спичечной коробки в Инспекторе, устанавливает ценности Позиции в (0, 3.5, 0). Теперь установите все ценности для Масштаба в том же самом компоненте к 5. Поскольку мы должны собрать этот объект, это будет нуждаться в коллайдере, чтобы обнаружить столкновения между этими игроком. Со спичечной коробкой, все еще отобранной, пойдите в Компонент | Физика | Коллайдер Коробки, и нажмите, Добавляют когда подарено Проигрывающее Заранее приготовленное окно диалога. Чтобы избежать игрока, врезающегося в объект, мы поместим этот коллайдер в более аккуратный способ. Чтобы сделать это, просто выберите коробку рядом с, Более аккуратное урегулирование в компоненте Коллайдера Коробки Инспектора Чтобы сделать этот объект более очевидно коллекционируемым пунктом, мы добавим сценарий, мы имели обыкновение вращать 191 батареи в нашей игре. Пойдите в Компонент |, Сценарии | Вращают Объект. Тогда, в недавно добавленном компоненте сценария в Инспекторе, устанавливает Variables Количества Вращения в 2. Создание Спичек GUI Выберите файл структуры MatchGUI в папке особенности Огня в Проектной группе. Пойдите в GameObject |, Создают Другой | GUITexture. Мы не должны поместить эту структуру на экран, поскольку это может быть сделано, когда мы иллюстрируем примерами это как prefab. Выберите папку особенности Огня в Проектной группе, и от кнопки Create, выберите Prefab. Переименуйте этот prefab к MatchGUIprefab и затем drag and drop (перетащили и опустили) объект MatchGUI от Иерархии на этот пустой prefab в Проектной группе. Наконец, выберите оригинальный объект MatchGUI в Иерархии снова, и удалите это из сцены, нажимая Команду + Клавиша Backspace (Mac) или Удалите (PC). Сбор спичек От папки Сценариев в Проектной группе, откройте сценарий по имени PlayerCollisions. Чтобы помнить, собрали ли мы спички или нет, мы добавим логическую переменную к сценарию, который будет установлен в верный, как только спички собраны. Добавьте следующую линию к вершине сценария private var haveMatches : boolean = false; Мы будем также нуждаться в общественном Variables участника, чтобы представить prefab Спичек Структура GUI так, чтобы мы могли иллюстрировать примерами это, когда игрок собирает спичечную коробку. Добавьте следующий Variables к вершине сценария var matchGUI : GameObject; Теперь прокрутите вниз к 0nTriggerEnter () Functions сценария, и ниже существующего, добавьте в следующем если утверждение if(collisionInfo.gameObject.name == "matchbox"){ Destroy(collisionInfo.gameObject); haveMatches=true; audio.PlayOneShot(batteryCollect); var matchGUIobj = Instantiate(matchGUI, Vector3(0.15,0.1,0), transform.rotation); matchGUIobj.name = matchGUI; } Здесь мы проверяем наш существующий collisionInfo параметр, 192 который регистрируется, любые объекты столкнулись с. Мы проверяем, содержит ли collisionInfo объект, названный спичечной коробкой при использовании gameObject.name и сравнения этого к последовательности текста "спичечная коробка. Если дело обстоит так, то мы выполняем следующие команды Разрушьте объект спичечной коробки, обращаясь к потоку gameObject в collisionInfo. Установите haveMatches Variables в истинный. Играйте звуковую скрепку, назначенную на наш batteryCollect Variables. Поскольку игрок уже привык к этому звуку для того, чтобы собрать объекты, имеет смысл снова использовать это. Instantiate (Проиллюстрировать) случай объекта игры, назначенного на общественный Variables участника matchGUI, в позиции экрана (0.15, 0.1, 0), принимая во внимание, что Ось Z в 2-ых объектах просто для иерархического представления, следовательно ценность 0. Мы также использовали команду transform.rotation , чтобы унаследовать вращение от родительского объекта поскольку вращение является несоответствующим в 2-ых объектах. Назовите недавно иллюстрировавший примерами объект при использовании Variables matchGUIobj, который мы создаем в линии экземпляра. Это будет использоваться позже, удаляя GUI из экрана. Пойдите в Файл |, Экономят в редакторе сценария теперь и переключаются назад на Unity. Нажмите кнопку Play и гарантируйте, что после входа в заставу, Вы можете поднять спички, идя в них. Структура спичек должна также появиться в более низком, оставленном экрана. Теперь мы будем использовать haveMatches Variables, чтобы решить, может ли огонь быть зажжен или нет. Поджигая Чтобы зажечь огонь вообще, мы должны проверить на столкновения между игроком и объектом походного костра. Для этого, возвратитесь к редактору сценария, чтобы изменить сценарий Столкновений Игрока, или если Вы закрыли его, вновь откройте его от папки Сценариев Проектной группы. Определите местонахождение OnControllerColliderHit () Functions вводная линия function OnControllerColliderHit(hit: тогда спускаются к линии ниже этого. Добавьте следующий если утверждение 193 if(hit.collider.gameObject == GameObject.Find("campfire")){ Это проверит, что мы поразили объект походного костра. Однако, мы должны выполнить другую проверку относительно того, несет ли игрок спички, так внутри, что, если утверждение, поместите следующее if(haveMatches){ haveMatches = false; lightFire(); }else{ TextHints.textOn=true; TextHints.message = "I'll need some matches to light this camp fire.."; Здесь мы проверяем, установлен ли haveMatches Variables в истинный, и если не (еще, мы используем сценарий TextHints, чтобы включить наши показать предложение игроку на экране. Если haveMatches верен, мы вызываем функцию, названную lightFire () , который мы должны будем написать затем, чтобы включить системы частицы и аудио. Свиток к основанию сценария, и добавляет следующий Functions перед @script линией function lightFire(){ var campfire : GameObject = GameObject.Find("campfire"); var campSound : AudioSource = campfire.GetComponent(AudioSource); campSound.Play(); var flames : GameObject = GameObject.Find("FireSystem"); var flameEmitter : ParticleEmitter = flames.GetComponent(ParticleE mitter); flameEmitter.emit = true; var smoke : GameObject = GameObject.Find("SmokeSystem"); var smokeEmitter : ParticleEmitter = smoke.GetComponent(ParticleEm itter); smokeEmitter.emit = true; Destroy(GameObject.Find("matchGUI")); В этом Functions мы должны были выполнить четыре операции Старт звуковой петли для огня, 194 Включающего систему частицы Огня, Включающую систему частицы Дыма Удаление на экране Matches GUI, чтобы предположить, что спички "использовались" В первых трех операциях мы должны были обратиться к объекту, создавая Variables, чтобы представить это, например var campfire : GameObject = Таким образом здесь мы назвали Variables, установили его тип данных в GameObject, и установили это равный объекту игры, названному походным костром, используя команду Находки. Затем мы обратились к определенному компоненту того объекта при использовании Variables, только установленного, и команда GetComponent : var campSound : AudioSource = Снова, мы устанавливаем новый Variables, чтобы представить компонент, устанавливая тип данных в AudioSource, и наконец мы используем этот Variables, чтобы вызвать команду Поскольку команда Игры - определенная команда к Звуковым Исходным компонентам, Unity знает точно, что сделать и просто играет звуковую скрепку, назначенную в Инспекторе Этот подход повторен во второй и третьей операции, кроме этого времени, мы обращаемся к испускать параметру компонента Эмитента Частицы, например flameEmitter.emit = Последняя операция в этом Functions - Разрушение () команда, которая просто находит объект GUI, показывающий спички, который называют, matchGUI на экземпляр (обратитесь к Сбору секции спичек. Пойдите в Файл |, Экономят в редакторе сценария теперь, и переключаются назад на Unity. Поскольку мы создали общественный Variables участника для MatchGUIprefab в сценарии PlayerCollisions, он будет нуждаться в назначении. В Иерархии, крах любые расширенные родительские объекты, нажимая на их серую стрелку, затем выбирают объект First Person Controller, чтобы видеть его список компонентов в Инспекторе Найдите Столкновения Игрока (сценарий) компонент и затем тяните актив MatchGUIprefab от папки особенности Огня в Проектной группе, 195 и понизьте это на неназначенный общественный Variables участника под названием Состязание GUI. Поздравления Ваш элемент освещения огня теперь полон. Пойдите в Файл |, Экономят Сцену в Unity, чтобы гарантировать, что Ваш проект современен. Тестирование и подтверждение Как с любой новой особенностью Вашей игры, тестирование крайне важно. В Главе 9 мы будем смотреть на оптимизацию Вашей игры и обеспечение, что тест строит работу, поскольку они ожидаются к, наряду с различными вариантами для того, чтобы предоставить Вашу игру. Пока, Вы должны гарантировать, что Ваша игра функционирует должным образом пока. Даже если у Вас нет никаких ошибок, показывая в части пульта Unity Команда +, Изменение + C показывает эту группу по Mac, Ctrl + Изменение + C на PC), Вы должны все еще удостовериться, что, поскольку Выиграете через игру, никакие ошибки не происходят, поскольку игрок использует каждую часть игры. Нажмите кнопку Play и игру через коллекцию батареи, кокосовую застенчивую игру, коллекцию состязания, и освещение огня, чтобы гарантировать, что все элементы в настоящее время работают. Если какие-нибудь ошибки происходят, то вернулись к Вашему scripting и проверяют, что все соответствует кодовым спискам в этой книге. Если Вы столкнетесь с ошибками, проверяя, то кнопка Pause наверху редактора Unity позволит, что Вы, чтобы сделать паузу, играть, и смотреть на ошибку перечисляли в пульте. Сталкиваясь с ошибкой, просто щелкните два раза на этом в Console, и Выбудете взяты к линии сценария, который содержит ошибку - или по крайней мере туда, где сценарий сталкивается с проблемой. Отсюда, Вы можете диагностировать ошибку или проверить Ваш сценарий против Unity scripting ссылка, чтобы удостовериться, что у Вас есть правильный подход. Если Вы все еще застреваете с ошибками, просите помощь на форумах сообщества Unity или в канале IRC. За дополнительной информацией, посетите следующую страницу |