장면 시스템 콘텐츠 로드 중


편집기 동작

장면 시스템의 service inspector 를 사용 하 여 편집기와 재생 모드에서 이러한 모든 작업을 수행할 수 있습니다. 편집 모드에서 장면 로드는 즉시 수행 되지만 재생 모드에서는 로드 진행 상태를 관찰 하 고 활성화 토큰 을 사용할 수 있습니다.

콘텐츠 로드가 강조 표시 된 검사기의 장면 시스템

모든 콘텐츠 로드 작업은 비동기적으로 수행 되며 기본적으로 모든 콘텐츠 로드는 누적 됩니다. 관리자 및 조명 장면을 콘텐츠 로드 작업의 영향을 받지 않습니다. 로드 진행률 및 장면 활성화 모니터링에 대 한 자세한 내용은 콘텐츠 로드 모니터링을 참조 하세요.

콘텐츠 로드 중

콘텐츠 장면을 로드 하려면 메서드를 사용 합니다 LoadContent .

IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();

// Additively load a single content scene
await sceneSystem.LoadContent("MyContentScene");

// Additively load a set of content scenes
await sceneSystem.LoadContent(new string[] { "MyContentScene1", "MyContentScene2", "MyContentScene3" });

단일 장면 로드

단일 장면 로드에 해당 하는 것은 선택적 인수를 통해 구현할 수 있습니다 mode . LoadSceneMode.Single 는 로드를 계속 하기 전에 로드 된 모든 콘텐츠 장면을 먼저 언로드합니다.

IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();

// ContentScene1, ContentScene2 and ContentScene3 will be loaded additively
await sceneSystem.LoadContent("ContentScene1");
await sceneSystem.LoadContent("ContentScene2");
await sceneSystem.LoadContent("ContentScene3");

// ContentScene1, ContentScene2 and ContentScene3 will be unloaded
// SingleContentScene will be loaded additively
await sceneSystem.LoadContent("SingleContentScene", LoadSceneMode.Single);

다음/이전 장면 로드

콘텐츠는 빌드 인덱스의 순서로 단일 로드 될 수 있습니다. 이는 일련의 데모 장면을 하나씩 통해 사용자를 가져오는 응용 프로그램을 소개 하는 데 유용 합니다.

플레이어 설정에서 빌드의 현재 장면

다음/이전 콘텐츠 로드는 기본적으로 LoadSceneMode를 사용 하 여 이전 콘텐츠가 언로드되는 지 확인 합니다.

IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();

if (nextSceneRequested && sceneSystem.NextContentExists)
{
    await sceneSystem.LoadNextContent();
}

if (prevSceneRequested && sceneSystem.PrevContentExists)
{
    await sceneSystem.LoadPrevContent();
}

PrevContentExists 는 현재 로드 된 가장 낮은 빌드 인덱스 보다 더 낮은 빌드 인덱스를 가진 콘텐츠 장면이 하나 이상 있는 경우 true를 반환 합니다. NextContentExists 는 현재 로드 된 가장 높은 빌드 인덱스 보다 더 높은 빌드 인덱스가 있는 콘텐츠 장면이 하나 이상 있는 경우 true를 반환 합니다.

wrap인수가 true 이면 내용이 첫 번째/마지막 빌드 인덱스로 다시 반복 됩니다. 이렇게 하면 다음/이전 콘텐츠를 확인할 필요가 없습니다.

IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();

if (nextSceneRequested)
{
    await sceneSystem.LoadNextContent(true);
}

if (prevSceneRequested)
{
    await sceneSystem.LoadPrevContent(true);
}

태그로 로드

태그로 콘텐츠 장면 로드

종종 그룹에서 콘텐츠 장면을 로드 하는 것이 좋습니다. 예를 들어, 환경의 단계는 여러 장면으로 구성 될 수 있으며,이는 모두 동시에 로드 되어야 작동 합니다. 이를 용이 하 게 하려면 해당 태그를 사용 하 여 내부적으로 태그를 지정한 다음 로드 하거나 언로드할 수 있습니다.

IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();

await LoadContentByTag("Stage1");

// Wait until stage 1 is complete

await UnloadContentByTag("Stage1");
await LoadContentByTag("Stage2);

태그를 사용 하 여 로드 하는 것은 음악가가 스크립트를 수정 하지 않고도 환경에서 요소를 통합/제거 하려는 경우에도 유용할 수 있습니다. 예를 들어 다음 두 개의 태그 집합을 사용 하 여이 스크립트를 실행 하면 다른 결과가 생성 됩니다.

IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();

await LoadContentByTag("Terrain");
await LoadContentByTag("Structures");
await LoadContentByTag("Vegetation");

콘텐츠 테스트

장면 이름 장면 태그 스크립트에 의해 로드 됨
DebugTerrainPhysics 지형
StructureTesting 구조체
VegetationTools Vegetation
Mountain 지형
Cabin 구조체
Trees Vegetation

최종 콘텐츠

장면 이름 장면 태그 스크립트에 의해 로드 됨
DebugTerrainPhysics DoNotInclude
StructureTesting DoNotInclude
VegetationTools DoNotInclude
Mountain 지형
Cabin 구조체
Trees Vegetation