Aracılığıyla paylaş


Bulut betiği oluşturma temel kavramları

Mesh Bulut Betiği ve Mesh Görsel Betiği Oluşturma'ya genel bir bakış okuyun

Mesh Bulut Betikleri ile MonoBehaviours arasındaki farklar

Mesh Bulut Betiği ile MonoBehaviours arasında birkaç önemli fark vardır:

  • Bulut Betik Hizmetleri, Mesh Bulut Betik API'sine (Unity API'sinin aksine) karşı yazılır.
  • Bulut Betik Hizmetleri bulutta ayrı bir işlemde çalışır (istemcinin aksine) ve etkileri tüm bağlı istemcilere otomatik olarak eşitlenir.

Mimariye Genel Bakış

Mesh Bulut Betiğini etkinleştirmek için Mesh Bulut Betik Hizmeti adlı bir uygulama hizmeti, sağladığınız belirli bir Azure kaynak grubuna dağıtılır. Bulut Betiği, Azure arka ucunda çalışır ve istemcilerin bağlandiği uç noktaya sahip bir kapsayıcıda çalışan bir dizi sunucu C# betiğinden oluşur. Aşağıdaki diyagramda, Bulut Betik Hizmeti'ne bağlanan iki istemci olduğunu görebilirsiniz. Bulut Betik Hizmeti'nin kendi yetkili sahne grafiği vardır (diyagramda "A" olarak işaretlenmiştir). Bulut Betik Hizmeti, Mesh Bulut Betiği oluşturma sahne grafı API'siyle bu sahne grafiğiyle etkileşim kurar.

Bulut Betik Mimarisinin diyagramı.

Mesh Bulut Betiği sahne grafiği, buluttan tüm bağlı istemcilere otomatik olarak eşitlenir. Her istemci, yetkili bulut sürümüyle eşitlenmiş durumda tutulan Mesh Bulut Betiği sahne grafiğinin aynı kopyasına sahiptir (diyagramda "B" olarak işaretlenmiştir). Mesh Bulut Betik Hizmeti, buluttaki sahne grafiğinde değişiklik yaptığında, bu değişiklikler tüm istemcilerdeki kopyalara yayılır.

Her istemcide Unity Mesh çalışma zamanı, istemcinin Mesh Bulut Betiği sahne grafiği örneğindeki değişikliklere tepki gösterir ve Unity sahnesini durumunu yansıtacak şekilde güncelleştirir. Mesh Bulut Betiği sahne grafı API'si ve Unity sahne grafı API'si farklı olsa da, birbirleriyle yakından eşlenir ve aynı veya benzer bir yapıya sahiptir.

Mesh Bulut Betiği Oluşturma, Oyun Nesneleri ve Mesh Bulut Betiği Sahne Grafı

Sonunda Mesh uygulamasındaki bir Olayda görünen nesneler iki kategoriye ayrılabilir:

  1. Unity'de Ortamınıza eklediğiniz nesneler.

  2. Olayınızı özelleştirdiğiniz nesneler. Bunlar Ortamın bir parçası olmadığından Mesh Bulut Betiği bunların farkında değildir.

Sahne oluşturma

Mesh Bulut Betiğini etkinleştirmek için sahnenizin bir Mesh Bulut Betiği bileşeni olmalıdır.

GameObject'e bağlı Mesh Bulut Betiği oluşturma bileşeninin ekran görüntüsü.

Bileşen, oluşturduğunuz betikleri yönetmek ve bunları Hem düzenleme zamanında hem de Mesh uygulamasında çalışma zamanında Unity sahnesine bağlamakla sorumludur. Mesh Cloud Scripting tek başına bir teknolojidir ancak Unity ile sıkı bir tümleştirmeye sahiptir. Mesh Cloud Scripting GameObject ekleme yönergelerini, Basit bir Bulut Betiği projesi oluşturma adlı makalede ve Programcı Kılavuzu bölümünde betik oluşturma hakkında daha ayrıntılı bilgi bulabilirsiniz.

Mesh Bulut Betiği sahne grafiği, Mesh Bulut Betiği oluşturma bileşenini içeren GameObject'in altındaki görünüme eklediğiniz GameObject'lerle sınırlıdır. Mesh Bulut Betiği, sahnenin geri kalanının sahne hiyerarşisini doğrudan göremeyecek olsa da, Mesh uygulamasının sağladığı API'lere erişebilir; örneğin, sahnedeki Kullanıcıların listesini alabilir veya seçilen nesneye tepki verebilir.

Bileşenler ve Mesh Bulut Betiği Sahne Grafiği

Aşağıdaki diyagramda Unity Sahnesi ve Mesh Bulut Betik Sahnesi hiyerarşilerinin aynı olduğunu unutmayın. Unity Sahnesi bölümündeki mavi düğümler GameObjects'i temsil eder; her GameObject'in Mesh Bulut Betik Sahne Grafiği'nde karşılık gelen bir TransformNode'ları vardır. TransformNode güncelleştirildiğinde Unity Sahnesi'nde karşılık gelen oyun nesnesinin dönüşümünün aynı değere güncelleştirilmesini sağlar.

Unity ve Mesh Sahne Hiyerarşileri

Mesh Bulut Betiği API'sinde Unity Bileşenleri kümesinin yalnızca bir alt kümesine eşleyen türler vardır. Mesh Bulut Betiği API'sinin eşleyebildiği bileşenlerle unity sahnesi oluşturmak hala geçerlidir; Yalnızca Mesh Bulut Betiği'ne görünmezler. Diyagramda, beyaz renkli bir bileşenin Mesh Bulut Betiği sahne grafiğinde karşılık gelen bir düğümü vardır; yeşil renkli bir bileşen bunu yapmaz. Mesh Bulut Betiği sahne grafiğinin parçacık sistemi düğümü yoktur, bu nedenle örneğimizde Unity sahnesindeki parçacık sistemi bileşeni ilgili Mesh Bulut Betiği sahnesinde gösterilmez. Ancak, çevresindeki bileşenleri ve sahip olan oyun nesnesi Mesh Bulut Betiği sahne grafiğinde yer alır. Bu, Parçacık sisteminin Kendisi Bulut Betiği'ne görünmez olsa bile Mesh Cloud Scripting'in sahip olduğu oyun nesnelerini taşıyarak parçacık sistemini sahnenin etrafında taşıyabileceği anlamına gelir.

Mesh Bulut Betiği API'si düğümlerin kopyalanmasına izin verir. Uygulama bir "A" kopyası yaparsa (Unity sahnesindeki "A" düğümüne karşılık gelen GameObjectParent), bu, parçacık sistemi Mesh Bulut Betiği'nin göremediğini içeren GameParentObject'in tüm alt ağacını klonlar.

Mesh Bulut Betiği Yazma

Mesh Bulut Betiği oluşturma hakkında ayrıntılı yönergeler, Basit bir Bulut Betiği Oluşturma projesi ve Programcı Kılavuzu makalelerinde bulunabilir. Burada kısa bir genel bakış sunacağız.

Mesh Cloud Scripting içeren bir sahne içeren tipik bir Unity projesi diskte aşağıdaki gibi görünür (klasörler kalın olarak gösterilir):

  • Unity projesi
    • Varlıklar
      • Sahne
        • MyScene.unity
      • . MeshCloudScripting
        • MyScene
          • MyScene.csproj
          • Program.cs
          • scene.map
          • App.cs

Unity projenizdeki MeshCloudScripting bileşenini içeren her sahnenin " içinde aynı ada sahip bir klasörü vardır. Assets dizininizdeki MeshCloudScripting" klasörü. Mesh Cloud Scripting bileşeni, bu klasörü ve ilk dosya kümesini oluşturur ve bunlar tamamen çalışan ancak boş olan Bulut Betik Hizmeti'ne derlenir. İlk dosyalardan bazıları yukarıda gösterilmiştir. Program.cs aşağıdakilerle ilgilenen ortak kod içerir:

App.cs , uygulama mantığınızı barındıran sınıftır. IHostedService arabirimini uyguladığından iki giriş noktası vardır: StartAsync ve StopAsync. StartAsync bir kez tetiklendiğinde, hizmeti başlatmaya hazır olduğunda IHost tetikler App . Ayrıca, StopAsync düzgün bir kapatma gerçekleştirdiğinde IHost tetiklenir.

Sahne gösterimi

Yukarıdaki listede scene.map dosyasını not edin. Bu bir iç ayrıntıdır, ancak anlamak yararlıdır. Kullanıcı arabiriminde el ile tetiklendiğinde veya Unity sahnesi Düzenleyici'de oynatıldığında, Mesh Bulut Betiği bileşeni ilgili Mesh Bulut Betiği klasörüne bir scene.map dosyası yazar. Bu, sahnenin Mesh Bulut Betik Sahnesi hiyerarşisi olarak temsilidir; Unity türleri Mesh Bulut Betik türlerine dönüştürülür. Mesh Bulut Betik Hizmeti buluta dağıtıldığında, çalıştırmak için özgün Unity sahnesine gerek yoktur. Bunun yerine, ilk sahne hiyerarşisini tanımlayan scene.map dosyasını yükler. Mesh istemcisi Mesh Bulut Betik Hizmeti'ne bağlandığında Mesh Bulut Betiği hiyerarşisini alır ve Unity sahnesini eşleşecek şekilde güncelleştirir. Buna izin vermek için kimlikleri ayrıca Sahne'deki ilgili Unity nesneleriyle eşlemek için kullanılan Mesh Bulut Betiği bağlamalarında depolarız.

Not: Yukarıdakilerin çalışması için scene.map dosyası ve Unity sahnesinin eşleşmesi gerekir. Bir nedenden dolayı dışarı aktarma hatasının sonucu olarak bu algılanır ve Mesh Bulut Betik Hizmeti ve Mesh istemcisi bağlanmaz.

Mesh Bulut Betiği ile Ortamları Yayımlama

Mesh Bulut Betiği ile bir Ortam yayımladığınızda, Ortam ve Mesh Bulut Betik Hizmeti Azure'da yayımlanır. Bu, aşağıdaki diyagramda gösterilmiştir:

Ortam şablonunu ve Bulut Betiği'ni buluta yükleme

Sahnenizde değişiklik yaptığınızda, yeni oluşturulan ve yerel olarak çalıştırılan Mesh Bulut Betik Hizmeti ile sahnenin önizlemesini görüntülemek için Unity'de Oynat'a basmanız gerekir. Ardından Mesh Uploader'ı kullanarak değiştirilmiş ortamı yayımlayın. Yayımlama, ortamınızı derleme ve yayımlama ve Derleme ve yayımlama makaleleri için Bulut Betiği ayrıntıları sağlama makalelerinde daha ayrıntılı olarak açıklanmıştır.

Mesh Bulut Betik Hizmeti'nde Kimlik Doğrulama

Bulut Betik Hizmeti, kullanıcılarının listesini tutabilir. Kullanıcının kimliği doğrulandıktan sonra Bulut Betik Hizmeti, birden çok oturumda kullanıcı için kalıcı bir tanımlayıcıya sahiptir.

Bu durum, Mesh Bulut Betik Hizmeti'ndeki Kimlik Doğrulama akışının sizin tarafınızdan ek bir çaba gerektirmediğini belirttik. Tamamen örtük bir uygulamadır ve taraflar belirteci almak ve otomatik olarak doğrulamak için çalışır.

Kimlik Doğrulama akışında yer alan taraflar şunlardır:

Mesh araç seti: Bulut Betik Hizmetleri'nin buluta dağıtıldığı araç olarak, kimlik doğrulama belirtecini doğrulamak için Bulut Betik Hizmetinizin kullandığı aracı seçebilirsiniz Service Mode . Bu, Mesh Uploader kullanıcı arabirimindeki Ortam Yapılandırması ayarında yapılabilir.

Microsoft Mesh Hizmeti: Belirteç verilmesinden sorumludur. Belirteç olmadan kullanıcılar Bulut Betiği ile etkileşim kuramaz.

Microsoft Mesh: Kullanıcıların Mesh Bulut Betiği ile nasıl etkileşime geçtiğini gösteren giriş noktası. Microsoft Mesh istemcisi, kullanıcı adına Microsoft Mesh Hizmetinden erişim belirteci istemekten sorumludur.

Mesh Bulut Betik Hizmeti: Microsoft Mesh Service'e yönelik bağlantı isteklerinden aldığı belirteci doğrular ve ardından belirteçten kalıcı bir kullanıcı tanımlayıcısı seçer.

Taraflar aşağıda gösterildiği gibi birlikte çalışır:

Kimlik Doğrulama Akışı

Sonraki adımlar