Aracılığıyla paylaş


Uzamsal koordinat sistemlerini kalıcı hale

Genel olarak, World Locking Tools'un kalıcılık özelliklerinin avantajları, uygulamalarının ayrıntılarından daha fazla ilgi çekicidir.

Bu nedenle bu makale, World Locking Tools kalıcılığının sağladığı deneyimlerin bir tartışmasıyla başlayacaktır. Bundan sonra, World Locking Tools State kalıcılığının nasıl yönetilebileceğini inceleyeceğiz. Ardından, kaydedilen ve yüklenen verilerin kısa bir taslağıyla kapatacağız.

Oturumlar arasında Dünya Kilitleme Araçları

Başka bir yerde tanımlandığı gibi, Dondurulmuş Durum geçerli dünya kilitli kararlı alanı sürdürmek için gereken tüm verilerdir.

World Locking Tools'un kalıcılığının birincil yardımcı programı, bir ön oturumun çalışmasının avantajlarını sağlamak, bir alanı taramak ve sanal alanı gerçek dünyaya hizalamak ve sonraki oturumlarda kullanmaktır.

Bu durumun geri yüklenmesi, sonraki oturumların yorucu veya zaman alan bir kurulumdan kurtulmasını ve doğrudan odak deneyimine başlamasını sağlar.

Dünya Kilitleme Araçları Durumunu Kaydetme

Yüklenebilmesi için donduruldu Durumunun kaydedilmesi gerekir.

Dondurulmuş Durumu kaydetmenin en basit yolu, World Locking Tools Context'daki Unity denetçisinde veya betik aracılığıyla çalışma zamanında World Locking Tools Manager'da Otomatik Kaydetme'yi etkinleştirmektir.

Betik aracılığıyla World Locking Tools Manager durumunu ayarlama işlemi, önce durumu alarak, istenen şekilde değiştirerek ve ardından durumu bir blok olarak geri ayarlayarak gerçekleştirilir. Örneğin, Otomatik Kaydetme özelliğini değiştirmek için:

var settings = WorldLockingManger.GetInstance().Settings;
settings.AutoSave = !settings.AutoSave;
WorldLockingManager.GetInstance().Settings = settings;

Otomatik Kaydetme özelliği bir oturum sırasında etkin durumdan devre dışı bırakılırsa, başka düzenli kaydetme girişimi yapılmaz. Devre dışı durumdan etkine geçerse, düzenli kaydetmeler başlatılır veya sürdürülür.

Otomatik Kaydet özelliği, geçerli durumu zaman uyumsuz olarak düzenli aralıklarla kaydederek güncel bir kaydedilmiş durumu tutar.

Durum kaydetme zamanlaması üzerinde daha fazla denetim gerekiyorsa, Otomatik Kaydetme false olarak ayarlanabilir ve el ile kaydetme betik aracılığıyla yapılabilir. Zaman uyumsuz kaydetme şu şekilde kolayca tetiklenmiş olabilir:

WorldLockingManager.GetInstance().Save();

Kaydetme zaman uyumsuz olduğundan, önceki bir kaydetme işlemi devam ederken diğer çağırma Save() girişimleri yoksayılır.

Donmuş Durum Yükleniyor

Donmuş Durumdan tasarruf ederek, World Locking Tools'un sonraki bir oturumda veya daha sonra aynı oturumda bu duruma yeniden yüklenmesi tercih edilebilir.

Donmuş Durumu kaydederken bulduğumuz gibi, yükleme durumu için iki yol vardır.

World Locking Tools Manager'daki Otomatik Yükle bayrağı etkinse, önceki kaydedilmiş tüm durum başlangıç zamanında yüklenir. Yüklenecek kayıtlı bir durum yoksa, hata oluşturulmaz ve başlatma bayrağı ayarlanmadı gibi devam eder.

Çalışma zamanında Otomatik Yükle bayrağını false'tan true'ya (örneğin, betik aracılığıyla) ayarlamanın hiçbir etkisi olmaz. Otomatik Yükleme ilk yükte gerçekleşir veya hiç gerçekleşmez.

Ancak, World Locking Tools Manager'ın Load işlevi aracılığıyla betikten herhangi bir zamanda bir yük başlatılabilir:

WorldLockingManager.GetInstance().Load();

Kaydet'de olduğu gibi, Yükleme zaman uyumsuz olarak gerçekleştirilir. Biri hala devam ederken Yükle'ye yapılan sonraki çağrılar yoksayılır.

Ne kaydedilir?

Dünya Kilitleme Araçları eşlemesini yeniden yapılandırmak için gereken veriler (sanal dünyanın gerçek dünyaya hizalanması) dört gruba ayrılabilir.

  • Spatial Anchors: World Locking Tools'un Anchor Manager'ı tarafından dahili olarak oluşturulan ve bakımı yapılan uzamsal tutturucuların temel ağı, gerekli bağlamayı gerçek dünyaya sağlar. Bu tutturucular, platformun temel depolama mekanizması aracılığıyla kalıcı hale getirir.

  • Altyapı Durumu: Altyapının geçerli eşlemesini sürdürmesine izin vermek için altyapı durumu kalıcıdır. Bu durumun geri yüklenmesi, önceki oturumlarda başın ilk pozu olarak bu tür belirsizlikleri kaldırır.

  • Alan Sabitleme: Uygulama, modelleme koordinatlarının ayrık bir nokta kümesinde gerçek dünyaya hizalanması için başka Boşluk Pinleri uyguladıysa, bu eşleme de kalıcı olur.

  • Koordinat Alanı: Dünya Kilitleme Araçları, yerel uzamsal tutturucuların iç grafını kaydederek fiziksel dünyaya göre koordinat alanını kalıcı hale döndürür.

Ne kaydedilmez?

Ayarlar kaydedilmez ve World Locking Tools tek tek uygulama nesnelerini kaydetmez veya geri yüklemez. Yalnızca durum kaydedilir. Uygulama tarafından yapılan tüm yapılandırma değişiklikleri (örneğin, WorldLockingManager API'sinde yapılan değişiklikler) uygulama her başlatıldığında Unity Denetçisi'nde ayarlandığı gibi değerlerine sıfırlanır. Veya Denetçi'de ayarlanmamışsa koddaki varsayılan değerlerine ayarlanırlar.

Örneğin, uygulamanın kullanıcıya Otomatik Kaydetme Dünya Kilitleme durumu seçeneği sunmak istediğini ve kullanıcının tercihinin değişene kadar oturumlarda kalıcı olmasını istediğini varsayalım. Daha sonra uygulamanın aşağıdakileri yapması gerekir:

  1. Kullanıcıya Otomatik Kaydetme tercihini ayarlamak için UX sunun (büyük olasılıkla diğer uygulama ayarlarıyla).
  2. Kullanıcının tercihini WorldLockingManager'a iletin.
  3. Dosya tercihini kaydedin (büyük olasılıkla diğer uygulama ayarlarıyla).
  4. Uygulama başlatıldığında, kaydedilmiş tercihi (kaydedilmişse) yükleyin ve WorldLockingManager'a iletin.

Varlıklar ve betik arasında durum ayarı karıştırılırken karşılaşılan zamanlama sorunlarıyla ilgili Olarak WorldLockingContext'teki notlara bakın.

Ayrıca bkz.