unity c# singleton base class