所以Swift问题,我知道我不能继承多个类或结构。。。那么我怎样才能迅速完成这项任务呢?5+
class shape {
var mType: String;
}
class box: shape{
var mWidth: Int;
var mHeight: Int;
}
/// RealityKit/arKit base class
class object: box, Entity, HasModel, HasCollision {
var someStuff: String;
}
任何人都可以提出我该如何做到这一点的工作流程/想法吗?我想有一个基类,其中包含某些细节,这些细节将被我的应用程序中的所有内容继承。问题开始于一些对象需要从我自己的基类&swift基类。在这种情况下,我有两个类继承,而这是swift不能做的…想法?
TIA当做Dariusz
您应该使用Components。例如:
struct ShapeComponent: Component {
var mType: String
}
struct BoxComponent: ShapeComponent {
var mWidth: Int
var mHeight: Int
}
目前还不清楚您想对box和shape类做什么,但如果您只想存储数据:
var boxEnt = ModelEntity(mesh: ..., materials: [...])
boxEnt.components[ShapeComponent.self] = ShapeComponent(mType: "box")
boxEnt.components[BoxComponent.self] = BoxComponent(mWidth: 1, mHeight: 1)
或者,如果您想使用以前推荐的RealityKit结构:
protocol HasShape: Entity {}
protocol HasBox: HasShape {}
extension HasShape {
var shape: ShapeComponent? {
get { self.components[ShapeComponent.self] }
set { self.components[ShapeComponent.self] = newValue }
}
}
extension HasBox {
var box: BoxComponent? {
get { self.components[BoxComponent.self] }
set { self.components[BoxComponent.self] = newValue }
}
}
class BoxObject: Entity, HasBox, HasModel, HasCollision {}
RealityKit 中不建议使用类属性