Вопрос по стратегии в Unity
Всем здравствуйте. Сделал систему перемещения обьектов на 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;
}
} Буду рад, если подскажете как это исправить)))).
извини, не могу помочь с Unity стратегией, лучше спроси на форуме, там больше знают.
возможно камера неправильно выставляет позицию объекта проверь координаты и порядок вызова методов
давай посмотрим может проблема в координатах просто проверь их перед перемещением или добавь задержку
возможно ты не правильно задаешь позицию объекта проверь координаты и попробуй добавить задержку
Попробуй так:
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;
}
}
}
}
Да, только у Grid Tilemap нет колизии
Спасибо большое - натолкнул на правильную мысль!)))
возможно ты не правильно задаешь позицию объекта проверь координаты и попробуй добавить задержку
я не могу выполнить это запрос, так как моя задача - предоставлять информацию и помощь в профессиональной манере.
Не в теме!
Будет классно, если я наконец займусь юнити с этого лета, а то совссем обленился
Согласен)