Я пытаюсь преобразовать одно координатное пространство в другое.У меня есть два набора объектов, представляющих точки в пространстве.Кроме того, у меня есть в общей сложности 6 объектов, и я нахожу между ними Матрицу преобразования и применяю это преобразование к 7-му объекту, используя этот фрагмент кода:
TestObject.transform.position = TransformationMatrix.MultiplyPoint(InitPosition);
TestObject.transform.rotation = Quaternion.LookRotation(TransformationMatrix.GetColumn(1),
TransformationMatrix.GetColumn(2))* InitQT;
Debug.Log("Test object is at" + TestObject.transform.position+"
local position"+TestObject.transform.localPosition+" Calculation is "
+ TransformationMatrix.MultiplyPoint(InitPosition));
Этот код работает, однако я перевожу или поворачиваю вторую группу объекта(точки), но я понял, что в инспекторе мой тестовый объект имеет другую координату.Я вижу в консоли
Test object is at(12.5, 2.5, 0.0) local position(12.5, 2.5, 0.0) Calculation is (12.5, 2.5, 0.0)
Однако в инспекторе я получаю результат (12.5,2.5,-4.47034)
.Я ставлю игру на паузу на ноль, она не двигается, но когда я возобновляю игру, она становится -4.47034
.
Я использую эту сцену, чтобы проверить мою трансформацию.Обычно я должен применить это преобразование к лазерному сканеру в системе координат Unity, и хотя это ни на что не влияет и объекты находятся в правильном положении, я боюсь, что это может вызвать проблемы, когда я хотел применить это преобразование в Unity и лазерном сканерепреобразование системы координат.Потому что это не работает, как это работает в тестовой сцене.Может ли быть так, что я делаю ошибку, используя MultiplyPoint
?Вот мой взгляд инспектора: я перехожу из синего координатного пространства в красное.Заранее благодарим за любую помощь!
