Читать книгу Делаем PC игру вместе - Ар'лан ис'Дрекхэм - Страница 13
«Делаем PC игру вместе»
10. Запуск игрока
ОглавлениеИспытаем нашего игрока, посмотрим как он двигается. Для этого прежде всего необходимо переключить все окна редактора в удобную компоновку так, чтобы видеть сразу и окно Game (Игра) и окно Scene (Сцена). В правом верхнем углу редактора нажмите кнопку Select editor layout (Выбрать макет) и выберите из списка – «2 by 3», это то, что надо.
Теперь сделаем нечто наподобие земли с тем чтобы наш игрок не падал вниз в безду. Нажмите вверху вкладку GameObject> 3D Object> Plane. В сцене появится игровой объект Plane (Плоскость) с коллайдером. В связи с тем, что расчет столкновений и физических взаимодействий даже для компьютеров сегодняшнего дня задача с большой нагрузкой, поэтому в среде резработки Unity3d есть компоненты Colliders (Коллайдеры, от англ. collide – сталкиваться), которые выполняют функции виртуальных поверхностей используемых для расчетов столкновений и симуляции физического поведения объектов. Например, сложный (т.е. много полигональный) объект сферу можно заключить в коллайдер в форме простого куба. Тогда такая сфера станет препятствием для прохождения сквозь нее и может уже быть использована в физических расчетах. Главное преимущество в данном случае будет заключаться в том, что компьютеру потребуется рассчитывать только 6 поверхностей виртуального куба для столкновений, а не сотни или более поверхностей самой сферы.
Так вот, на созданной только что плоскости уже есть коллайдер, т.е. она может сразу использоваться как земля или препятствие для падения вниз. Поставьте нашего игрока Player в окне Scene (зеленый проволочный каркас) чуть выше этой плоскости чтобы при запуске программы он не «провалился под землю» (если вдруг маркеры движения или лучше сказать стрелки пропадают, то можно нажимать клавишу W чтобы снова активировать их. Также необходимо чтобы объект Player был выбран в окне Hierarchy).
Нажмем кнопку Play (Запуск) вверху посередине (не забудем кликнуть один раз в окне Game с тем чтобы фокус воспроизведения был как в готовой игре, иначе игровое управление работать не будет). Сейчас можно нажимать клавиши WASD и стрелки, и наш игровой персонаж начнет двигаться и может даже упасть если зайдет за границы плоскости. Если двигаясь нажмать левй шифт, то скорость движения игрока увеличится. Но как мы понимаем не хватает вращения виртуальной головы используя компьютерную мышь, поэтому добавим эту возможность. Нажмем стоп (вверху посередине) и вернемся к нашему коду FPCharacter.
Запишем следующую строчку кода «в теле» метода Update:
transform.Rotate (0, Input.GetAxis («Mouse X») * SensHoriz, 0);
И «в теле» класса FPCharacter объявим переменную:
public float SensHoriz = 2.0f;
Строка кода, которую мы написали будет вращать наш игровой объект Player используя метод Rotate () по оси Y считывая движения мыши. Переменная SensHoriz нужна для настройки чувствительности или скорости вращения головы. Но это вращение будет происходить только в стороны, поэтому пришло время добавить «саму голову» и оставшееся вращение вверх-вниз.