[swift] scenekit / テクスチャなしで床をタイル上にする方法
scenekit / テクスチャなしで床をタイル上にする方法は以下の通り。
SCNFloorに色やテクスチャを貼りたかったが、SCNFloorにはMaterialのプロパティがなく、床を自作することにした。
SCNPlaneを使用してノードを作成し、Y軸-90度回転させ、2つのforでタイルを敷き詰めていく。
override func viewDidLoad() { super.viewDidLoad() //カメラなどの環境設定は省略 setupFloor(scene: scene) } func setupFloor(scene:SCNScene) { let chessBoardWidth = 30; //横に並べる枚数 let chessBoardDepth = 30; //縦に並べる枚数 let tileWidth = 1; //タイルの幅 let tileDepth = 1; //タイルの奥行き let parentNode = SCNNode() //タイルを敷き詰める親ノードを作成 scene.rootNode.addChildNode(parentNode) //黒タイル(透明度0.5のSCNPlane) let blackMaterial = SCNMaterial() blackMaterial.diffuse.contents = UIColor.black; blackMaterial.transparency = 0.5 let blackTile = SCNPlane(width: CGFloat(tileWidth), height: CGFloat(tileDepth)) blackTile.firstMaterial = blackMaterial; //白タイル(透明度0.5のSCNPlane) let whiteMaterial = SCNMaterial() whiteMaterial.diffuse.contents = UIColor.white; whiteMaterial.transparency = 0.5 let whiteTile = SCNPlane(width: CGFloat(tileWidth), height: CGFloat(tileDepth)) whiteTile.firstMaterial = whiteMaterial; //奇数かどうかの判定変数 var isOdd = true; for x in 0..