[2d] Стены (Collision) UNITY
|
|
Tiodor | Дата: Четверг, 20 Февраля 2014, 19:32 | Сообщение # 1 |
участник
Сейчас нет на сайте
| В общем дело такое: Если использовать ригидбоди и двигать спайт с его помощью, то максимальная скорость это вроде 100. Если я не ошибаюсь. Но у меня выходит только так. По-этому движение я сделал так:
Код player.transform.position += player.transform.up * speed * Time.deltaTime;
Но тут пришла другая проблема. По бокам у нас есть стены, которые должны служить барьерами. Но если навешать на стены коллижн, то игрок будет заходить на эту стенку и просто сползать. А мне надо, чтобы просто глухой барьер был. Если, что: вид сверху.
VK: Tiodor
|
|
| |
lentinant | Дата: Суббота, 22 Февраля 2014, 08:54 | Сообщение # 2 |
ленивый программист
Сейчас нет на сайте
| А почему не в разделе для юнити? В общем, три варианта. Первый - ты до конца разбираешься с ригидбоди, и это все решаетсся посредством физики. Второй - прописываешь OnCollisionEnter, смотришь по параметрам, левая ли это стенка или правая, и смотришь, влево или вправо двигается твой персонаж, и, в зависимости от этих пунктов, ограничиваешь движение. То есть, если ты двигаешься влево, включается OnCollisionEnter, и коллайдер в параметре находится слева от персонажа, то ты делаешь так, чтобы персонаж больше не мог двигаться влево, только вправо. Третий - привязка к координатам - стены как фикция, и просто делаешь граничные координаты, дальше которых персонаж не двигается.
Когда-то тут будут ссылки на крутые проекты. Или нет.
|
|
| |
Tiodor | Дата: Суббота, 22 Февраля 2014, 17:11 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Цитата lentinant ( ) ты до конца разбираешься с ригидбоди если использовать ригидбоди и ит.д. то у объекта будет ограниченная скорость.
Цитата lentinant ( ) Третий - привязка к координатам - стены как фикция, и просто делаешь граничные координаты, дальше которых персонаж не двигается. так скорее всего и буду делатьДобавлено (22.02.2014, 17:11) ---------------------------------------------
Цитата lentinant ( ) А почему не в разделе для юнити? ступил =\
VK: Tiodor
|
|
| |
lentinant | Дата: Суббота, 22 Февраля 2014, 22:14 | Сообщение # 4 |
ленивый программист
Сейчас нет на сайте
| Цитата Tiodor ( ) если использовать ригидбоди и ит.д. то у объекта будет ограниченная скорость. Ты пробовал через непосредственно изменение velocity? Или только через AddForce.
Когда-то тут будут ссылки на крутые проекты. Или нет.
|
|
| |
Tiodor | Дата: Понедельник, 24 Февраля 2014, 00:35 | Сообщение # 5 |
участник
Сейчас нет на сайте
| lentinant, я делал так:
Код float moveHorizontal = Input.GetAxis ("Horizontal"); float moveVertical = Input.GetAxis ("Vertical");
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical); rigidbody.velocity = movement * speed;
Но скорость не делается после 100.Добавлено (24.02.2014, 00:33) --------------------------------------------- решил проблему ограничением: Код if (player.transform.position.x <= -210f) { player.transform.position += player.transform.right * speed * Time.deltaTime; } if (player.transform.position.x >= 210f) { player.transform.position += -player.transform.right * speed * Time.deltaTime; } Добавлено (24.02.2014, 00:35) --------------------------------------------- Ай( только теперь непонятно как быть с вертикальными границами... ведь игрок двигается вперед в пространстве. И будут другие объекты которые будут действовать как стенка... =\ похоже не обойтись без ригидбоди
VK: Tiodor
|
|
| |
castielblack | Дата: Понедельник, 24 Февраля 2014, 01:24 | Сообщение # 6 |
почетный гость
Сейчас нет на сайте
| Ну так ты пытаешься свою физику сделать, используй стандартную, ибо очень много времени потратишь на это, очень.
Знания : C#, Lua, C++, Unity, Dreemchest, DirectX 11 Выпущенные проекты : BuildAndRun, Match 3 Cubes
|
|
| |
Tiodor | Дата: Понедельник, 24 Февраля 2014, 01:38 | Сообщение # 7 |
участник
Сейчас нет на сайте
| Цитата castielblack ( ) Ну так ты пытаешься свою физику сделать, используй стандартную, ибо очень много времени потратишь на это, очень. Так ведь если использовать стандартную физику, то скорость больше 100 поставить нельзя, а для моего пиксель-арта это очень медленно.Добавлено (24.02.2014, 01:38) --------------------------------------------- Как я понимаю - единственный вариант - увеличить масштаб. Будет ужасно неудобно расставлять пиксельные объекты, но другого выхода я не вижу =(
VK: Tiodor
|
|
| |
lentinant | Дата: Понедельник, 24 Февраля 2014, 04:59 | Сообщение # 8 |
ленивый программист
Сейчас нет на сайте
| Цитата Tiodor ( ) Как я понимаю - единственный вариант - увеличить масштаб. Будет ужасно неудобно расставлять пиксельные объекты, но другого выхода я не вижу =( Возьми определенный размер за единицу, тогда будет весьма удобно. Вот в нашем Block Temple я брал за единицу длину 64 пикселя, и проблем с расстановкой не возникало. Два спрайта размером 64 на 64 идеально становились рядом, если координату просто изменить на единицу.
Когда-то тут будут ссылки на крутые проекты. Или нет.
|
|
| |
Tiodor | Дата: Понедельник, 24 Февраля 2014, 10:30 | Сообщение # 9 |
участник
Сейчас нет на сайте
| Если б были тайлы одного размера
VK: Tiodor
|
|
| |