Знакомство с Unity3D
Мне всегда была интересна тема программной реализации (демонстрации) законов физики: как взаимодействуют тела. Какое-то бледное подобие даже пытался реализовать на флеш. Однако, если делать что-то более серьезное, то лучше использовать специальные движки. Подумав, я остановился на Unity3D – одной из самых популярных платформ разработки приложений, в том числе и в 3D формате. Вот что получилось у меня в итоге после недолгого разбирательства с основами:
Скачать Unity3D можно отсюда – получим сетевой установщик. Выбирайте галочками, что вам требуется, особо не волнуйтесь – в любой момент его можно будет запустить снова и скачать недостающие элементы. Итак, качаем, устанавливаем, регистрируемся, начинаем новый проект 3D.
Сложного ничего нет. В проекте по умолчанию у вас уже есть два объекта - Main Camera (камера) и Directional Light (источник света). Выберите Game Object –> 3D Object -> Plane и Game Object –> 3D Object -> Cube. Теперь у нас есть кубик над плоскостью и, собственно, сама плоскость. Если запустить проект, то ничего не произойдет: выведется статичная картинка. Внесем немного динамики.
Выберем наш куб и Component -> Physic -> Rigidbody. Этим мы сделал куб твердым телом. Теперь после запуска он упадет на плоскость. Далее создаем снизу в Assets - > Create – Physic Material -> назовем, к примеру, rubber1 – это будет материал. Можно играться с разными параметрами, добиться скольжения, упругости и так далее.
Далее также внизу создаем C# Script, открываем его в каком-нибудь редакторе ( по умолчанию идет MonoDevelop – признаться жутко глючная штука) удаляем созданный по умолчанию код и вставляем свой:
using UnityEngine; using System.Collections; public class NewBehaviourScript : MonoBehaviour { void Start () { Rigidbody rb = GetComponentСложного тут особо ничего нет, даже если и вы на вы с си шарп. В коде три метода: один работает при старте, второй при смене кадра – с помощью него меняем цвет куба на красный, если жмем пробел, третий же пишет в логе очень остроумную фразу, как только куб с чем-нибудь сталкивается. На основе этого скрипта и документации по юнити уже можно создавать что-то тридешное и интерактивное.(); } void Update () { if (Input.GetKeyUp( KeyCode.Space )) { GetComponent ().material.color = Color.red; } } void OnCollisionEnter() { Debug.Log("Oops!"); } }
Таким образом, если не хочется изобретать велосипед, а хочется сразу работать с 3D, то Unity3D прекрасно подойдет. Платформа не выглядит сырой и возможно в будущем, я напишу серию статей, посвященной разработке на ней. Если интересно посмотреть на результат на своем компьютере, то вот файл программы - теоретически должно запуститься на любой Windows со вторым нет фреймворком на борту.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.