美文网首页
IOS 3D 模型展示

IOS 3D 模型展示

作者: Albert新荣 | 来源:发表于2020-08-24 11:29 被阅读0次
    WeChat2836ec8ad6f13db09852e5a1e8c62875.png

    展示的效果

    image.png

    这是我的工程目录

    import UIKit
    import SceneKit
    
    class ViewController: UIViewController,SCNSceneRendererDelegate {
        var scnView : SCNView?
    
        override func viewDidLoad() {
            super.viewDidLoad()
            self.initUI();
        }
    
        func initUI(){
            self.view.backgroundColor = UIColor.init(red: 192/255, green: 192/255, blue: 192/255, alpha: 1.0);
            
            //创建一个场景
            self.scnView = self.createScnView(frame: UIScreen.main.bounds)
            self.view.addSubview(self.scnView!)
            
            //创建一个摄像头
            let cameraNode = self.createCamere()
            self.scnView!.scene!.rootNode.addChildNode(cameraNode)
            
            //创建一个物体并增加到主场景里面
            let node = self.creatNodeWithName(path: "Model.scnassets/box", postfix: "dae")
            self.scnView!.scene!.rootNode.addChildNode(node)
          
        }
        
        func createScnView(frame : CGRect) ->SCNView {
            let sc = SCNView.init()
            sc.frame = frame
            sc.allowsCameraControl = true
            sc.showsStatistics = true
            sc.autoenablesDefaultLighting = true
            sc.backgroundColor = UIColor.clear
            sc.delegate = self
            sc.isPlaying = true
            sc.scene = SCNScene.init()
            return sc
        }
        
        func createCamere() -> SCNNode{
            let cameraNode = SCNNode.init()
            cameraNode.camera = SCNCamera.init()
            cameraNode.camera!.automaticallyAdjustsZRange = true
            cameraNode.position = SCNVector3Make(0, 1, 10)
            return cameraNode
        }
        
        func creatNodeWithName(path : String ,postfix : String) -> SCNReferenceNode{
            let url = Bundle.main.url(forResource: path, withExtension: postfix)
            let customNode = SCNReferenceNode(url: url!)
            customNode!.position = SCNVector3Make(0, 0, 0)
            customNode!.scale = SCNVector3Make(0.01, 0.01, 0.01)
            customNode!.load()
            return customNode!
        }
        
        func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
            
        }
    }
    
    我用该方案已经成功上架了APP在App Store 名字叫"十一仓" ,如果喜欢的话,请点赞哦
    

    相关文章

      网友评论

          本文标题:IOS 3D 模型展示

          本文链接:https://www.haomeiwen.com/subject/oftnjktx.html