ANLABS

ANLABS

Пикабушник
поставил 0 плюсов и 2 минуса
Награды:
5 лет на Пикабу
- рейтинг 0 подписчиков 1 подписка 2 поста 0 в горячем

Unity и пружинка

Продолжаем пилить игру)) Сегодня я сделаю короткий пост о пружинках в юнити.

Игру я делаю 2D на unity 5.3.2 это будет платформер, вообщем кто смотрел фильм КУБ (3 части) то я по аналогии решил сделать игру, аналогов не так много, да и фильм больно нравиться. Смысл такой будет одна комната, которая будет повторяться с небольшими, но жизнено важными изменениями, и каждую комнату надо будет проходить по своему. Игра будет оригинальной, по крайней мере стараюсь делать))

Суть вот в чем, мой персонаж ездит на колесике, а колесико и голову соединяет пружина, для этого я воспользовался вот таким компонентом WheelJoint2D.

Вот моя структура героя:

Unity и пружинка Unity5, Android, Gamedev, Game Art, Длиннопост

Поясню немного структуру, есть пустой игровой объект Hero внутри него уже не пустые GameObjet's голова с пружинкой и колесо.

Есть голова внутри нее пружинка и есть колесо. Голова соединена с колесом вот так:

Unity и пружинка Unity5, Android, Gamedev, Game Art, Длиннопост

Очень хотел выложить видео, но пока нельзя, если в принципе кто хочет можете помочь этому делу плюсиками и я выложу видео как двигается персонаж и работу "пружинки" :)

По моему нужен рейтинг 150 что бы видео выкладывать.

А пока вот два скрина от прыжка:

Unity и пружинка Unity5, Android, Gamedev, Game Art, Длиннопост
Unity и пружинка Unity5, Android, Gamedev, Game Art, Длиннопост

Первая моя игра, волнуюсь очень :)

Хотелось бы услышать, а как еще можно реализовать пружинку в 2D мире Unity5 :)

И правильно ли я подошел к реализации пружинки в герое.

Ездит он просто, вращением колеса через мотор в WheelJoint2D, а прыжок это AddForce/

Показать полностью 3

Чудесный UI Unity5 или приключения кнопки

Чудесный UI Unity5 или приключения кнопки Unity, Unity5, Gamedev, Мобильные игры, Android, Платформер, Игры unity, Длиннопост

Затеял я не давно игрулю на юнити и в процессе разработки игры под андроид, наткнулся на одну особенность, оказывается в юнити нет нормальной обработки событий кнопки UI.Button, таких каких Up и Down.

Чудесный UI Unity5 или приключения кнопки Unity, Unity5, Gamedev, Мобильные игры, Android, Платформер, Игры unity, Длиннопост

На событие OnClick моя функция ClickBtnRight выполнялась лишь один раз, в одном кадре, а если мы удерживаем кнопку то функция уже не запускается. В чем была проблема, пока кнопка нажата мне нужно двигать персонажа вправо, и для этого мне нужно знать когда на кнопку нажали и когда ее отжали. Допустим onClick() позволяет узнать когда нажали на кнопку, но никаких стандартных методов узнать когда ее отжали нету. Поискав немного в Google я узнал что это распространенная проблема и даже нашел ее решение, которое заключалось в том что бы выбрать изменение события на кнопке по цвету, т.е. ColorTint:

Чудесный UI Unity5 или приключения кнопки Unity, Unity5, Gamedev, Мобильные игры, Android, Платформер, Игры unity, Длиннопост

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

Но я решил проблему иначе, выбрав события на кнопке по спрайту, т.е. SpriteSwap:

Чудесный UI Unity5 или приключения кнопки Unity, Unity5, Gamedev, Мобильные игры, Android, Платформер, Игры unity, Длиннопост

Я начал каждый кадр отлавливать какой же сейчас спрайт текущей на кнопке, и мне это позволило реализовать

if (btnLeft.GetComponent<Image> ().overrideSprite ==

btnLeft.GetComponent<Button> ().spriteState.pressedSprite) {


//двигаем героя влево


} else if (btnRight.GetComponent<Image> ().overrideSprite ==

btnRight.GetComponent<Button> ().spriteState.pressedSprite) {


//двигаем героя вправо


}


Когда условия срабатывало я просто двигал героя на определенное значение влево или вправо. Так же замечу что конструкция должна быть if else if что бы никогда не сработала обработка одновременно нажатия влево и вправо.

Вот как в целом выглядят у меня кнопки:

Чудесный UI Unity5 или приключения кнопки Unity, Unity5, Gamedev, Мобильные игры, Android, Платформер, Игры unity, Длиннопост

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


Меня так же часто спрашивают знакомые как же я разрабатываю игру, и я снял видео о том как это происходит в живую на экране...интересно ли вам будет увидеть подобное...это 2 часа например видео моей работы, а работаю я в тишине)))


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


Разрабатываю на Unity 5.3.2 на C# под андроид.


Игра в стадии разработки...хотел показать как двигается персонаж...но пока не могу выкладывать видео)))


Это мой первый пост не судите строго :) Вот вам картинка из игры..

Чудесный UI Unity5 или приключения кнопки Unity, Unity5, Gamedev, Мобильные игры, Android, Платформер, Игры unity, Длиннопост
Показать полностью 4
Отличная работа, все прочитано!