Самый простой способ развить этот эффект wave
- это использовать вторичный редактор (вкладка Действия) в XCode.
Вам нужно создать 6 кубов, расположить их на равном расстоянии вдоль оси x. Для каждого куба необходимо применить действие Move
, а затем присвоить значение +3
и -3
параметру Y
соответственно в Attributes
инспекторе. Затем выберите оба клипа (для каждого куба) на временной шкале и выберите Create Loop
, а затем выберите infinite
в контекстном меню RMB.
Для каждого следующего куба в очереди вам нужно вовремя переместить клип действия Move
. Как это:
Или используйте следующий код для каждого куба (не забудьте назначить смещение времени):
boxUno.geometry = SCNBox()
boxUno.position.x = -10 //initial position along x axis
scene.rootNode.addChildNode(boxUno)
let up_Uno = SCNVector3(x: -10, y: 3, z: 0)
let stay_Uno = SCNVector3(x: -10, y: 0, z: 0)
let down_Uno = SCNVector3(x: -10, y: -3, z: 0)
let moveUp_Uno = SCNAction.move(to: up_Uno, duration: 0.25)
let zero_Uno = SCNAction.move(to: stay_Uno, duration: 0.25)
let moveDown_Uno = SCNAction.move(to: down_Uno, duration: 0.25)
boxUno.runAction(SCNAction.repeatForever(SCNAction.sequence([moveUp_Uno,
zero_Uno,
moveDown_Uno,
zero_Uno])))
//boxDos.position.x = -5
//boxTres.position.x = 0
//boxCuatro.position.x = 5
//boxCinco.position.x = 10
//boxSeis.position.x = 15