当我使用
Swift语言创建一个新的Scene Kit游戏时,已经出现了一些结果:
我想要关闭照亮立方体的环境光,但我不知道如何做到这一点,因为没有明确附加到任何节点的任何光.
她的游戏视图控制器代码:
import SceneKit
import QuartzCore
class GameViewController: NSViewController {
@IBOutlet var gameView: GameView
override func awakeFromNib(){
// create a new scene
let scene = SCNScene()
// create and add a camera to the scene
let cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
scene.rootNode.addChildNode(cameraNode)
// place the camera
cameraNode.position = SCNVector3(x: 0,y: 0,z: 2)
// create and add a 3d Box to the scene
let BoxNode = SCNNode()
BoxNode.geometry = SCNBox(width: 1,height: 1,length: 1,chamferRadius: 0.02)
scene.rootNode.addChildNode(BoxNode)
// create and configure a material
let material = SCNMaterial()
material.diffuse.contents = NSImage(named: "texture")
material.specular.contents = NSColor.whiteColor()
material.specular.intensity = 0.2
material.locksAmbientWithDiffuse = true
// set the material to the 3d object geometry
BoxNode.geometry.firstMaterial = material
// animate the 3d object
let animation: CABasicAnimation = CABasicAnimation(keyPath: "rotation")
animation.tovalue = NSValue(SCNVector4: SCNVector4(x: 1,y: 1,z: 0,w: M_PI*2))
animation.duration = 5
animation.repeatCount = MAXFLOAT //repeat forever
BoxNode.addAnimation(animation,forKey: "")
// set the scene to the view
self.gameView!.scene = scene
// allows the user to manipulate the camera
self.gameView!.allowsCameraControl = true
// show statistics such as fps and timing information
self.gameView!.showsstatistics = true
// configure the view
self.gameView!.backgroundColor = NSColor.blackColor()
}
}
看起来你正在看到“默认”照明.
您可以通过调用显式禁用它
gameView.autoenablesDefaultLighting = false
只要您将自己的灯光添加到场景中,它也会被禁用.