Главная страница

набросок диплома. Я играю в видеоигры с самого раннего возраста


Скачать 0.8 Mb.
НазваниеЯ играю в видеоигры с самого раннего возраста
Дата18.10.2022
Размер0.8 Mb.
Формат файлаdocx
Имя файланабросок диплома.docx
ТипДокументы
#740165
страница6 из 8
1   2   3   4   5   6   7   8

История единства


На Всемирной конференции разработчиков Apple в 2005 году Unity впервые предстала перед публикой, с тех пор она была расширена до 21 различных платформ, а ее текущая версия - 5.4.3, выпущенная 17 ноября 2016 года.

Спустя год после выпуска Apple назвала Unity занявшим второе место в категории «Лучшее использование графики Mac OS X». Это сделало Unity первым инструментом для дизайна игр, который когда-либо был номинирован на эту награду.

С выпуском Unity 5 многие неопытные разработчики начали создавать игры, и это стало поводом для критики Unity. Однако генеральный директор Unity считал, что это побочный эффект успеха Unity. В третьем квартале 1026 года игры, разработанные Unity, были загружены более 5 миллиардов раз, и существует более 2,4 миллиарда уникальных мобильных устройств с играми, разработанными в Unity. Вот почему Unity является ведущим мировым программным обеспечением для игровой индустрии.


    1. Основные концепции Unity


Рабочий процесс Unity построен на структуре компонентов. Компонент можно рассматривать как меньшую часть большей машины. Каждый компонент выполняет свою конкретную работу и обычно (и оптимально) может выполнять свою задачу или цель без помощи каких-либо внешних источников. Кроме того, компоненты редко принадлежат одной машине и могут быть объединены с различными системами для выполнения своей конкретной задачи, но достигают разных результатов, когда дело доходит до общей картины.

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

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

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


    1. Физика


Физика - очень важный аспект любой видеоигры. С помощью физики можно управлять движением и некоторым поведением компонентов в игре, а также делать ее более реалистичной. В игре персонаж может бегать, поворачиваться влево, вправо и прыгать. Чтобы сделать эти ходы, к главному герою прилагаются силы.

Движок Unity самостоятельно программирует основные силы игры, такие как гравитация. Однако в игре, которую я разработал, персонаж может стрелять пулями, и если эти пули попадают в стекло, стекло закрывается на множество частей, заставляя все эти части улетать из исходного положения. Это когда в игру вступает физика.

void OnCollisionEnter(Collision collision){

if (collision.collider.tag == "Projectile") { Destroy (gameObject);

Instantiate (brokenObject, transform.position, transform.rotation); brokenObject.localScale = transform.localScale;

Vector3 explosionPos = transform.position;

Collider[] colliders = Physics.OverlapSphere(explosionPos, radius);
foreach (Collider hit in colliders) {

if (hit.GetComponent ()) {

hit.GetComponent ().AddExplosionForce (power * collisi on.relativeVelocity.magnitude, explosionPos, radius, upwards);

}

}

}

}

Как видно из сценария, каждый раз, когда пуля (снаряд) сталкивается со стеклом, стекло разрушается, и на его месте появляется другой объект. Этот новый объект представляет собой такое же стекло, но с множеством частей, закрытых ставнями. Все эти части хранятся в массиве под названием коллайдеры, а затем к каждой части применяется новая сила, заставляющая каждый мир летать в другом направлении. Это вызвало некоторые проблемы, потому что в зависимости от положения персонажа пуля проходила через стекло между последовательными кадрами, и столкновение не было обнаружено. Чтобы исправить это, мне пришлось изменить режим обнаружения столкновений пуль, чтобы он был непрерывным динамическим, с помощью этой строки кода в скрипте ProjectileShooter.cs:

rb.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;

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


    1. 1   2   3   4   5   6   7   8


написать администратору сайта