Aracılığıyla paylaş


Unity için Remote Rendering’i ayarlama

Unity'de Azure Uzaktan İşleme'yi (ARR) etkinleştirmek için bazı proje yapılandırması gerekebilir. Unity'ye özgü bazı yönleriyle ilgilenen özel yöntemler de sağlıyoruz.

Proje yapılandırması

OpenXR kullanırken, Unity OpenXR ayarlarında Azure Uzaktan İşleme özelliğinin etkinleştirilmesi gerekir.

Screenshot of the Unity Project Settings dialog. The Open XR subentry is selected in the list on the left. The Azure Remote Rendering Open XR feature is highlighted with a checked checkbox.

Diğer gerekli ve önerilen proje ayarları için Azure Uzaktan İşleme Birimi paketine dahil edilen Proje Doğrulayıcı'yı kullanın:

  1. Unity düzenleyicisi araç çubuğundaki Uzaktan İşleme menüsünden ValidateProject girdisini seçin.
  2. Hatalar için Proje Doğrulayıcı penceresini gözden geçirin ve gerektiğinde proje ayarlarını düzeltin.

Başlatma ve kapatma

Uzaktan İşleme'yi başlatmak için kullanın RemoteManagerUnity. Bu sınıf genel RenderingConnection olarak çağrılır ancak unity'ye özgü ayrıntıları sizin için zaten uygular. Örneğin Unity belirli bir koordinat sistemini kullanır. çağrılırken RemoteManagerUnity.Initializeuygun kural ayarlanır. Arama, uzaktan işlenen içeriği görüntülemek için kullanılması gereken Unity kamerasını sağlamanızı da gerektirir.

// initialize Azure Remote Rendering for use in Unity:
// it needs to know which camera is used for rendering the scene
RemoteUnityClientInit clientInit = new RemoteUnityClientInit(Camera.main);
RemoteManagerUnity.InitializeManager(clientInit);

Uzaktan İşleme'yi kapatmak için çağrısında bulunur RemoteManagerStatic.ShutdownRemoteRendering().

Birincil RenderingSession işleme oturumu olarak bir oluşturulduktan ve seçildikten sonra ile RemoteManagerUnitykaydedilmesi gerekir:

RemoteManagerUnity.CurrentSession = ...

Tam örnek kod

Bu kod örneği, Unity'de Azure Uzaktan İşleme'yi başlatmak için gereken tüm adımları gösterir:

// initialize Remote Rendering
RemoteUnityClientInit clientInit = new RemoteUnityClientInit(Camera.main);
RemoteManagerUnity.InitializeManager(clientInit);

// create a frontend
SessionConfiguration sessionConfig = new SessionConfiguration();
// ... fill out sessionConfig ...
RemoteRenderingClient client = new RemoteRenderingClient(sessionConfig);

// start a session
CreateRenderingSessionResult result = await client.CreateNewRenderingSessionAsync(new RenderingSessionCreationOptions(RenderingSessionVmSize.Standard, 0, 30));
RenderingSession session = result.Session;

// let RemoteManagerUnity know about the session we want to use
RemoteManagerUnity.CurrentSession = session;

await session.ConnectAsync(new RendererInitOptions());

/// When connected, load and modify content

RemoteManagerStatic.ShutdownRemoteRendering();

Convenience işlevleri

Oturum durumu olayları

RemoteManagerUnity.OnSessionUpdate oturum durumu değiştiğinde için olayları yayar, ayrıntılar için kod belgelerine bakın.

ARRServiceUnity

ARRServiceUnity kurulum ve oturum yönetimini kolaylaştırmak için isteğe bağlı bir bileşendir. Uygulamadan çıkılırken veya düzenleyicide yürütme modundan çıkıldığında oturumunu otomatik olarak durdurma seçenekleri içerir. Gerektiğinde oturum kirasını otomatik olarak yeniler. Oturum özellikleri gibi verileri önbelleğe alır (değişkenine LastProperties bakın) ve oturum durumu değişiklikleri ve oturum hataları için olayları kullanıma sunar.

Aynı anda birden fazla örneği ARRServiceUnity olamaz. Bu, bazı yaygın işlevleri uygulayarak daha hızlı çalışmaya başlamanıza yöneliktir. Daha büyük bir uygulama için bunları kendiniz yapmak tercih edilebilir.

Nasıl ayarlanacağı ve kullanılacağına ARRServiceUnity ilişkin bir örnek için bkz . Öğretici: Uzaktan işlenen modelleri görüntüleme.

Sonraki adımlar