書籍を参考にお試しで色々作っている初学者です。
書籍の通りに進めていると「Use of unresolved identifier」というエラーが出てきました。
エラーの原因の大部分は入力ミスとあったので書籍のサンプルコードと見比べていたのですが、何をやっても解決できませんでした。
そこでサンプルコードをコピペして丸々同じコードにしてみたところ、やはり同様のエラーが出ます。
何が原因かをよくよく見てみると、新規作成した時に作られる「プロジェクト名Tests」「プロジェクト名UITests」というフォルダがサンプルにはなかったので思い切って消してみました。
するとエラーが消えました。
追記 ソースコード一部抜粋
ViewController.swift
import UIKit import SceneKit import ARKit class ViewController: UIViewController, ARSCNViewDelegate, ARSessionDelegate { @IBOutlet var sceneView: ARSCNView! override func viewDidLoad() { super.viewDidLoad() // デリゲートになる sceneView.delegate = self // ARSCNViewDelegateデリゲート sceneView.session.delegate = self // ARSessionDelegateデリゲート // シーンを作る let scene = SCNScene() sceneView.scene = scene // shipNodeを2機作る let shipNode1 = ShipNode() shipNode1.position = SCNVector3(0.05, 0.05, -0.3) let shipNode2 = ShipNode() shipNode2.position = SCNVector3(-0.05, -0.15, -0.2) // シーンに追加する sceneView.scene.rootNode.addChildNode(shipNode1) sceneView.scene.rootNode.addChildNode(shipNode2) } }
ShipNode.swift
import SceneKit import ARKit class ShipNode: SCNNode { required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override init() { super.init() //art.scnassets/ship.scnからshipノードを作る let sceneURL = Bundle.main.url(forResource: "ship", withExtension: "scn", subdirectory: "art.scnassets")! let ship = SCNReferenceNode(url: sceneURL)! //ノードを作る ship.load() //データをノードに読み込む //機首をZ軸の正方向に向ける ship.eulerAngles.y = -.pi self.addChildNode(ship) self.scale = SCNVector3Make(0.2, 0.2, 0.2) } }
エラー箇所
ShipNode()の部分でエラーが出ていました。
ViewController.swift
let shipNode1 = ShipNode() let shipNode2 = ShipNode()
あなたの回答
tips
プレビュー