Сохранить цикл в физике ScnnodeIOS

Программируем под IOS
Ответить
Anonymous
 Сохранить цикл в физике Scnnode

Сообщение Anonymous »

У меня есть помощник UTIL, который добавляет физику в узле: < /p>

Код: Выделить всё

  @discardableResult
public static func addPhysicsBody(to node: SCNNode, type: SCNPhysicsBodyType) -> SCNPhysicsBody {
// Here I use SCNPhysicsShape(node:) API
let shape = SCNPhysicsShape(node: node)
let body = SCNPhysicsBody(type: type, shape: shape)
node.physicsBody = body
return body
}
< /code>
Кажется, есть цикл удержания. Даже если я удаляю узел из родителей, узел все еще находится в памяти. < /P>
Однако, если я изменю код на: < /p>
  @discardableResult
public static func addPhysicsBody(to node: SCNNode, type: SCNPhysicsBodyType) -> SCNPhysicsBody {
// Here I change to SCNPhysicsShape(geometry:) API
let shape =  SCNPhysicsShape(geometry: node.geometry!)
let body = SCNPhysicsBody(type: type, shape: shape)
node.physicsBody = body
return body
}
< /code>
Это решает цикл удержания - после удаления узла из родителя, узел больше не в памяти. < /p>
Я подозреваю, что цикл сохраняется by scnphysicsshape (node: node) 
api (https://developer.apple.com/documentati ... shape/init(node:options :)), где Узел сохраняет тело физики, которое сохраняет Форма, которая сохраняет узел .
Однако я чувствую себя ошеломленным, что Apple не осознает такой очевидный цикл удержания, что заставляет меня сомневаться в себе. Я использовал API неправильно?

Подробнее здесь: https://stackoverflow.com/questions/793 ... hysicsbody
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»