Pull to refresh

Comments 32

Спасибо, первый мануал по Unity, который сподвигнул меня к действию.
Очень рад, для того и старался. Ещё советую посмотреть catlikecoding.com/unity/tutorials/
Эти статьи сподвигнули меня к написанию собственной. На хабре их не видел, наверное, стоило бы их перевести.
Интересно, а Вы «сподвигнули» вместо «сподвигли» написали из-за того, что увидели такое написание в сообщении выше? :)
Спасибо! По-больше бы таких мануалов и методик по кросс-платформенной разработке приложений на Unity3D!
Спешу вас обрадовать, у меня в планах статья о создании сетевой игры. Вот допилю тестовый сервер для хабра до того состояния, когда он не сразу сляжет и опубликую.
Чёрт возьми… Жду!
Спасибо огромное.
Буду действовать.
Да, это практически эталонный туториал — четко, ничего лишнего, все самое важное что бы быстро начать.

Видел очень много всего, в т.ч. много отличных обучающих видео, например, большая серия роликов Walker Boys studio:
walkerboystudio.com/html/unity_training___free__.html#unity3javaScript

Или классная иллюстрация разработки RPG (много добротного кодинга): Hack & Slash RPG — A Unity3D Game Engine Tutorial
www.burgzergarcade.com/hack-slash-rpg-unity3d-game-engine-tutorial

Но именно этот туториал — теперь первое что буду скидывать тем кто хочет быстро разобраться с Юнити.
Автору просьба продолжать в том же стиле! И побольше, побольше! :)
UFO just landed and posted this here
Ровно в тот момент как вы его выделите (определите что вот этот кусок времени он точно для Unity).
Например скАжите тебе — ближайший час я хочу потратить на изучение юнити.

Таким образом можно создать время на это прямо сегодня :)
UFO just landed and posted this here
Супер, я рад что сработало. Welcome! И отличного продвижения в Unity :)
Выделенное время — решает )

ps: стоит выделить его раз 15-20, и это уже превращается в привычку без которой никак %)
Спасибо за урок.
Но в версии 3.5 нету такого:
Скрытый текст
door.SetActive(false);

Рабочей альтернативы не нашел.
Видимо надо 4 версию поставить и повторить урок на нем.
В версии 4.0.1 все равно дверь на месте остается.
Не работает код
door.SetActive(false);

Ошибок никаких не выводится. Кнопка меняет цвет при наезде на нее, но с дверью ничего не происходит.
На кнопке висит такой код, но дверь не работает?
Button.cs
using UnityEngine;

public class Button : MonoBehaviour
{

    public GameObject door;

    void OnTriggerEnter(Collider other)
    {
        door.SetActive(false);
        transform.localPosition += new Vector3(0, 0, 0.3f);
        renderer.material.color = new Color(1, 0, 0);
    }

    void OnTriggerExit(Collider other)
    {
        door.SetActive(true);
        transform.localPosition -= new Vector3(0, 0, 0.3f);
        renderer.material.color = new Color(0, 1, 0);
    }
}

Проверьте сохранён ли код и установлена ли переменная door в инспекторе. Если и потом не работает, то мне бы хотелось взглянуть на проект.
С дверью разобрались. Спасибо за помощь BasmanovDaniil
Надо было перетащить на скрипт кнопки дверь не из нижнего окошка (Проект), а из верхнего (Иерархия)
image
Тогда уж и я отпишусь. В публичных переменных скриптов можно сохранять не только ссылки на объекты, которые находятся на сцене, но и ссылки на префабы, анимации, текстуры и другие объекты проекта. На ссылку, сохранённую в префабе можно рассчитывать, если она ссылается на подчиненный объект. В «продвинутой версии» я отделил коллайдер кнопки от модельки кнопки и вложил объект с моделькой в объект с коллайдером, а в скрипте двигал модельку. В случае выше в префабе сохранилась ссылка на соседний префаб, что в инспекторе на сцене выглядело совершенно нормально, но активация-деактивация объекта не приводила к видимому результату. Вот такая детективная история.
В 3.5.7 есть SetActiveRecursively(), которая считается устаревшей в новой версии. MonoDevelop сам подсказывал при вводе, а в официальной документации уже выпили эту функцию.

door.SetActiveRecursively(false);
Да, ее тоже пробовал. Но дело оказалось в другом. Надо было с иерархии дверь перетаскивать.
Переделал немного статью, добавил про FixedUpdate, SetActive, переделал код кнопки и перезалил архивы.
Спасибо огромное! Он-лайн уроки случайно не пробовали преподавать по Unity?
Типо вебинара что ли? Я эту статью дня три только оформлял и печатал, плюс время на программирование. Зато в итоге мой туториал бессмертен, его можно сразу окинуть взглядом, пролистать вперёд, легко скопировать код и т. д. А онлайн-компонент тоже присутствует, вот он я, туточки, задавайте любые вопросы. Подготовка к выступлению в реальном времени заняла бы неделю-другую, а смысла было бы много меньше. По той же причине не понимаю моды на видео-туториалы по программированию. Чисто текстовое занятие запихивать в неподходящий формат, зачем это нужно? Некоторые ещё и деньги за это берут. Фантастика.
Что есть, то есть… Особенно реклама на роликах, их бесполезность и размазанное качество.
А онлайн-компонент тоже присутствует, вот он я, туточки, задавайте любые вопросы
Хотелось бы подробный туториал по созданию красивого мира (импорта сцен из 3D-редакторов) и управление движениями (анимациями) 3D-объектов (тоже из 3D-редакторов): идет, побежал, взлетел (на примере птицы) и т.д. Сетевое взаимодействие и экспорт на несколько различных платформ.
Т.е. базовый туториал для создния 3D мира и взаимодействия с ним и объектами в нем.

Пример сценария: каждый игрок — это крупная птица (3D-объект игрока), птица может приземляться и взлетать ( и ходить по 3D-ландшафту).
Желательно сделать пример с сушей и водой, анимацией природы, свет (солнце, тени и т.д.).
Птицы (сетевые клиенты с разных платформ) просто летают по уровню.
Камера может переключаться. (из глаз, перед собой и т.д.)

На сколько трудоёмко? Реально в несколько уроков вписать?
Создание красивого мира — неподъёмная тема, на много-много книг хватит. Импорт сцен — зависит от редакторов и форматов, это проще в документации посмотреть. Анимация — это про Mecanim, это можно. Создание 3D игры — сложно, не в пример сложнее двадэшной. Если ещё и по сети, то возникает куча других проблем. А вот переключение камеры это легко, пара строчек кода.
Ну не красивого, а просто 3D-модель из внешнего редактора. (я не знаю как точно мир строится в Unity3D)
Хотя бы 2 типа поверхности: суша и вода.
Солнце/фонарь — в виде источника света.
Импорт сцен — подскажите, где лучше смотреть (ссылку).
Если ещё и по сети, то возникает куча других проблем
Это каких? Сокет-сервер или что-то более глубокое в рамках Unity3D?

Интересно разобраться в экспорте одного и того же приложения для Web, PC, Android, iPhone, WindowsPhone, и т.д.
Т.е. что для этого надо (покупать доп. модули или нет), как строить топологию проекта и правильно кодировать, чтобы работал экспорт под все возможные платформы.
Насчёт моделей из внешнего редактора можете начать отсюда. Суша, вода, источники света.

Проблем с сетевыми играми масса. Предположим, мы забыли про самописный сервер и взяли стандартный из коробки. Как синхронизировать действия игроков? Клиент отправляет своё положение, сервер раздаёт всем остальным. Хорошо, вроде работает. Клиенты стали посылать подложные пакеты, чтобы получить преимущество. Теперь нам приходится симулировать часть игрового мира на сервере и проверять получаемые значения. Ну теперь-то точно работает, да? Нет. Игрок совершенно точно видит, как простреливает голову из базуки другому игроку, но из-за большого пинга он видит устаревшее положение жертвы, а значит сервер не засчитает фраг. Теперь нам нужно заниматься предсказыванием движения и сглаживанием рваных координат игроков. А если игрок прерывает игру, что делать с его персонажем? А если во время игры могут присоединяться новые люди? В каждой конкретной игре будут свои причудливые вопросы, над которыми можно долго ломать голову.

Про мультиплатформу советую даже не думать, пока вы не разберётесь в основах Unity. Но вообще на хабре видел статьи, подходящие под ваше описание, поищите на хабе Unity.
Sign up to leave a comment.

Articles