danilaxxl danilaxxl

CollectableItemData.cs

[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]

GoloGames GoloGames

vadya_ivan, рад, что вам игра показалась интересной : )

P.S. Кстати уже доступна бесплатная демо-версия в Steam

vadya_ivan vadya_ivan

Визуал, задумка, музыка , механики, все в цель

GoloGames GoloGames

Ato_Ome, спасибо за позитивные эмоции, будем стараться : )

Ato_Ome Ato_Ome

Потрясающий результат, все так четенько, плавненько)
То ли саунд, то ли плавность напомнили мне игрушку World of Goo, удачи вам в разработке и сил побольше дойти до релиза!)

Cute Fox Cute Fox

Graphics are a little cool, good HD content. But this game doesn't cause nary interest me.
However the game is well done.

GMSD3D GMSD3D

Почему действие после всех условий выполняется?
[step another object]

Zemlaynin Zemlaynin

Jusper, Везде, но наугад строить смысла нет. Нужно разведать сперва территорию на наличие ресурсов.

Jusper Jusper

Zemlaynin, а карьеры можно будет везде запихать?
Или под них "особые" зоны будут?

Zemlaynin Zemlaynin

Это так скажем тестовое строительство, а так да у города будет зона влияния которую нужно будет расширять.

Jusper Jusper

А ссылка есть?

Jusper Jusper

Я не оч понял из скриншота, как вообще работает стройка. У игрока будет как бы поле строительства?

split97 split97

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

split97 split97

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

ViktorJaguar ViktorJaguar

Почему я нигде не могу найти нормальный туториал, где покажут как экипировать предмет (например, меч) в определенную (выделенную под оружие) ячейку???

Логотип проекта Unity

Вращение спрайтов и шаманство

Захотелось мне сделать двухмерную игру. Благо, в Unity3D недавно появился соответствующий инструментарий. Однако, когда я дошел до момента, когда мне нужно было просто повернуть спрайт к какой-то позиции, я жутко разочаровался - все функции, принимающие в качестве параметров местоположение, и возвращающие соответствующее вращение (Quaternion.LookRotation, Quaternion.FromToRotation, Transform.LookAt), ориентированы исключительно на трехмерное пространство, а в трехмерном пространстве, если один объект повернут ко второму, это значит, что его вектор forward (вектор, представляющий ось Z локальной системы координат объекта) "смотрит" на цель.

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

После нескольких часов шаманства, я наконец-то нашел подходящее решение. Код следующий

Vector3 moveDirection = player.position - transform.position; 
if (moveDirection != Vector3.zero) 
{
	float angle = Mathf.Atan2(-moveDirection.x, moveDirection.y) * Mathf.Rad2Deg;
	transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
}

Тут player - Transform объекта, к которому нужно повернуться. Обратите внимание, что перед moveDirection.x стоит минус. Если бы его не было, объект поворачивался бы к цели осью X, а так он поворачивается осью Y.

Смотрите также:


Комментарии



Хардкорненько, но что-то мне подсказывает что должен быть более простой способ.

Если имелось ввиду именно вращение а не поворот, то всё куда проще:

transform.Rotate(Vector3.forward * Time.deltaTime * 50);

Плюс не стоит забывать про Vector2, который работает в X/Y плоскостях.

Vector2 LookAtPoint = new Vector2(Target.transform.position.z, Target.transform.position.y);
transform.LookAt(new Vector3(0,LookAtPoint.y,LookAtPoint.x);

RSQR:

Если имелось ввиду именно вращение а не поворот, то всё куда проще:

Я же написал - поворот одного спрайта к другому. Я не настолько глуп, чтобы не разобраться самостоятельно с обычным вращением.
RSQR:

Плюс не стоит забывать про Vector2, который работает в X/Y плоскостях.

Ага, и получается все тот же поворот ребром.
Было бы все так просто - этого поста бы тут не было.

prog, в юнити 2д прилеплен криво. Фактически, добавилась лишь система анимации для спрайтов и Box2D. Все остальное как в три дэ осталось.

((цитата
Плюс не стоит забывать про Vector2, который работает в X/Y плоскостях.
))
Ага, и получается все тот же поворот ребром.
Было бы все так просто - этого поста бы тут не было.

Ты вообще пытался? :о

RSQR:

Ты вообще пытался? :о

Нет, блин, я начал искать костыли просто так, сразу.
Я перепробовал много манипуляций со стандартными функциями. Сработала только эта. И да, я проверил твой код тоже. О повороте на ребро я писал уже после этого.

Справка