Контроль шкалы поведения ARKit - PullRequest
0 голосов
/ 02 октября 2018

Это кажется странным поведением, но мне интересно, есть ли способ иметь узлы одинакового размера на экране, независимо от того, как далеко они от камеры?

Я пытаюсь показать2D-элементы в городе (только текст и изображение) и некоторые из них могут быть далеко, но я все еще хочу, чтобы текст и изображения были видны, но я также не хочу, чтобы он выглядел гигантским, когда я слишком близко от него.

Я сейчас использую пример Apple SpriteKit:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 
{
    guard let sceneView = self.view as? ARSKView else 
    {
        return
    }

    // Create anchor using the camera's current position
    if let currentFrame = sceneView.session.currentFrame 
    {            
        // Create a transform with a translation of 0.2 meters in front of the camera
        var translation = matrix_identity_float4x4
        translation.columns.3.z = -0.2
        let transform = simd_mul(currentFrame.camera.transform, translation)

        // Add a new anchor to the session
        let anchor = ARAnchor(transform: transform)
        sceneView.session.add(anchor: anchor)
    }
}

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Единственное, что «работает» для меня до сих пор, это повторное обновление значения масштаба для каждого узла:

func view(_ view: ARSKView, didUpdate node: SKNode, for anchor: ARAnchor)
{ 
   node.setScale(1)
}
0 голосов
/ 04 октября 2018

Вы можете измерить расстояние между pointOfView и целевым узлом.и вы можете измерить целевой узел соответственно со свойством масштаба

...