gpt4 book ai didi

swift - 如何使 scnView 小于屏幕尺寸?

转载 作者:行者123 更新时间:2023-11-28 13:18:51 26 4
gpt4 key购买 nike

View Controller

import UIKit
import SceneKit

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

let scnView = self.view as SCNView

scnView.backgroundColor = UIColor.blackColor()

let sizeScnView = CGSize(width: 100.0, height: 100.0)
let centerView = CGPoint(x: CGRectGetMidX(self.view.frame) - sizeScnView.width/2, y: CGRectGetMidY(self.view.frame) - sizeScnView.height/2)
let scene = Tile(frame: CGRect(origin: centerView, size: sizeScnView))
scnView.scene = scene
}
}

平铺

import UIKit
import SceneKit

class Tile: SCNScene {

override init() {
super.init()

let ball = SCNSphere(radius: 0.5)
let ballNode = SCNNode(geometry: ball)
ball.firstMaterial?.diffuse.contents = UIColor.orangeColor()
self.rootNode.addChildNode(ballNode)

}

required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

最佳答案

刚看完这篇文章不知道问题是否还未解决我在小测试中运行这个似乎工作正常

class ViewController: UIViewController {
var sceneView: SCNView!
var camera: SCNNode!
var light: SCNNode!
var sphere1: SCNNode!
override func viewDidLoad() {
super.viewDidLoad()
let sizeScnView = CGSize(width: 420.0, height: 580.0)
let centerView = CGPoint(x: CGRectGetMidX(self.view.frame) - sizeScnView.width/2, y: CGRectGetMidY(self.view.frame) - sizeScnView.height/2)
sceneView = SCNView(frame: CGRect(origin: centerView, size: sizeScnView))
sceneView.scene = SCNScene()
self.view.addSubview(sceneView)
sceneView.backgroundColor = UIColor.blackColor()
let camera = SCNCamera()
camera.zFar = 10000
self.camera = SCNNode()
self.camera.camera = camera
self.camera.position = SCNVector3(x: -20, y: 55, z: 20)
let constraint = SCNLookAtConstraint(target: ground)
constraint.gimbalLockEnabled = true
self.camera.constraints = [constraint]

let ambientLight = SCNLight()
ambientLight.color = UIColor.darkGrayColor()
ambientLight.type = SCNLightTypeAmbient
self.camera.light = ambientLight

let spotLight = SCNLight()
spotLight.type = SCNLightTypeSpot
spotLight.castsShadow = true
spotLight.spotInnerAngle = 70.0
spotLight.spotOuterAngle = 90.0
spotLight.zFar = 500
light = SCNNode()
light.light = spotLight
light.position = SCNVector3(x: 0, y: 25, z: 25)
light.constraints = [constraint]

let sphereGeometry = SCNSphere(radius: 1.5)
let sphereMaterial = SCNMaterial()
sphereMaterial.diffuse.contents = UIColor.greenColor()
sphereGeometry.materials = [sphereMaterial]
sphere1 = SCNNode(geometry: sphereGeometry)
sphere1.position = SCNVector3(x: -15, y: 1.5, z: 0)

sceneView.scene?.rootNode.addChildNode(self.camera)
sceneView.scene?.rootNode.addChildNode(light)
sceneView.scene?.rootNode.addChildNode(sphere1)


}
}

关于swift - 如何使 scnView 小于屏幕尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27412800/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com