public void RenderComponents(Entity entity) { var prop = ptree.AddOrGet("Transform"); DefaultInspector.mappedPropertyDrawers[typeof(OpenTK.Vector3)].Invoke(prop, "Position", entity.Position, (object val) => { entity.Position = (Vector3)val; }); DefaultInspector.mappedPropertyDrawers[typeof(OpenTK.Vector3)].Invoke(prop, "Rotation", entity.Rotation, (object val) => { entity.Rotation = (Vector3)val; }); DefaultInspector.mappedPropertyDrawers[typeof(OpenTK.Vector3)].Invoke(prop, "Scale", entity.Scale, (object val) => { entity.Scale = (Vector3)val; }); var comps = entity.GetAllComponents(); foreach (var component in comps) { prop = ptree.AddOrGet(component.GetType().Name); var inspector = new DefaultInspector(); inspector.properties = prop; inspector.getTarget = component; inspector.OnInitializeGUI(); } }