Я использую функцию swift childNode(withName: String, recursively: Bool)
для поиска дочернего узла в родительском узле на моей 3D-карте.
Итак, моя карта загружается правильно, и я пытаюсь использовать эту функцию.
Я пробовал на одном узле EntranceGround
, и это сработало, да!
Но когда я попытался использовать расширенный поиск, чтобы собрать дочерний primitive_0
в родительском узле Scene
, это вообще не сработало, и я не знаю почему.
Документация для расширенного поиска: Документация Apple
Вот пример простого поиска :
if let screenbox = map.childNode(withName: "EntranceGround", recursively: true)
{
/// Function called to create a object Zone
_ = self.createZone(name: "Hall", in: screenbox)
} else {
/// I use NSLogger to have a better console log, its the equivalent of print()
Logger.shared.log(.app, .error, "Didn't find the Hall node")
}
и вот ответ на консоли, он работал хорошо, мой объект был создан
Zone of Hall : Size --> <SCNBox: 0x28326c380 | width=21.345 height=1.194 length=28.079 chamferRadius=0.000> || Center --> SCNVector3(x: 0.0037841797, y: -0.5817822, z: 10.556584)
Теперь я использую сложный поиск, чтобы посмотреть primitive_0 в Scene:
if let screenbox = map.childNode(withName: "//Scene/primitive_0", recursively: true) {
_ = self.createZone(name: "Hall", in: screenbox)
} else {
Logger.shared.log(.app, .error, "Didn't find the primitive_0 node")
}
и вот ответ, система не нашла мой объект: Didn't find the primitive_0 node
Если кто-то может помочь мне найти, что я делаю не так:)