public override void Draw(GameTime gameTime, Camera camera, Matrix parentTransform) // Matrix? parentTransform = null { //Matrix matrix = (parentTransform == null) ? Matrix.Identity : (Matrix)parentTransform; Matrix[] transforms = new Matrix[Model.Bones.Count]; Model.CopyAbsoluteBoneTransformsTo(transforms); foreach (ModelMesh mesh in Model.Meshes) { foreach ( BasicEffect effect in mesh.Effects) { if (Texture != null) { effect.TextureEnabled = true; effect.Texture = Texture; } /*else * { * effect.DiffuseColor = DiffuseColor.ToVector3(); * } //*/ effect.EnableDefaultLighting(); effect.DiffuseColor = DiffuseColor.ToVector3(); effect.World = /*transforms[mesh.ParentBone.Index] */ World * parentTransform; // matrix effect.View = camera.View; effect.Projection = camera.Projection; } mesh.Draw(); } //base.Draw(gameTime, camera, parentTransform); foreach (Transform transform in Children) { transform.Draw(gameTime, camera, World * parentTransform);//matrix); } }