嗨,好吧,我只有一个UIView只是标准的默认 Controller ,但是我在另一个.swift文件中有一个SCNView,因此我可以从标准的UIViewController转换为SKScene,但是我不能从SKScene转换为SCNcene,这是我的收获所在代码

 class PlayController: UIViewController, ADBannerViewDelegate, SKPhysicsContactDelegate, SKSceneDelegate, SCNSceneRendererDelegate, SCNPhysicsContactDelegate{


    let scnView = self.view as! SCNView
    let skScene = scnView.overlaySKScene

    scnView.overlaySKScene = skScene
    scnView.backgroundColor = UIColor.whiteColor()

    scnView.scene = FieldScene
    scnView.delegate = self

    scnView.allowsCameraControl = true
    scnView.showsStatistics = false

如上所示,我要过渡到的 Controller 以UIViewController开头,然后再下一行作为SCNView放进去。
在这一行代码中,让scnView = self.view为! SCNView,但是当我尝试从SKScene过渡到此场景时,如何在Swift代码中做到这一点?

我正在启动的 Controller 如下所示
import iAd
import UIKit
import GameKit
import SceneKit
import StoreKit
import SpriteKit
import QuartzCore
import Foundation
import AVFoundation
import AudioToolbox

//============================================================
class MainMenuController: SKScene, ADBannerViewDelegate, SKPhysicsContactDelegate, SKSceneDelegate, SCNSceneRendererDelegate, SCNPhysicsContactDelegate{


override func didMoveToView(view: SKView) {
}

最佳答案

overlaySKScene

应该更改let skScene = scnView.overlaySKScenescnView.overlaySKScene = skScene的实现,因为它们无效

创建SKScene对象:let overlayScene = SKScene(size: CGSizeMake(200, 200))

设置基础对象的位置:base.position = CGPointMake(75, 0)

将基础对象添加到场景:overlayScene.addChild(base)

将场景设置为叠加:scnView.overlaySKScene = overlayScene

过渡中

您可以通过调用 View 的 presentScene:withTransition:incomingPointOfView:completionHandler:方法来添加过渡。

    sceneView.presentScene(nextSceneToLoad(),
    withTransition:skTransition,
    incomingPointOfView:nil, completionHandler:nil)

另一个例子。
let transition = SKTransition.pushWithDirection(.Right, duration: 1.0)
self.sceneView?.presentScene(SCNScene(), withTransition: transition, incomingPointOfView: nil, completionHandler: nil)

overlaySKScene API Reference

presentScene API Reference

关于ios - 如何从SKView过渡到SCNView?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33731738/

10-11 04:28