Ответы пользователя по тегу Unity
  • (Пример из Unity3d) Проблема с понимаем типов в C#, как оно работает?

    Если очень грубо, moveObject это указатель. Где-то там, в глубине, это IntPtr, обычно являющийся 64 или 32 битным числом. И изначально это число будет равно null (т.е. все нули или какое-нибудь другое условное обозначение "ничего").
    Перед тем как "отдать" этот объект вам (т.е. начать вызывать Start, Update и прочие методы), Unity, как было указано выше, "скрытно и незаметно" присвоит этому полю значение, указывающее на объект, который вы поставили в инспекторе.
    Ответ написан
    Комментировать
  • Как готовить координаты в Unity 2D?

    Если нужна привязка спрайтов к краям экрана, то, возможно, стоит воспользоваться системой UI. Ну там добавить Canvas, на него закинуть UI спрайт, у спрайта можно выбрать привязку к краям экрана, pivot и т.д. и т.п.

    Если UI вот совсем не то, что нужно, тогда, видимо, стоит копать в связь экранных координат (пикселей тобишь) с мировыми. Какой-нибудь cameraToWorldMatrix может быть.

    С другой стороны, не так давно на структурно похожем Urho3D без особых проблем сделал что-то похожее без всяких матриц. Там OrthographicSize являлся вертикальным размером камеры в игровых координатах (здесь, наверное, тоже). Из AspectRatio получал соответственно и ширину. Ну а зная координаты и размеры камеры расположить все как надо уже несложно.
    Там я еще использовал тот факт, что измерения 2D спрайта в игровом пространстве были ровно в 100 раз меньше пиксельных, в Unity3d не приходилось вникать, но вроде как reference pixels per unit как раз про это.

    Но это все для очень специфичных случаев.
    Ответ написан
    Комментировать
  • Как сделать несколько спрайтов для одного префаба?

    SpriteRenderer.sprite в помощь. Более продвинутый вариант - через анимацию. Сам не изучал вопрос, но оно определенно умеет в состояния, переходы и т.д.
    Ответ написан
    6 комментариев
  • Как реализуется совместная разработка в Unity3D?

    Как мне кажется, в unity3d, как и везде, удобнее использовать обычную VCS (с git вполне работает), чем пытаться в google-docs-style. Одновременное редактирование файла сцены вряд ли возможно, т.к. на любое изменение извне unity предлагает сделать reload scene. Но возможно я просто не знаю нужных хаков.
    Ответ написан
    Комментировать
  • Как можно райкастом узнать колличество полигонов у объекта?

    Данные можно получить все, т.к. имеется RaycastHit.collider.gameObject. Для получения полигонов, вершин и прочего, емнип, нужно получить компонент Mesh, в нем содержится информация о вершинах и гранях.
    Ответ написан
    2 комментария
  • Как сделать объект неподвижным в Unity?

    Если дочерний объект нужно делать неподвижным в мировых координатах, возможно стоит подумать о том, что он не должен быть дочерним)
    Но вообще, ЕМНИП, transform.position - это координаты в мировых координатах (в локальных transform.localPosition). Значит их можно просто запомнить и в период неподвижности объекта каждый кадр присваивать их transform.position заново.
    Ответ написан
    Комментировать
  • Какие на данный момент есть различия между Unity3D под Windows и Linux системы?

    Функциональность редактора идентична. Сборка под win/lin точно работает, под остальной зоопарк вроде тоже. Есть мелкие глюки, на работу особо не влияют (в моем случае, по крайней мере).
    Ответ написан
  • Как соединить модели с помощью мышки в Unity3d?

    Может оказаться полезным посмотреть устройство редактора крафтов в Kerbal Space Program. Там он толково сделан (по крайней мере процесс соединения деталей). Там и радиальное крепление, и по определенным точкам (на "ноды").
    Ответ написан
    Комментировать
  • Где можно найти хорошие уроки Unity3d?

    1. Изучать C#, ООП, КОП и т.д. Можно хабр почитать, или книжки какие. Я, например, сейчас для упорядочивания знаний читаю "Паттерны проектирования на платформе .NET" Сергея Теплякова, но главное - практика, без нее книги не имеют смысла. А потому см. следующий пункт.
    2. Пилить что-нибудь. Собирать грабли. Превозмогать.
    Ответ написан
    Комментировать
  • Как написать игру только с использованием скриптов в Unity?

    Возможно вам поможет описание моей игры - тоже новичок, но делаю уже более полугода, общая архитектура более менее устаканилась. Суть игры вдохновлена Космическими Рейнджерами - вселенная, состоящая из звезд, основное место действия - звездные системы, игра протекает внутри них. Соответственно до старта игры ни одного объекта практически и нет - только пустышки и скрипты на них, ну и UI. При старте игры из сохранения (либо случайно генерируется) вселенная - массив звезд, которые в свою очередь содержат планеты, пояса и т.д. Эти данные никак не связаны с MonoBehaviour, просто статический массив (List на самом деле, но не суть). При старте игры опять же из сохранения берется местоположение игрока, информация о его корабле и в соответствии с этим
    1)Спаунится текущая система: солнце, планеты (есть префаб планеты, при спауне висящий на нем скрипт накладывает случайно генерируемую текстуру, а другой скрипт размещает в пространстве в соответствии с заданными параметрами орбиты) и т.д.
    2)Спаунится игрок (а в будущем и другие игроки)
    Таким образом сцена содержит только пустышку игрока с повешенными на него скриптами и объекты UI. Все остальное создается по ходу игры.
    Ответ написан
    Комментировать
  • Как работать совместно на Unity3D?

    Пользуюсь git + bitbacket.org, клиент консольный. Проблем не знаю, разве что небольшое добавление - нужно в .gitignore прописать:
    #Нахрен все
    /Папка с проектом юнити/*
    
    #Только ассеты и настройки
    !Assets
    !ProjectSettings

    Тогда не будет проблем с метадатой в Library, она у каждого будет генерироваться своя.
    Ответ написан
    Комментировать
  • Unity учебник по программированию?

    Некропост, но все же. Книг по юнити практически нет, есть одна "Unity Game Essentials", но полезной информации там не очень много. Самое первое, что стоит изучить перед юнити - C# и главное, его ООП. Потому что вся система скриптов юнити построена на ООП и безе него лично мне сейчас приходится туго. А дальше начинаешь что-нибудь делать и по ходу изучаешь классы юнити.
    Ответ написан
    Комментировать