Простой ответ - иметь синглтон.Это делается, когда ваша игра запускается, запускает код, и в основном потому, что он никогда не разрушается, этот стартовый код никогда не запускается снова.
Ваш код почти полностью состоит из этого
public class RunCodeOnce : MonoBehaviour
{
public static RunCodeOnce Instance;
void Awake()
{
if (Instance!=null) { Destroy(gameObject); return; } // stops dups running
DontDestroyOnLoad(gameObject); // keep me forever
Instance = this; // set the reference to it
... code to run only once ...
}
}
thisсоздает объект, который сохраняется, который не имеет значения, что никогда не допустит дублирования самого себя, и потому что он не умрет, независимо от того, сколько вы загружаете новых сцен или что-то еще, если вы физически не уничтожите его сами в коде, он не умрет, он будет тамвся сессия.