Вы можете добавить промежуточный класс (прокси), который содержит ссылку на фактический класс.
Все ваши ссылки будут на этот новый GameObjectProxy. Это обеспечит тот же API, что и GameObject, и будет просто перенаправлять любые вызовы на него базовому объекту GameObject.
GameObjectProxy также предлагает дополнительные методы - для уничтожения основного GameObject и запроса, если GameObject имеет значение null. (И они могут быть встроены в operator = и operator ==, если вы хотите быть действительно злым)
Помните, что такой подход может снизить производительность, поскольку каждый вызов GameObject должен перенаправляться через прокси-сервер. Это также в некоторой степени зло - это запутает программистов, которые ожидают, что их ссылки будут вести себя «нормально».