簡體   English   中英

使用SceneKit控制飛行器的飛行

[英]Controlling movement of flying a vehicle with SceneKit

我目前有一個場景,該場景在場景的根部包含一個中心節點,該節點具有類似地球的幾何形狀,並且一個節點代表飛行中的飛行器。

但是,我找不到控制車輛運動的正確方法。 我需要能夠以固定的高度和速度在軌道上左右旋轉。

我嘗試了許多動畫和物理力的組合,所有這些都會導致不良結果。

我最接近的是:

  • 將車輛的支點屬性設置為場景的中心
  • 然后像下面那樣設置一個動作來控制前進

     [_vehicleNode runAction:[SCNAction repeatActionForever:[SCNAction rotateByX:-1 y:0 z:0 duration:10.0]]]; 
  • 然后最后施加力左右旋轉

     [_vehicleNode.physicsBody applyTorque:SCNVector4Make(0, 1, 0, 1) impulse:YES]; 

但是,我似乎無法將樞軸和/或位置設置為正確的值以獲得所需的結果。

編輯:似乎上述方法將是我正在尋找的解決方案,但是由於某些原因,當我將幾何圖形添加到車輛節點時,它在場景圖中的位置會發生巨大變化。 當我添加硬編碼按鈕以將其位置更改為它所屬的位置時,它似乎僅對單個幀是正確的,然后直接回到虛無的中間。

編輯2:用原始球體替換所有幾何體以進行測試之后,該節點現在可以按預期旋轉,但是現在不受物理力的影響,這些力似乎忽略了將其聲明為dynamicBody。

如果我了解您要正確實現的目標,則可以嘗試以下操作:

  • 將第一個節點添加到場景中,位於(0,0,0)處,並使用SCNAction使其沿Y軸永遠旋轉
  • 將您的飛船節點添加為第一個節點的子節點。 將其放置在(X,0,0)處,使其繞地球旋轉
  • 使用動作或動畫沿X軸旋轉飛船節點

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM