我如何在SpriteKit场景编辑器参考节点上的自定义类中包含的Swift中访问变量



首先,我想说的是,我完全自学地按照我可以找到的互联网上的许多教程,所以如果我不太熟悉某些概念,请提前道歉。

好的

我在SpriteKit场景(GamesCene)中有一个参考节点(参考),
该参考节点引用另一个SpriteKit场景(参考文献),
这个场景有一个自定义类(referenceclass.swift)。

我在referenceclass.swift中有一个布尔值变量,称为trueorfalse,我希望能够从gamescene.swift中的代码更改vale。

我尝试通过创建实例来从场景编码器铸造到我的代码,就像您做的SKSpriteNode和Sklablenodes一样,但这似乎无法正常工作

class GameScene: SKScene
{
var referenceNode: SKReferenceNode!  //link to SceneEditor Reference Node
override func didMove(to view: SKView)
{
    referenceNode = self.childNode(withName: "referenceNode") as! SKReferenceNode
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
{
    referenceNode.trueOrFalse = false
}
}

这是我的自定义类

import UIKit
import SpriteKit
class referenceClass: SKScene
{
    var trueorfalse:Bool = true
    func oneFunction()
    {
    }
}

这只是我制作的一个小示例项目,因此我可以围绕尝试我能找到的不同解决方案的概念,但没有成功。我意识到我可以创建全局变量,但是我试图保持代码清洁,因为与此参考文献中保存的所有功能中的所有功能中,我都可以保持代码。我也被告知它的编程不好?

任何帮助将不胜感激:)

barney

首先,我要检查搜索是否正确完成 - https://developer.apple.com/documentation/spritekit/sknode/searching_the_node_tree

例如,在模板中,正在使用//前缀搜索SpriteKit项目节点,即//referenceNode在您的情况下。

其次,不要立即将其强加于SKReferenceNode,首先检查返回哪种对象(如果有)。

最新更新