首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用手势沿Y轴移动ModelEntity?

如何使用手势沿Y轴移动ModelEntity?
EN

Stack Overflow用户
提问于 2022-03-18 14:55:56
回答 1查看 492关注 0票数 2

在此文档之后,我不知道是否有一种简单的方法沿着Y轴移动ModelEntity .我希望这样做的原因是,在ARQuickLook中,该功能与.scale.rotate函数一起工作,这些功能也在苹果文档中列出。

如果有任何简单/类似的方式来安装这些手势,请告诉我。

EN

回答 1

Stack Overflow用户

发布于 2022-03-18 17:35:14

在RealityKit 2.0中,与ARQuickLook不同的是,只有一个触摸拖动手势实现了来移动模型(目前还没有实现用于垂直拖动的双指手势)。用一个单指手势,你可以沿着它的锚定平面移动实体--通常它是XZ平面,所以没有Y轴拖动。

代码语言:javascript
复制
public static let translation: ARView.EntityGestures

尽管如此,您仍然可以选择另外实现2D UIGestureRecognizer

代码语言:javascript
复制
import UIKit
import RealityKit

class ViewController: UIViewController {

    @IBOutlet var arView: ARView!
    var box: ModelEntity? = nil

    override func viewDidLoad() {
        super.viewDidLoad()

        box = ModelEntity(mesh: .generateBox(size: 0.05))
        box!.generateCollisionShapes(recursive: true)
        arView.installGestures([.all], for: box! as (Entity & HasCollision))

        let anchor = AnchorEntity(world: [0, 0,-0.2])
        anchor.addChild(box!)
        arView.scene.anchors.append(anchor)
        
        for swipe in [UISwipeGestureRecognizer.Direction.up,
                      UISwipeGestureRecognizer.Direction.down] {

            let sw = UISwipeGestureRecognizer(target: self,
                                       action: #selector(dragUpAndDown))
            sw.direction = swipe
            arView.addGestureRecognizer(sw)
        }
    }
    
    @objc func dragUpAndDown(recognizer: UISwipeGestureRecognizer) {
        if recognizer.direction == .up {
            box!.position.y += 0.01
        }
        if recognizer.direction == .down {
            box!.position.y -= 0.01
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71528947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档