Мое первое предположение состоит в том, что вы на самом деле создаете новый экземпляр вашего объекта калькулятора. firstNumber
будет принимать значение по умолчанию ноль в новом экземпляре.
Вы можете проверить, так ли это на самом деле, используя функциональность «make object ID», если используете Visual Studio. В качестве альтернативы вы можете использовать метод, описанный здесь: Как напечатать идентификатор объекта? , чтобы проверить, являются ли они на самом деле одним и тем же экземпляром объекта.
Я не знаком с самим механизмом Unity, но я не удивлюсь, если какой-то код связывания отвечает за создание нового экземпляра.