[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..