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.
Diğer gerekli ve önerilen proje ayarları için Azure Uzaktan İşleme Birimi paketine dahil edilen Proje Doğrulayıcı'yı kullanın:
- Unity düzenleyicisi araç çubuğundaki Uzaktan İşleme menüsünden ValidateProject girdisini seçin.
- 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.Initialize
uygun 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 RemoteManagerUnity
kaydedilmesi 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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin