美文网首页
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