首先,我想说的是,我完全是自学成才,因此我会在网上找到尽可能多的教程,因此如果我对某些概念不太熟悉,请提前道歉。
好的,我想就几天来困扰我的事情寻求帮助。
我在SpriteKit场景(GameScene)中有一个参考节点(referenceNode),
该引用节点引用了另一个SpriteKit Scene(referenceScene),
并且此场景具有一个Custom类(referenceClass.swift)。
我在referenceClass.swift中有一个名为trueOrFalse的布尔变量,我希望能够从gameScene.swift中的代码中更改标签。
我已经尝试通过创建实例从SceneEditor强制转换为我的代码,就像创建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()
{
}
}
这只是我所做的一个小示例项目,因此我可以尝试尝试可以找到但没有成功的不同解决方案的概念。
我意识到我可以创建全局变量,但是我试图将我的代码保持整洁,因为与此节点相关的所有功能都保留在此referenceClass中。也有人告诉我它不好编程吗?
任何帮助将不胜感激 :)
巴尼
最佳答案
首先,我将检查搜索是否正确完成-
https://developer.apple.com/documentation/spritekit/sknode/searching_the_node_tree
例如,在模板SpriteKit项目中,将使用//
前缀(即您的情况下//referenceNode
)搜索节点。
其次,不要立即将其强制强制转换为SKReferenceNode
,首先要检查返回的对象类型(如果有)。
关于swift - 如何在SpriteKit场景编辑器引用节点上的自定义类中访问Swift中的变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54827557/