将 SKScene 添加到 UIViewController?
Adding an SKScene to a UIViewController?
我刚刚在界面生成器中创建了一个新的 UIViewController
。它从 UITableViewController
(单元格)开始。我现在想在 UIViewController
中使用 SKScene
。这是如何实现的?
还有一个旁注……
如果 SKScene
占据了整个 UIViewController.view
,您可以在场景顶部叠加 UIKit
对象吗?
或者最好在 UIViewController.view
中创建一个单独的 UIView
来容纳 SKScene
,然后在这个单独的 [=17= 周围布置 UIKit
对象],让默认的 UIViewController.view
充当所有这些元素的容器?如果采用这种方式,理论上这些UIKit
个对象能被SKScene
访问吗?
如果您创建一个新的 Spritekit 应用程序,它会根据您的需要设置好视图控制器。您需要做的就是将该视图控制器复制到您的项目中,应用 segue,然后您就可以开始使用 skscene。
回答你关于 UIKit 的问题,是的,你可以将 UIKit 元素放在 SKScene 之上,它当然只会被攻击到 skscene 所属的视图,所以场景本身不能直接与之交互他们,您需要实施某种消息传递系统,以便两者可以通信。
- 将 SKView 添加到您的 viewController。
- 将 SKScene 添加到您的 SKView。
您可以从 SKScene 中覆盖 UIKit 项目。这就是我在游戏中使用集合和 table 视图的方式。但是,它们需要作为子视图添加到持有 SKScene 的 SKView 上。
SKScene has a view property that should hold a reference 到它包含的 SKView。所以这只是做这样的事情的问题。
class MyScene: SKScene {
var someView: UIView
override func didMoveToView(view: SKView) {
someView = //setup view here
view.addSubview(someView)
}
}
然后在这个场景中,您可以随心所欲地访问您的 UIKit 对象。
我刚刚在界面生成器中创建了一个新的 UIViewController
。它从 UITableViewController
(单元格)开始。我现在想在 UIViewController
中使用 SKScene
。这是如何实现的?
还有一个旁注……
如果 SKScene
占据了整个 UIViewController.view
,您可以在场景顶部叠加 UIKit
对象吗?
或者最好在 UIViewController.view
中创建一个单独的 UIView
来容纳 SKScene
,然后在这个单独的 [=17= 周围布置 UIKit
对象],让默认的 UIViewController.view
充当所有这些元素的容器?如果采用这种方式,理论上这些UIKit
个对象能被SKScene
访问吗?
如果您创建一个新的 Spritekit 应用程序,它会根据您的需要设置好视图控制器。您需要做的就是将该视图控制器复制到您的项目中,应用 segue,然后您就可以开始使用 skscene。
回答你关于 UIKit 的问题,是的,你可以将 UIKit 元素放在 SKScene 之上,它当然只会被攻击到 skscene 所属的视图,所以场景本身不能直接与之交互他们,您需要实施某种消息传递系统,以便两者可以通信。
- 将 SKView 添加到您的 viewController。
- 将 SKScene 添加到您的 SKView。
您可以从 SKScene 中覆盖 UIKit 项目。这就是我在游戏中使用集合和 table 视图的方式。但是,它们需要作为子视图添加到持有 SKScene 的 SKView 上。
SKScene has a view property that should hold a reference 到它包含的 SKView。所以这只是做这样的事情的问题。
class MyScene: SKScene {
var someView: UIView
override func didMoveToView(view: SKView) {
someView = //setup view here
view.addSubview(someView)
}
}
然后在这个场景中,您可以随心所欲地访问您的 UIKit 对象。