Четверг, 18 Апреля 2024, 15:29

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Передвижение блоков в двумерном массиве и в игровом мире. (Как реализовать?)
Передвижение блоков в двумерном массиве и в игровом мире.
BlazeCruzerДата: Понедельник, 16 Апреля 2018, 11:48 | Сообщение # 1
был не раз
Сейчас нет на сайте
Всем привет. Не могу понять,как перемещать блоки на самый верх до следующих блоков сверху, а потом сверху добавлять еще блоки вверх.


Пока только получалось перемещать блоки вниз до конца, а сверху добавляется блок на том же месте.


Сообщение отредактировал BlazeCruzer - Среда, 18 Апреля 2018, 15:50
BrightSpotДата: Понедельник, 16 Апреля 2018, 13:02 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
В подобной ситуации я предпочитаю смещать только значения в массиве, а блоки двигать по формуле...
Код
public class BlockItem:MonoBehaviour
{
float size = 10f;
float speed = .1f;
Vector2Int gridposition = new Vector2Int;
public void SetPosition(int x, int y)
{
gridposition.x = x;
gridposition.y = y;
if(transform.position.y!= (float)gridposition.y*size)
{
StartCoroutine(Move());
}
}

private IEnumerator Move()
{
Vector3 newpos = transform.position;
int dir = (transform.position.y> ((float)gridposition.y*size))?1:-1;
while(Mathf.Abs(transform.position.y - ((float)gridposition.y*size)>.1f)
{

newpos.y += + speed *dir;
transform.position = newpos;
yield return null;
}
newpos.y = (float)gridposition.y*size);
transform.position = newpos;
}
}


дальше создаешь массив с этих объектов и при изменении передаешь новые координаты в SetPosition();



Более мощный компьютер глючит быстрее и точнее.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Передвижение блоков в двумерном массиве и в игровом мире. (Как реализовать?)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг