Aracılığıyla paylaş


Dünya Kilitleme Araçları Bağlamı ve Yöneticisi ayarları

Dünya Kilitleme Araçları Bağlamı, Unity Inspector'daki World Locking Tools Manager'ın parametrik olarak özelleştirilmesini sağlar.

WorldLockingContext bileşeni WorldLockingManager için bir kullanıcı arabirimi sunsa da, bunların aynı şey olmadığını anlamak önemlidir ve bazı durumlarda ilişkilerini anlamak önemli olabilir.

Yönetici bir tekildir

WorldLockingManager, isteğe bağlı olarak oluşturulan ve uygulamanın ömrü boyunca kalıcı olan bir singletondur. WorldLockingManager'a çağrı yapılmazsa, hiçbir zaman örneği oluşturulmayacak. Örnek oluşturulduktan sonra uygulama kapatılana kadar canlı kalır. Asla yok edilmez ve yeniden örneklenmemiştir.

WorldLockingManager bir Unity nesnesi değil , genel bir C# sınıfıdır. Update, özel WorldLockingManager.UpdateProxy sınıfının bir örneği olan bir proxy Unity bileşeni tarafından yönlendirilir. Unity'nin oluşturma/güncelleştirme/yok etme döngülerinden bağımsızdır.

Bağlam bir Unity bileşenidir

WorldLockingContext, sahnedeki bir nesneye her zamanki gibi eklenen bir Unity bileşenidir. Alanlar Unity Denetçisi'nde diğer tüm normal Unity bileşenlerinin alanları gibi görünür.

Tek bir sahnede birden çok etkin WorldLockingContexts olması bir hata olmasa da, nesne yüklemelerinin bilinmeyen sırasına bağlı olarak davranış tanımlanmamış olacağından büyük olasılıkla istenmez.

Bir bağlamdaki ayarlar, WorldLockingContext yüklendiğinde uygulanır. Özel olarak, bağlam ayarlarını OnEnable çağrısında World Locking Tools Manager'a iletir ve sahnesi her etkin sahne olduğunda. İkincisi, unity.SceneManager.activeSceneChanged geri çağırmasının bir parçası olarak uygulanır; ancak yeni etkin sahne bağlamın ait olduğu sahneyse.

Tüm ayarlar betikten uygulanabilir

Uygulama, çalışma zamanının herhangi bir noktasında betik aracılığıyla WorldLockingManager'a özel ayarlar uygulayabilir. Ayarlardaki bir değişikliğin etkili olması için kaynakların herhangi bir şekilde kaldırılması ve yeniden oluşturulması gerekiyorsa, bu yeniden yapılandırma ayarlar değişikliğinde hemen gerçekleşir.

WorldLockingManager'dan tek tek özellik değerlerini almak için bazı kolaylık üyeleri olsa da, örneğin Otomatik Kaydetme, parametrelerin ayarlanması her zaman toplam olarak gerçekleşir. Örneğin, AutoMerge ve AutoRefreeze özelliklerini değiştirme kodu aşağıdaki gibi görünebilir:

/// Get a copy of the current settings
var settings = WorldLockingManager.GetInstance().Settings;
/// Modify the copy
settings.AutoMerge = !settings.AutoMerge;
settings.AutoRefreeze = !settings.AutoRefreeze;
/// Update the current settings to the values in the copy.
WorldLockingManager.GetInstance().Settings = settings;

Aynı şekilde tanılama ayarları için de.

Birden çok ayarı aynı anda bu şekilde değiştirmenin yalnızca tek bir yeniden oluşturmanın maliyetine (gerekirse) neden olduğunu unutmayın.

önceliği Ayarlar

Şu anda WorldLockingManager'a uygulanan ayarların kuralları çok basittir:

  1. Bağlam içeren hiçbir sahne yüklenmemişse ve betikten açıkça ayarlanmamışsa WorldLockingManager varsayılan ayarlara sahiptir.

  2. Bir ayar, bir sahneyle WorldLockingContext yüklemesi veya betikteki uygulamadan çağrılan açık bir değişiklik tarafından geçersiz kılınana kadar değerini korur.

Bağlamlardan ve betiklerden alınan ayarlardan World Locking Tools Manager ayarlarını karıştırırken dikkatli olunmalıdır. Bağlam her zaman yüke ayarlarını uyguladığından, özellikle OnEnable geri çağırmasından yük sırasında ayarı el ile uygulayan bir betik büyük olasılıkla yarış koşullarına ve belirsiz davranışlara neden olur.

Kullanılabilir ayarlar

World Locking Tools davranışını denetlemek için kullanılabilir ayarlar aşağıdaki gibi gruplara ayrılır.

Temel bir dünya kilitleme bağlamı kurulumu

Otomasyon ayarları

Otomasyon ayarları, World Locking Tools Manager'ın çalışma zamanı davranışını denetler. Değişiklik için kullanılabilen alanlar ve bunların etkileri Manager Ayarlar sınıfında belgelenmiştir. Yönetici tarafından otomatik düzenli eylemleri etkinleştirmeye veya devre dışı bırakmaya odaklanmıştır. Bunun yerine devre dışı bırakılan herhangi bir otomatik eylem el ile gerçekleştirilebilir.

Bağlamın otomasyon bölümü

Bağlantı ayarları

Bağlantı ayarları, dönüştürmeleri World Locking Tools'un düzeltmelerini uygulamak için kullanılacak olan sahneyi GameObjects açıkça tanımlamak için kullanılır.

Bağlamın bağlantı bölümü

"Mevcut Olanı Kullan" alanı, bağlantılı nesnelerin kamera donanımıyla ("Mevcut Olanı Kullan" yanlış ile) sahnede bir kez ayarlanmasını ve sonraki içerik sahnelerini yükleyerek geçersiz kılınmasını sağlar ("Mevcut Olanı Kullan" true ile).

Buna karşılık, "Mevcut Olanı Kullan" ayarının false olarak ayarlanması, her birinin farklı bir kamera donanımına sahip birden çok sahnenin kameranın hiyerarşisindeki uygun yerlere bağlanmasına olanak tanır.

Betikten kamera hiyerarşisi oluşturulurken ve yönetildiğinde, "Mevcut Olanı Kullan" alanı tüm Bağlamlarda true olarak ayarlanmalıdır ve betikleri yöneten kameradan gelen bağlantılar açıkça güncelleştirilmelidir.

Gerekli dönüştürmeler sağlanmadığında, sol null değer veya tüm Bağlamlarda "Mevcut Olanı Kullan" ifadesi bulunur, ardından sistem bir uyarı döndürür ve iyi seçimler çıkarmaya çalışır. Sistem tahmini yerine uygun dönüşümlerin açıkça ayarlanması önerilir ancak gerekli değildir.

Burada kamera dönüştürme düzeltmesinin nasıl uygulanacağını denetleyecek iki ek seçenek vardır.

"Ayarlamayı Uygula" için ilk onay kutusu varsayılan olarak etkindir. Bu, sisteme her karenin hesaplanan kamera düzeltmesini "Ayarlama Çerçevesi" GameObjectöğesine uygulamasını söyler. Bunu devre dışı bırakmak çok gelişmiş bir özelliktir ve yalnızca diğer tüm sorunlar çözüldükten ve Dünya Kilitleme Araçları hakkında ayrıntılı bir anlayış elde edildikten sonra denenmelidir. Kısacası, sisteme kamera düzeltmesinin kameraya uygulanmayacağını, ancak başka yollarla uygulanacağını söyler. Genellikle, bu bir AlignSubtree bileşen üzerinden yapılır, ancak olması gerekmez.

"Ses Perdesi Ve Rulo Yok" için ikinci onay kutusu, sisteme dönüştürmede Playspace hesaplanan herhangi bir perdeyi sıfırlayıp Kilitli Alan'a dönüştürmesini söyler. (WLT koordinat alanlarıyla ilgili bu tartışmaya bakın). Bunun sistem tarafından SpacePin uygulanan döndürme üzerinde hiçbir etkisi yoktur, ancak yalnızca Frozen World Engine tarafından hesaplanan dünyayı kilitleyen kamera düzeltme dönüşümünü etkiler.

Yer Işareti Yönetimi ayarları

Yer Işareti Yönetimi, yer işareti izleme sisteminin tüm açık seçimini ayarlar. Bu seçim şu anda yalnızca başlangıçta yapılır ve bir kez seçildikten sonra değiştirilemez.

Buradaki diğer ayarlar, temel alınan iç yer işareti grafiğinin yoğunluğu üzerinde denetime olanak sağlar. Bunlar herhangi bir zamanda değiştirilebilir, ancak etkilerinin iç grafta yayılması biraz zaman alabilir.

Çok büyük alanları kaplarken, performans doğruluğundan ödün vermek için iç tutturucu grafiğin yoğunluğunun düşürülmesini isteyebilirsiniz. MinNewAnchorDistance'ı artırmak bunu yapar. Yeni bir iç tutturucu eklemeden önce gereken en düşük mesafeyi artırarak, tutturucular arasındaki aralık artar ve böylece tutturucuların yoğunluğu azalır.

Uç oluşturma testini geçmek için MaxAnchorEdgeLength değerinin MinNewAnchorDistance değerinden daha büyük olması gerektiği belirtilmelidir. Uygulamada MaxAnchorEdgeLength %10-20 daha büyükse MinNewAnchorDistance iyi çalışır.

MaxLocalAnchors parametresi, yoğunluğu değiştirmek yerine iç sabit noktalarının sayısını doğrudan sınırlar. Şu anda, bağlantı sayısı sınırı aştığında, kameradan en uzak yer işaretleri geri dönüştürülerek sayıyı düşürebilir. Ancak, diğer algoritmalar ilginçtir ve araştırılır, bu nedenle bir uygulama bu belirli uygulamaya bağımlı olmamalıdır.

Bağlamın yer işareti yönetimi bölümü

Anchor Ayarlar yapısı içinde daha fazla ayrıntı belgeleniyor.

Tanılama ayarları

Tanılama ayarları, davranış analizi ve hata ayıklama için tanılama toplamayı denetler. Bunlar normalde tanılama koleksiyonunu devre dışı bırakan "Varsayılanları Kullan" kümesiyle bırakılmalıdır. Tanılama koleksiyonu harika bir performans sürüklenmesidir, bu nedenle gerekmedikçe kaçınılmalıdır.

Bağlamın tanılama bölümü

Geliştirme sırasında beklenmeyen ve istenmeyen davranışlar görüldüğünde, Varsayılanları Kullan'ı devre dışı bırakarak ve Tanılamayı etkinleştirerek toplanan tanılama verileri Ayarlar. Etkinleştirildiğinde, bu davranışın anlaşılması ve düzeltilmesinde etkili olabilecek verilerin toplanması etkinleştirilir.

Değişiklik için kullanılabilir alanlar Tanılama Ayarlar sınıfında açıklanmıştır.

Varsayılan ayarlar

Hem yönetici hem de tanılama ayarlarının her birinde ayarlarda "Varsayılanları Kullan" onay kutusu bulunur. "Varsayılanları Kullan" özelliği betikten de kullanılabilir.

"Varsayılanları Kullan" özelliği true olduğunda, geçerli varsayılan ayarlar kullanılır. Yeni bir sürümde özellik için varsayılan değerler değişirse, "Varsayılanları Kullan" özelliği sisteme yeni özellik değerini kullanma talimatı verir.

"Varsayılanları Kullan" özelliğinin herhangi bir zamanda true olarak ayarlanması, tüm değerleri geçerli varsayılan değerlerine sıfırlar. Değerleri belirli bir anda varsayılan değerlerin anlık görüntüsünde kilitlemek için, "Varsayılanları Kullan" özelliğini etkinleştirerek tüm alanları geçerli varsayılanlara sıfırlayın, ardından bir güncelleştirmeyle değiştirilmesini önlemek için onay kutusunu açın.

Deneme ve hata ayıklama geliştirmesi dışında "Varsayılanları Kullan" ayarının true olarak bırakılması önerilir.

Ayrıca bkz.