pub trait GameObject: Send + Any {
// Required methods
fn transform(&self) -> Transform;
fn set_isometry(&mut self, position: Vec2, rotation: f32);
fn public_transform(&self) -> Transform;
fn set_parent_transform(&mut self, transform: Transform);
fn appearance(&self) -> &Appearance;
fn id(&self) -> usize;
fn init_to_layer(
&mut self,
id: usize,
parent: &NObject,
rigid_body_parent: RigidBodyParent,
layer: &Layer
) -> NObject;
fn remove_event(&mut self);
fn as_any(&self) -> &dyn Any;
fn collider_handle(&self) -> Option<ColliderHandle>;
fn rigidbody_handle(&self) -> Option<RigidBodyHandle>;
}