Привет, Хабр!
Сегодня вечером у меня появилось свободное время и в процессе бесполезного путешествия по просторам своего ноутбука обнаружил установленную Unity3d, до которой так и не дошли руки.
Ну и решил что-нибудь простое намутить.
Для начала откроем Unity и создадим проект (3D).
Заходим в меню GameObject>3D Object>Cube и получаем куб

Инструментом Scale растягиваем наш куб и уменьшаем высоту, в итоге должна получиться пластина

Добавляем еще 1 куб и даем ему имя player. Привязываем камеру к «игроку»

Нажимаем Add Component>Physics>Rigidbody

В окне Rigidbody ставим галочку Use Gravity.
Если нажать на кнопку Play, то мы увидим падающий куб на пластину
Создаем новый куб и делаем из него подобие стены

Дублируем стены и создаем из них лабиринт. Точку финиша украсим выпирающей плитой.


Создаем новый C# скрипт, который называем playerActions

Открываем его.
Следующие строки позволят нашему «герою» перемещаться вперед-назад
Для поворота героя используем эти строки
Когда дойдем до финиша надо бы сказать мол все, прошли лабиринт и выйти из игры.
Почти все готово, осталось только перетащить наш скрипт на «героя»!
Запускаем. Проверяем. Ничего не работает?
Правильно, мы ведь забыли задать значение переменным speed и rotationSpeed!
Вводим значения и запускаем

Добавляем аудио-дорожку Game Object>Audio>Audio Source и привязываем к игроку. В поле AudioClip переносим музыку.
Сохраняем нашу сцену.
Заходим в меню File>Build and Settings. Добавляем нашу сцену, выбираем платформу и собираем.
github
Сегодня вечером у меня появилось свободное время и в процессе бесполезного путешествия по просторам своего ноутбука обнаружил установленную Unity3d, до которой так и не дошли руки.
Ну и решил что-нибудь простое намутить.
Для начала откроем Unity и создадим проект (3D).
Приступим?
Заходим в меню GameObject>3D Object>Cube и получаем куб

Инструментом Scale растягиваем наш куб и уменьшаем высоту, в итоге должна получиться пластина

Добавляем еще 1 куб и даем ему имя player. Привязываем камеру к «игроку»

Нажимаем Add Component>Physics>Rigidbody

В окне Rigidbody ставим галочку Use Gravity.
Если нажать на кнопку Play, то мы увидим падающий куб на пластину
Создаем лабиринт
Создаем новый куб и делаем из него подобие стены

Дублируем стены и создаем из них лабиринт. Точку финиша украсим выпирающей плитой.

Добавляем цвета

Самое время кодить
Создаем новый C# скрипт, который называем playerActions

Открываем его.
Объявляем переменные
public GameObject player;
public int speed;
public int rotationSpeed;
Функция Start()
player = (GameObject)this.gameObject;
Функция Update()
Следующие строки позволят нашему «герою» перемещаться вперед-назад
if (Input.GetKey (KeyCode.W)) {
player.transform.position += transform.forward * speed * Time.deltaTime;
}
if (Input.GetKey (KeyCode.S)) {
player.transform.position -= transform.forward * speed * Time.deltaTime;
}
Для поворота героя используем эти строки
if (Input.GetKey (KeyCode.D)) {
player.transform.Rotate (Vector3.up * rotationSpeed*Time.deltaTime);
}
if (Input.GetKey (KeyCode.A)) {
player.transform.Rotate (Vector3.down * rotationSpeed*Time.deltaTime);
}
Функция OnGUI()
Когда дойдем до финиша надо бы сказать мол все, прошли лабиринт и выйти из игры.
if (player.transform.position.z >= 0.99 && player.transform.position.z <= 1.75 && player.transform.position.x <= -1.1 && transform.position.x>=-1.49) {
if (GUI.Button (new Rect (200, 200, 800, 400), "You are win!\nExit"))
{Application.Quit ();}
ime.timeScale = 0;
Ну вот и все
Почти все готово, осталось только перетащить наш скрипт на «героя»!
Запускаем. Проверяем. Ничего не работает?
Правильно, мы ведь забыли задать значение переменным speed и rotationSpeed!
Вводим значения и запускаем

Добавляем аудио-дорожку Game Object>Audio>Audio Source и привязываем к игроку. В поле AudioClip переносим музыку.
Сохраняем нашу сцену.
Сборка
Заходим в меню File>Build and Settings. Добавляем нашу сцену, выбираем платформу и собираем.
Итог
github
suharik
Класс. Осталось добавить текстуры на стены. Немного кубодверей. Кубооружие, затем кубоврагов. Или наоборот — кубоврагов, затем кубооружие. Кубоаптечки и кубобоеприпасы, чтобы не оказаться запертым в кубоуглу кубоврагом. Загримировать пластину под куболифт.
Получим Spear of Destiny.
Power911
зачем? сразу релиз в стим
heximal
Похоже, именно в такой последовательности создавался Майнкрафт)