내 SpriteKit 게임에서 내 스프라이트의 SKPhysicsBody
에 대한 fieldBitMask
속성에 속성 관찰자를 추가하고 싶습니다. 내가 어떤 조치를 취할 수 있도록 fieldBitMask
속성이 변경되면 알려주고 싶습니다.iOS 라이브러리 클래스의 기존 속성에 속성 관찰자 추가
나는 SKPhysicsBody
을 오버런했는데, 보통 SKPhysicsBody
과 같은 스프라이트 노드에 오버라이드 된 클래스를 할당하려고 시도했을 때 많은 오류가 발생했습니다. 또한 SKPhysicsBody에 대한 확장을 생각했지만 Apple 설명서에 따르면 "Extension은 유형에 새로운 기능을 추가 할 수 있지만 기존 기능을 재정의 할 수 없습니다."따라서이 방법을 사용하여 fieldBitMask
속성을 재정의 할 수없는 것처럼 보입니다. 그것은 부동산 관찰자입니다.
내가 만든 새 사용자 지정 클래스에 속성 관찰자를 만드는 방법을 알고 있습니다. 그러나 Apple 라이브러리의 일부인 클래스의 기존 속성에 속성 관찰자를 추가하는 가장 좋은 방법은 무엇입니까?
이 속성을 구독해야합니까? 나는 좋은 건축물 안에서이 속성의 가치를 바꾸면 안된다고 생각합니다. 이 속성은 피직스 객체의 유형을 결정하므로 객체의 유형을 변경해야하는 경우 SKPhysicsBody의 새 인스턴스를 만들 수 있습니다. –
아니요,하지만 이것이 내 프로젝트에 편리한 접근이라고 생각했습니다. 몇 가지 물리 필드와 일부 스프라이트가 있으며, 어떤 물리 필드가 스프라이트에 영향을 미치는지 주기적으로 변경하고 싶습니다. 몇 가지 요소가 필드를 변경할 수 있으며 코드의 여러 위치에서 변경 사항에 응답하는 대신 속성 관찰자를 사용하여 'fieldBitMask'를 설정하는 것이 더 쉽다고 생각했습니다. 그런 다음 속성 관찰자에 대한'didSet'의 필드 변경에 응답하면됩니다. 이것이 작동하지 않는 것 같기 때문에 나는 긴 접근법을 취할 필요가있다. – peacetype