2017-01-16 10 views
0

ノードの色をスムーズにフェードアウトしようとしていますが、SCNTransactionが正しく動作するように見えません。ある色から別の色にゆっくりと移行したい。SCNTransaction color fade?

let defaultMaterial = SCNMaterial() 
    defaultMaterial.diffuse.contents = randomColor() 
    defaultMaterial.specular.contents = randomColor() 
    defaultMaterial.emission.contents = randomColor() 

    SCNTransaction.begin() 
    SCNTransaction.animationDuration = 2.0 
    emptyLeftSquare.firstMaterial? = defaultMaterial 
    emptyRightSquare.firstMaterial? = defaultMaterial 
    emptyUpSquare.firstMaterial? = defaultMaterial 
    emptyDownSquare.firstMaterial? = defaultMaterial 
    emptyBottomRightLink.firstMaterial? = defaultMaterial 
    emptyBottomLeftLink.firstMaterial? = defaultMaterial 
    emptyTopLeftLink.firstMaterial? = defaultMaterial 
    emptyTopRightLink.firstMaterial? = defaultMaterial 
    SCNTransaction.commit() 

答えて

1

私はあなたが取引を開始する前に、一度だけdefaultMaterialを設定し、アニメーションの持続時間の間、繰り返し同じ値を使用していると思います。初期値を設定しても変化がないので、色の変化は見られません。

transactionの中に再度色を設定した場合は、問題ありません。または、四角形やリンクごとに色を変えたい場合は、最初にdefaultMaterialの設定をリファクタリングして再利用してください。