/// <summary>
        /// Constructor
        /// </summary>
        /// <param name="parent">GameObect that owns the component</param>
        public FlyingBugControllerComponent(AnimationSetRenderComponent animSetComponent, PhysicsComponent physicsComponent, float movementImpulse, GameObject parent)
            : base(parent)
        {
            MovementImpulse = movementImpulse;
            AnimationSetRenderComponent = animSetComponent;
            PhysicsComponent = physicsComponent;

            Debug.Assert(AnimationSetRenderComponent != null);
            Debug.Assert(PhysicsComponent != null);
            AnimationSetRenderComponent.SetAnimation("Flying");
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="parent">GameObect that owns the component</param>
        public CharacterControllerComponent(AnimationSetRenderComponent animSetComponent, 
            PhysicsComponent physicsComponent,
            Camera camera, // for camera shake, needs to be moved if there are other "Characters" than the player.
            GameObject parent)
            : base(parent)
        {
            AnimationSetRenderComponent = animSetComponent;
            PhysicsComponent = physicsComponent;

            Camera = camera;

            FeetColliders = new List<GameObject>();

            Debug.Assert(AnimationSetRenderComponent != null);
            Debug.Assert(PhysicsComponent != null);
        }