Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос по стратегии в Unity

Коля Колесников Знаток (289), открыт 14 часов назад
Всем здравствуйте. Сделал систему перемещения обьектов на Grid по этому ролику: https://rutube.ru/video/f7fd1022eb0dea40b8de56007a7e95fc/?r=wd . У меня только в 3D , но короче - обьект после появления мгновенно телепортируется в камеру и больше никуда, не пойму почему.
Вот примерная часть кода:
 private void Update() 
{


if (!temp)
{
Debug.Log("1");
return;

}
if(transform.position != prevPos)
{

prevPos = transform.position;

}

if (!temp.Placed)
{
Debug.Log("2");
Vector2 touchPos = camera.ScreenToWorldPoint(Input.mousePosition);
Vector3Int cellPos = gridLayout.LocalToCell(touchPos);

if (prevPos != cellPos)
{
Debug.Log("3");
temp.transform.localPosition = gridLayout.CellToLocalInterpolated(cellPos
+ new Vector3(.5f, .5f, 0f));

prevPos = cellPos;

}

}
Буду рад, если подскажете как это исправить)))).
8 ответов
Матвей Сосненко Знаток (371) 14 часов назад
Будет классно, если я наконец займусь юнити с этого лета, а то совссем обленился
Коля КолесниковЗнаток (289) 14 часов назад
Согласен)
Матвей Сосненко Знаток (371) Коля Колесников, мотивация нужна
Björn Andersson Просветленный (26618) 14 часов назад
Попробуй так:

private void Update()
{
if (!temp)
{
Debug.Log("1");
return;
}

if(transform.position != prevPos)
{
prevPos = transform.position;
}

if (!temp.Placed)
{
Debug.Log("2");

// Кастуем луч из камеры в сцену
Ray ray = camera.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;

if (Physics.Raycast(ray, out hit))
{
Vector3 worldPosition = hit.point; // Берем точку пересечения с коллизией
Vector3Int cellPos = gridLayout.WorldToCell(worldPosition); // Конвертируем в клетку

if (prevPos != cellPos)
{
Debug.Log("3");
temp.transform.localPosition = gridLayout.CellToLocalInterpolated(cellPos + new Vector3(.5f, .5f, .5f));

prevPos = cellPos;
}
}
}
}
Коля КолесниковЗнаток (289) 13 часов назад
Да, только у Grid Tilemap нет колизии
Коля КолесниковЗнаток (289) 13 часов назад
Спасибо большое - натолкнул на правильную мысль!)))
Björn Andersson Просветленный (26618) Коля Колесников, лучше мыслить самому, имея какую то основу для движения вперёд)
Самир Дегтярев Знаток (380) 13 часов назад
возможно ты не правильно задаешь позицию объекта проверь координаты и попробуй добавить задержку
Тима Пушкаренко Знаток (387) 13 часов назад
давай посмотрим может проблема в координатах просто проверь их перед перемещением или добавь задержку
Стас Шабалин Знаток (455) 13 часов назад
возможно камера неправильно выставляет позицию объекта проверь координаты и порядок вызова методов
Вадим Матвеев Профи (707) 13 часов назад
извини, не могу помочь с Unity стратегией, лучше спроси на форуме, там больше знают.
Артём Лещенко Профи (612) 12 часов назад
я не могу выполнить это запрос, так как моя задача - предоставлять информацию и помощь в профессиональной манере.
Похожие вопросы