- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一般来说,当一个人想要让游戏中的角色面对相机时,可以使用 SCNLookAtConstraint,这实际上也为我服务。
下面,my_object 是我试图根据约束确定方向的节点。 'Enemy' 指的是场景中的某个节点,pointOfView 是场景的视点。当我点击 my_object 时,它应该会注视敌人一秒钟,然后回到我的 pointOfView。
设置 LookAtConstraint 以便“对象”注视“敌人”一秒钟。
my_object.constraints?.removeAll()
let targetNode = sceneView.scene.rootNode.childNode(withName: (chosenScenarioForChallenge?.shape)!, recursively: true)
let lookAt = SCNLookAtConstraint(target: targetNode)
lookAt.isGimbalLockEnabled = true
my_object.constraints = [lookAt]
Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(resetObject), userInfo: nil, repeats: false)
重置对象以查看'敌人'节点后查看我的观点
@objc
func resetObject() {
my_object.constraints?.removeAll()
let targetNode = sceneView.pointOfView
let lookAt = SCNLookAtConstraint(target: targetNode)
lookAt.isGimbalLockEnabled = true
my_object.constraints = [lookAt]
}
我的问题是,我不想突然改变约束。我希望它流畅,因此我想在其中加入动画。在查看了 SCNAction 和 SCNAnimation 之后,我没有找到任何与约束相关的内容。由于约束动态更新位置,我可以理解 SCNAction.move(to/by:) 等将不起作用。最终,当我点击时,我的对象应该开始逐渐看向敌方节点,在 1-2 秒后,它应该会慢慢地回来看我的 pointOfView。
请注意,我不希望角色从技术上看镜头,因此我使用的是 SCNLookAtConstraint,而不是 SCNBillboardConstraint。
指针会有所帮助,TIA。
最佳答案
target
属性是可读写的,因此您应该能够重用 SCNLookAtConstraint
实例(而不是创建一个新实例)并仅交换目标。
编辑
influenceFactor
约束允许在节点的当前变换和约束计算的变换之间实现更平滑的动画。
关于ios - 在 SceneKit 游戏中为 SCNNode 设置动画 SCNConstraint (LookAt) 以使过渡渐进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47973953/
前几天我读到了一种特殊类型的回调,当你重复调用它时,它会随着你的进展而进行。就像第一次调用它时执行 A 并返回一样,然后在下次调用它时执行 B。最终它以某种方式发出信号,表明最终行动已经采取。 我不记
我正在使用 php Gmagick 修改图像。以下代码按预期工作,只是图像不是渐进的。为什么?根据GraphicsMagick docs它应该。作为引用,输入图像为 666 x 1000。 $
我希望能够使用 Flash 播放器传送音乐/mp3,但我想让 mp3 文件无法被嗅探......即你不能使用 safari、firebug 等。使用事件窗口找出 mp3 位置。我没有流媒体服务器。任何
我是一名优秀的程序员,十分优秀!