public Task Play()
{
liveTask = new TaskCompletionSource<bool>();
Health = MaxHealth;
var node = Node;
// Define physics for handling collisions
var body = node.CreateComponent<RigidBody>();
body.Mass = 1;
body.Kinematic = true;
body.CollisionMask = (uint)CollisionLayer;
CollisionShape shape = node.CreateComponent<CollisionShape>();
shape.SetBox(CollisionShapeSize, Vector3.Zero, Quaternion.Identity);
Init();
node.SubscribeToNodeCollisionStart(OnCollided);
return liveTask.Task;
}