Размещайте объекты на основе координат, а не центральных координат в Unity - PullRequest
0 голосов
/ 19 апреля 2019

enter image description here Я создаю объекты сетки динамически на основе экрана.

Таким образом, объекты, содержащие объекты сетки, всегда имеют одинаковый размер, но объекты сетки имеют разные формы и размеры.

Я хочу, чтобы вы увидели мою фотографию и поняли ее.Фактически, синяя область прозрачна.

В настоящее время я использую мобильную камеру для съемки Луча на полу, и я хочу поместить объект в точку удара Луча.

enter image description here Но это, кажется, требует много вычислений.

Я думаю, что мы должны сначала использовать другие координаты, чем центральные координаты объекта.И я думаю, что мы должны поместить объект немного выше точки столкновения.Половина размера объекта меша,

Так что я попробовал это, но потерпел неудачу.Как я могу решить эту проблему?

Ниже приведен мой исходный код.

Vector3 hitPositon = hit.Pose.position;

Vector3 meshObjectCenter = ObjectPrefab.GetComponent<Renderer>().bounds.center;
Vector3 meshObjectSize = ObjectPrefab.GetComponent<Renderer>().bounds.size;

Vector3 CenterPointRevision = meshObjectCenter - hitPositon;
Vector3 YAxisRevision = new Vector3(0, meshObjectSize.y / 2, 0);

Vector3 NewPoint = ARObjectPrefab.transform.position - CenterPointRevision + YAxisRevision;

ObjectPrefab.transform.position = NewPoint;

enter image description here

Объект находится в этом формате, икартинка выше выглядит удачной, но неудачной.

1 Ответ

1 голос
/ 19 апреля 2019

Позиция - это просто место попадания минус смещение к центру плюс смещение по оси Y:

Vector3 hitPositon = hit.Pose.position;
Vector3 meshObjectCenter = ObjectPrefab.GetComponent<Renderer>().bounds.center;
Vector3 meshObjectSize = ObjectPrefab.GetComponent<Renderer>().bounds.size;
Vector3 YAxisRevision = new Vector3(0, meshObjectSize.y / 2, 0);
ObjectPrefab.transform.position = hitPositon - meshObjectCenter + YAxisRevision;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...