Как преобразовать в iOS значение SpatialTapGesture RealityKit в координату сущности?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как преобразовать в iOS значение SpatialTapGesture RealityKit в координату сущности?

Сообщение Anonymous »

У меня есть приложение с целью Visionos, и я хочу добавить цель iOS. Оба основаны на RealityKit.

Я хочу использовать SpatialTapGesture < /code>, чтобы получить координату TAP Local для объекта. /p>

Код: Выделить всё

SpatialTapGesture(coordinateSpace: .local)
.targetedToAnyEntity()
.onEnded { tap in
let entity = tap.entity
// Converts from the local space of the View this gesture is attached to the local coordinate space of the Entity that was tapped.
let localPoint3D = tap.convert(tap.location3D, from: .local, to: entity)
// …
}
< /code>
Однако, согласно документам, функция конверта, по -видимому, существует только в Visionos, а не в iOS.

Итак, как я могу сделать это преобразование в iOS? 
[b] edit: [/b] 
Поскольку функция конвертирует 
, пока не существует в iOS, я пытался Найдите обходной путь.

в некоторых случаях может потенциально использовать следующую функцию RealityViewCamerAcontent < /code>: < /p>

Код: Выделить всё

func unproject(
_ point: CGPoint,
from space: some CoordinateSpaceProtocol,
to realitySpace: some RealityCoordinateSpace,
ontoPlane: float4x4
) -> SIMD3?
< /code>
Docu говорит: < /p>

2D -точка в пространстве координат представления может ссылаться на любую точку вдоль
Сегмент линии в 3D -координатном пространстве. Неспроизводство получает 3D -положение точки точки вдоль этого линейного сегмента, которая пересекает плоскость
. Нарученная трехмерная позиция на вершине организации совета директоров, например, Плана.

я попытался использовать unproction < /code>, передав в плоскость, которая параллельна верхней части моей платы. < /p>
Вот мой код. Сначала я сохраняю RealityViewCamerAcontent 
в обновлении RealityView функция:

Код: Выделить всё

@State private var savedContent: RealityViewCameraContent?
spatialtapgesture Я использую:

Код: Выделить всё

SpatialTapGesture(coordinateSpace: .local)
.targetedToAnyEntity()
.onEnded { tap in
// Create the 4x4 matrix representing the plane
var planeMatrix = matrix_identity_float4x4
planeMatrix.columns.0 = SIMD4(1, 0, 0, 0) // x-axis
planeMatrix.columns.1 = SIMD4(0, 1, 0, 0) // y-axis (normal)
planeMatrix.columns.2 = SIMD4(0, 0, 1, 0) // z-axis
planeMatrix.columns.3 = SIMD4(0, 0, -3.4, 1) // Translation

guard let localPoint3D = savedContent?.unproject(tap.location,
from: .global,
to: .camera,
ontoPlane: planeMatrix) else {
return
}
print(localPoint3D)
}
Мое первое наблюдение заключается в том, что параметр от имеет 2 параметры: .global и .local , а параметр также имеет 2 Параметры: .Scene и .camera .

, если я установил на на .scene , функция всегда возвращает Nil , Возможно, потому что у меня есть приложение без AR. Если я установите на на .camera , я получаю точку в 3D -пространстве, и эта точка зависит от того, где я нажимаю на экран. Тем не менее, значения координат всегда чрезвычайно малы, что-то вроде 1.0E-7, и я не понимаю, почему. Настройка из на .global и .local не имеет большого значения. Что -то не так с моим кодом?

Подробнее здесь: https://stackoverflow.com/questions/790 ... y-coordina
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как преобразовать в iOS значение SpatialTapGesture RealityKit в координату сущности?
    Anonymous » » в форуме IOS
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Преобразовать повернутую координату NetCDF в обычную координату в CDO?
    Anonymous » » в форуме Linux
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Как преобразовать координату в собственном DPI в координату в логике DPI WPF?
    Anonymous » » в форуме C#
    0 Ответы
    64 Просмотры
    Последнее сообщение Anonymous
  • Realitykit Videomaterial рендегирует розовым на iOS 18, но работает на iOS 17 - как исправить?
    Anonymous » » в форуме IOS
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как заполнить область горизонтальной плоскости AR в RealityKit/AR объектами AR на iOS?
    Anonymous » » в форуме IOS
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»