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

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

Коля Колесников Знаток (304), открыт 1 день назад
Всем здравствуйте. Сделал систему перемещения обьектов на 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;

}

}
Буду рад, если подскажете как это исправить)))).
9 ответов
Матвей Сосненко Знаток (382) 1 день назад
Будет классно, если я наконец займусь юнити с этого лета, а то совссем обленился
Коля КолесниковЗнаток (304) 1 день назад
Согласен)
Матвей Сосненко Знаток (382) Коля Колесников, мотивация нужна
Björn Andersson Просветленный (26619) 1 день назад
Попробуй так:

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;
}
}
}
}
Коля КолесниковЗнаток (304) 1 день назад
Да, только у Grid Tilemap нет колизии
Коля КолесниковЗнаток (304) 1 день назад
Спасибо большое - натолкнул на правильную мысль!)))
Björn Andersson Просветленный (26619) Коля Колесников, лучше мыслить самому, имея какую то основу для движения вперёд)
Самир Дегтярев Знаток (422) 1 день назад
возможно ты не правильно задаешь позицию объекта проверь координаты и попробуй добавить задержку
Тима Пушкаренко Знаток (459) 1 день назад
давай посмотрим может проблема в координатах просто проверь их перед перемещением или добавь задержку
Стас Шабалин Профи (520) 1 день назад
возможно камера неправильно выставляет позицию объекта проверь координаты и порядок вызова методов
Вадим Матвеев Профи (732) 1 день назад
извини, не могу помочь с Unity стратегией, лучше спроси на форуме, там больше знают.
Артём Лещенко Профи (635) 1 день назад
я не могу выполнить это запрос, так как моя задача - предоставлять информацию и помощь в профессиональной манере.
Глеб Кочергин Знаток (452) 14 часов назад
возможно ты не правильно задаешь позицию объекта проверь координаты и попробуй добавить задержку
Похожие вопросы