- •1. Преимущества, недостатки Unity. Примеры игр на основе Unity
- •Описание интерфейса главного окна Unity. Вкладка Scene, вкладка Game и панель инструментов.
- •Работа с мышью и клавиатурой. Навигация. Преобразование объектов. Вкладка Hierarchy, Project, Console и панель Inspector
- •4. Поддержка языков программирования в Unity. Сценарии. Компоненты. Методы Start() и Update(). Вывод информации в консоль.
- •5. Планирование трехмерного проекта fps. Трехмерное координатное пространство. Правая и левая системы координат.
- •6. Размещение объектов на трехмерной сцене. Понятие GameObject. Масштабирование объектов.
- •7. Источники света и камеры. Типы осветителей. Коллайдер, типы коллайдеров и точка наблюдения игрока в проекте fps.
- •3.3.3. Слежение за состоянием персонажа
- •14. Увеличение количества врагов: шаблон экземпляров, создание шаблона врага, сценарий SceneController, порождающий экземпляры врагов.
- •3.4.1. Что такое шаблон экземпляров?
- •3.4.2. Создание шаблона врага
- •3.5.1. Шаблон снаряда
- •3.5.2. Стрельба и столкновение с целью
- •3.5.3. Повреждение игрока
- •16. Типы игровых ресурсов. Создание геометрической модели сцены. Назначение геометрической модели. Наложение текстур. Выбор формата файла
- •4.1. Основные сведения о графических ресурсах
- •4.2. Создание геометрической модели сцены
- •4.2.1. Назначение геометрической модели
- •4.3. Наложение текстур
- •4.3.1. Выбор формата файла
- •17. Импорт файла изображения. Назначение текстуры. Создание неба с помощью текстур. Скайбокс. Создание нового материала для скайбокса
- •4.3.2. Импорт файла изображения
- •4.3.3. Назначение текстуры
- •4.4. Создание неба с помощью текстур
- •4.4.1. Что такое скайбокс?
- •4.4.2. Создание нового материала для скайбокса
- •18. Выбор формата файла для экспорта трехмерных моделей. Экспорт и импорт модели.
- •19. Системы частиц. Редактирование параметров эффекта. Новая текстура для пламени. Присоединение эффектов частиц к трехмерным объектам.
- •20. Подготовка проекта Memory. Понятие спрайт. Анимированные спрайты. Переключение камеры в режим 2d. Интерактивные объекты. Создание объекта из спрайтов.
- •21. Проект Memory: открытие карты по щелчку. Сценарий. Программная загрузка изображений. Выбор изображения в невидимом компоненте SceneController. Сценарий, реализующий эти методы.
- •28. Игра в стиле jetpack joyride в Unity 2d. Передвижение мыши вперед (скрипт). Создание бесконечного уровня в Unity: создание префаба, генератор комнат (скрипт).
- •29. Игра в стиле jetpack joyride в Unity 2d. Анимация персонажа: покадровая анимация, создание анимационных переходов, добавление параметров перехода.
- •31. Игра в стиле jetpack joyride в Unity 2d. Добавление лазеров в игру. Скрипт для включения, выключения, переключения и вращения лазеров. Настройка параметров этого скрипта.
- •32. Игра в стиле jetpack joyride в Unity 2d. Реализация скрипта, описывающего смерть мыши. Добавление анимаций Fall и Die, переходы между ними, триггер при смерти мыши.
- •33. Игра в стиле jetpack joyride в Unity 2d. Добавление монет. Использование тегов для различия в игре монет и лазеров. Обновленный скрипт контроллера персонажа.
- •Добавление метода для добавления нового объекта
- •Генерация и удаление объектов
- •Настройка параметров скрипта
- •35. Игра в стиле jetpack joyride в Unity 2d. Скрипт для добавления счётчика монет на экране. Скрипт для отображения кнопки на экране и возможности перезапуска игры.
- •Звук для лазера
- •Звук сбора монет
- •Звуки шагов и реактивного ранца
- •Добавление Audio Sources
- •Переключение между звуком шагов и реактивного ранца
- •Задание переменных сценария «Шаг» и «полет»
28. Игра в стиле jetpack joyride в Unity 2d. Передвижение мыши вперед (скрипт). Создание бесконечного уровня в Unity: создание префаба, генератор комнат (скрипт).
Передвижение мыши вперед (скрипт)
Для того, чтобы мышь полетела в другой конец комнаты, вам нужно будет сделать две вещи:
Сделать чтобы мышь и в самом деле двигалась.
Заставить камеру двигаться вслед за мышью.
Для решения этих задач потребуется совсем немного кода. Начнем. Откройте скрипт MouseController и добавьте после публичной переменной:
public float forwardMovementSpeed = 3.0f;
Эта переменная будет определять насколько быстро наша мышь движется вперед.
После этого добавьте следующий код в конце FixedUpdate:
Vector2 newVelocity = rigidbody2D.velocity;
newVelocity.x = forwardMovementSpeed;
rigidbody2D.velocity = newVelocit
Создайте новый C# Script по имени CameraFollow. Перетащите его над Main Camera в Иерархию, чтобы добавить в качестве компонента. Откройте скрипт CameraFollow в MonoDevelop и добавьте следующий публичную переменную:
public GameObject targetObject;
Добавьте следующий код в Update:
float targetObjectX = targetObject.transform.position.x;
Vector3 newCameraPosition = transform.position;
newCameraPosition.x = targetObjectX;
transform.position = newCameraPosition;
Этот код просто берет координату Х целевого объекта и перемещает камеру на это место.
Переключитесь из MonoDevelop в Unity и выберите Main Camera в Иерархии. Существует новое свойство в компоненте сценария CameraFollow, называемое Target Object (Целевой объект).
Чтобы установить Целевой объект, нажмите на mouse в Иерархии и не отпуская перетащите mouse в поле Target Object в Инспекторе.
Откройте скрипт CameraFollow и добавьте приватную переменную distanceToTarget:
private float distanceToTarget;
Затем добавьте следующий код в Start:
distanceToTarget = transform.position.x - targetObject.transform.position.x;
Здесь мы будем рассчитать начальное расстояние между камерой и объектом. Наконец, измените код в Update для учета этой дистанции:
void Update () {
float targetObjectX = targetObject.transform.position.x;
Vector3 newCameraPosition = transform.position;
newCameraPosition.x = targetObjectX + distanceToTarget;
transform.position = newCameraPosition;
}
Создание бесконечного уровня в Unity: создание префаба, генератор комнат (скрипт)
Вы хотите чтобы ваш Префаб содержал все различные элементы комнаты: книжный шкаф, окно, потолок, и т.д. Чтобы включить все эти элементы, как часть того же Префаба, просто добавьте их в родительский объект. Итак, создайте пустой Игровой объект (GameObject) выбрав GameObject\Create Empty. Затем выберите GameObject в Иерархии и сделайте следующие изменения в Инспекторе:
Переименуйте его в room1
Установите его Position в (0, 0, 0)
Переместите все части комнаты (bg, bg, bg_window, ceiling, floor, object_bookcase_short1, object_mousehole) в room1.
Создайте новую папку по имени Prefabs в Браузере проекта. Откройте и перетащите room1 из Иерархии непосредственно в папку Prefabs.
Создайте новый скрипт C# Script и назовите его GeneratorScript. Добавьте его в игровой объект mouse.
Сначала, добавьте пространство имен System.Collections.Generic, так как вы собираетесь использовать класс List<T>:
using System.Collections.Generic;
Затем добавьте следующие переменные экземпляра:
public GameObject[] availableRooms;
public List<GameObject&gr; currentRooms;
private float screenWidthInPoints;
availableRooms будет содержать массив Префабов, который скрипт может использовать при генерирации комнаты. В настоящее время у вас есть только один префаб (Room1). Но вы можете создать много различных типов номеров и добавить их в этом массиве так что скрипт сможет произвольно выбирать, какой тип номера ему использовать.
Список currentRooms будет хранить инстанс комнаты, так что скрипт сможет узнать заканчивается ли комната и, если это необходимо, удлиннить ее. Переменная screenWidthInPoints как раз должна кэшировать размер экрана в точках. Теперь, добавьте следующий код в Start:
float height = 2.0f * Camera.main.orthographicSize;
screenWidthInPoints = height * Ca
Здесь мы рассчитываем размер экрана, который будет использоваться для определения нужно ли удлинить комнату, как это было описано выше.