I want to create a new stage with some init settings when extension startup:
class Extension(omni.ext.IExt):
def on_startup(self, ext_id):
# new stage
omni.kit.stage_templates.new_stage_with_callback(on_new_stage_fn=on_new_stage, template='sunlight')
def on_new_stage(*args):
stage = omni.usd.get_context().get_stage()
# some init settings
UsdGeom.SetStageUpAxis(stage, UsdGeom.Tokens.z)
stage.SetTimeCodesPerSecond(24)
stage.SetStartTimeCode(0)
stage.SetEndTimeCode(144)
and I start Create with my extension “locapom.fit.fill”:
call "c:/ov/pkg/create-2021.3.6/omni.create.bat" --ext-path "c:/src/locapi/locapom/exts/locapom.fit.fill" --enable locapom.fit.fill
[18.993s] [ext: omni.create.app.setup-0.2.0] startup
[19.069s] [ext: omni.kit.window.stats-0.1.0] startup
[19.192s] [ext: omni.create-2021.3.6-rc.7] startup
[19.193s] [ext: locapom.fit.fill-0.1.2] startup
[19.712s] app started
[20.834s] [ext: omni.kit.builtin.init] startup
[20.834s] [ext: omni.kit.builtin.menu] startup
but I find that my init settings will be overridden by a new blank stage in Create, just like opening Create app directly.
How can I start my extension after Create is fully launched? Or just later than omni.kit.builtin.init/menu?