Проблема, я думаю, что
Scene scene = SceneManager.GetActiveScene();
scene.GetRootGameObjects(rootObjects);
получает объекты со сцены до полной загрузки сцены, поэтому они сбрасываются.
Из Документа
При использовании SceneManager.LoadScene загрузка не происходит немедленно, она завершается в следующем кадре. Это полуасинхронное поведение может вызвать заикание кадра и может привести к путанице, потому что загрузка не завершается немедленно.
blockquote>Полагаю, вам лучше использовать SceneManager.sceneLoaded и делать там такие вещи, как
public void Load() { SceneManager.LoadScene(sceneID); }
И, возможно, в дополнительном компоненте сцены:
void OnEnable() { SceneManager.sceneLoaded += OnSceneLoaded; } void OnSceneLoaded(Scene scene, LoadSceneMode mode) { // your stuff here } void OnDisable() { SceneManager.sceneLoaded -= OnSceneLoaded; }
, хотя мы не знаем / не видим откуда
player
,cube[ncube]
и т. Д. ...для переноса значений между сценами, которые вы должны использовать ScriptableObjects
'%f' % (x/y)
, но необходимо управлять точностью сами. например,
'%f' % (1/10**8)
отобразит нули только.
детали находятся в документах
Или для Python 3 эквивалентное старое форматирование или более новый стиль, форматирующий
В дополнение к ответу SG можно также использовать Десятичный модуль:
from decimal import Decimal
x = str(Decimal(1) / Decimal(10000))
# x is a string '0.0001'