public virtual void Pick <T>(string playerId, Action <T> predicate = null) where T : Race { Race.CreatePrimitive <T> (p => { p.tag = playerId; p.name = playerId; p.DefaultValue(); if (predicate != null) { predicate.Invoke(p); } }); }