Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
MRTK giriş sistemine basitleştirilmiş bir merkezi giriş noktası. Durum yönetimi yöntemlerini, olay yönetimini ve Çekirdek Etkileşim Durumları için durum ayarı mantığını içerir.
Interactive Element, Unity 2019.3'te desteklenen deneysel bir özelliktir ve Unity 2019.3: Serileştirme Başvurusu'nda yeni bir özellik kullanır.
Etkileşimli Öğe Denetçisi
Yürütme modu sırasında Etkileşimli Öğe denetçisi, geçerli durumun etkin olup olmadığını gösteren görsel geri bildirim sağlar. Bir durum etkinse, mavi renkle vurgulanır. Durum etkin değilse, renk değiştirilmez. Denetçideki durumların yanındaki sayılar durum değerleridir; durum etkinse değer 1'dir, durum etkin değilse değer 0'dır.
Çekirdek Durumlar
Etkileşimli Öğe temel durumları içerir ve özel durumların eklenmesini destekler. Çekirdek durum, içinde zaten durum ayarı mantığı tanımlanmış BaseInteractiveElement
olan durumdur. Giriş temelli çekirdek durumlarının listesi aşağıdadır:
Geçerli Çekirdek Durumlar
Yakın ve Uzak Etkileşim Çekirdek Durumları:
Yakın Etkileşim Çekirdek Durumları:
Uzak Etkileşim Çekirdek Durumları:
Diğer Çekirdek Durumlar:
Denetçi aracılığıyla Çekirdek Durum Ekleme
Etkileşimli Öğe denetçisinde Çekirdek Durum Ekle'ye gidin.
Eklenecek temel durumu seçmek için Durum Seç düğmesini seçin. Menüdeki durumlar etkileşim türüne göre sıralanır.
Durumla ilişkili olayları ve özellikleri görüntülemek için Olay Yapılandırması katlama'sını açın.
Betik Aracılığıyla Çekirdek Durum Ekleme
AddNewState(stateName)
Çekirdek durumu eklemek için yöntemini kullanın. Kullanılabilir çekirdek durum adlarının listesi için sabit listesini kullanın CoreInteractionState
.
// Add by name or add by CoreInteractionState enum to string
interactiveElement.AddNewState("SelectFar");
interactiveElement.AddNewState(CoreInteractionState.SelectFar.ToString());
Durumlar İç Yapısı
Interactive Element'teki durumlar türündedir InteractionState
. aşağıdaki InteractionState
özellikleri içerir:
- Ad: Durumun adı.
- Değer: Durum değeri. Durum açıksa, durum değeri 1 olur. Durum kapalıysa, durum değeri 0 olur.
- Etkin: Durumun şu anda etkin olup olmadığı. Durum açıkken Active özelliğinin değeri true, durum kapalıysa false değeridir.
-
Etkileşim Türü: Bir durumun Etkileşim Türü, bir durumun amaçlandığı etkileşim türüdür.
-
None
: Herhangi bir giriş etkileşimi biçimini desteklemez. -
Near
: Etkileşim desteğine yakın. Bir el başka bir oyun nesnesiyle doğrudan temas ettiğinde, yani ifade edilen elin dünya uzayında oyun nesnesinin konumuna yakın olduğu durumlarda giriş etkileşime yakın olarak kabul edilir. -
Far
: Uzak etkileşim desteği. Giriş, oyun nesnesiyle doğrudan temas gerekli olmadığında uzak etkileşim olarak kabul edilir. Örneğin, denetleyici rayı veya bakış yoluyla giriş, uzak etkileşim girişi olarak kabul edilir. -
NearAndFar
: Hem yakın hem de uzak etkileşim desteğini kapsar. -
Other
: İşaretçiden bağımsız etkileşim desteği.
-
- Olay Yapılandırması: Durum için olay yapılandırması, serileştirilmiş olaylar profili giriş noktasıdır.
Bu özelliklerin tümü, Etkileşimli Öğe'de State Manager
bulunan içinde dahili olarak ayarlanır. Durumların değiştirilmesi için aşağıdaki yardımcı yöntemleri kullanın:
Durum Ayarı Yardımcı Yöntemleri
// Get the InteractionState
interactiveElement.GetState("StateName");
// Set a state value to 1/on
interactiveElement.SetStateOn("StateName");
// Set a state value to 0/off
interactiveElement.SetStateOff("StateName");
// Check if a state is present in the state list
interactiveElement.IsStatePresent("StateName");
// Check whether or not a state is active
interactiveElement.IsStateActive("StateName");
// Add a new state to the state list
interactiveElement.AddNewState("StateName");
// Remove a state from the state list
interactiveElement.RemoveState("StateName");
Bir durumun olay yapılandırmasını almak duruma özgüdür. Her çekirdek durumu, her çekirdek durumu açıklayan bölümlerin altında özetlenen belirli bir olay yapılandırma türüne sahiptir.
Bir durumun olay yapılandırmasını almanın genelleştirilmiş bir örneği aşağıda verilmiştir:
// T varies depending on the core state - the specific T's are specified under each of the core state sections
T stateNameEvents = interactiveElement.GetStateEvents<T>("StateName");
Varsayılan Durum
Varsayılan durum her zaman Etkileşimli Öğede bulunur. Bu durum yalnızca diğer tüm durumlar etkin olmadığında etkin olur. Başka bir durum etkin hale gelirse, Varsayılan durum dahili olarak kapalı olarak ayarlanır.
Durum listesinde Varsayılan ve Odak durumları mevcut olan Etkileşimli Öğe başlatılır. Varsayılan durumun her zaman durum listesinde mevcut olması gerekir.
Varsayılan Durum Olaylarını Alma
Varsayılan Durum için olay yapılandırma türü: StateEvents
StateEvents defaultEvents = interactiveElement.GetStateEvents<StateEvents>("Default");
defaultEvents.OnStateOn.AddListener(() =>
{
Debug.Log($"{gameObject.name} Default State On");
});
defaultEvents.OnStateOff.AddListener(() =>
{
Debug.Log($"{gameObject.name} Default State Off");
});
Odak Durumu
Odak durumu, üzerine gelinmeye eşdeğer karma gerçeklik olarak düşünülebilecek yakın ve uzak bir etkileşim durumudur. Odak durumu için yakın ve uzak etkileşim arasındaki ayırt edici faktör geçerli etkin işaretçi türüdür. Odak durumunun işaretçi türü Dürtme İşaretçisi ise etkileşime yakın kabul edilir. Birincil işaretçi Dürtme İşaretçisi değilse, etkileşim uzak etkileşim olarak kabul edilir. Odak durumu varsayılan olarak Etkileşimli Öğe'de bulunur.
Odak Durumu Davranışı
Odak Durumu Olaylarını Alma
Odak Durumu için olay yapılandırma türü: FocusEvents
FocusEvents focusEvents = interactiveElement.GetStateEvents<FocusEvents>("Focus");
focusEvents.OnFocusOn.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Focus On");
});
focusEvents.OnFocusOff.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Focus Off");
});
Odak Yakın ve Odak Uzak Davranışı
Duruma Yakın Odak
Odak Yakın durumu, bir odak olayı tetiklendiğinde ayarlanır ve birincil işaretçi, yakın etkileşimin göstergesi olan Poke işaretçisidir.
Duruma Yakın Odak Davranışı
Durum Denetçisine Yakın
FocusNear Durum Olaylarını Alma
FocusNear Durumu için olay yapılandırma türü: FocusEvents
FocusEvents focusNearEvents = interactiveElement.GetStateEvents<FocusEvents>("FocusNear");
focusNearEvents.OnFocusOn.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Near Interaction Focus On");
});
focusNearEvents.OnFocusOff.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Near Interaction Focus Off");
});
Odak Uzak Durumu
Birincil işaretçi Dürt işaretçisi olmadığında Odak Uzak durumu ayarlanır. Örneğin, varsayılan denetleyici ışın işaretçisi ve GGV (Bakış, Hareket, Ses) işaretçisi uzak etkileşim işaretçileri olarak kabul edilir.
Odak Uzak Durum Davranışı
Focus Far State Inspector
Uzak Durum Olaylarına Odaklanma
FocusFar Durumu için olay yapılandırma türü: FocusEvents
FocusEvents focusFarEvents = interactiveElement.GetStateEvents<FocusEvents>("FocusFar");
focusFarEvents.OnFocusOn.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Far Interaction Focus On");
});
focusFarEvents.OnFocusOff.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Far Interaction Focus Off");
});
Dokunma Durumu
Dokunma durumu, ifade edilmiş bir el nesneye doğrudan dokunduğunda ayarlanan yakın bir etkileşim durumudur. Doğrudan dokunma, ifade edilen elin işaret parmağının nesnenin dünya konumuna çok yakın olduğu anlamına gelir. Varsayılan olarak, Dokunma durumu durum listesine eklenirse nesneye bir NearInteractionTouchableVolume
bileşen eklenir. Bir veya NearInteractionTouchable
bileşeninin NearInteractionTouchableVolume
varlığı, Dokunma olaylarını algılamak için gereklidir. ile NearInteractionTouchable
arasındaki NearInteractionTouchableVolume
fark, NearInteractionTouchableVolume
nesnenin çarpıştırıcısını temel alan bir dokunmayı algılaması ve NearInteractionTouchable
bir düzlemin tanımlı bir alanı içindeki dokunmayı algılamasıdır.
Dokunma Durumu Davranışı
Dokunmatik Durum Denetçisi
Dokunma Durumu Olaylarını Alma
Dokunma Durumu için olay yapılandırma türü: TouchEvents
TouchEvents touchEvents = interactiveElement.GetStateEvents<TouchEvents>("Touch");
touchEvents.OnTouchStarted.AddListener((touchData) =>
{
Debug.Log($"{gameObject.name} Touch Started");
});
touchEvents.OnTouchCompleted.AddListener((touchData) =>
{
Debug.Log($"{gameObject.name} Touch Completed");
});
touchEvents.OnTouchUpdated.AddListener((touchData) =>
{
Debug.Log($"{gameObject.name} Touch Updated");
});
Uzak Eyalet'i seçin
Uzak Seç durumu IMixedRealityPointerHandler
görüntülenir. Bu durum, uzak etkileşim tıklamasını (havadan dokunma) algılayan ve varsayılan denetleyici ışın işaretçisi veya GGV işaretçisi gibi uzak etkileşim işaretçilerinin kullanımı boyunca tutan uzak etkileşim durumudur. Uzak Seç durumunda, olay yapılandırmasının katlandığında adlı Global
bir seçeneği vardır. true Global
ise, IMixedRealityPointerHandler
genel giriş işleyicisi olarak kaydedilir. İşleyici genel olarak kaydedildiyse giriş sistemi olaylarını tetikleme amacıyla bir nesneye odaklanmak gerekmez. Örneğin, bir kullanıcı odaktaki nesneden bağımsız olarak hava dokunma/seçme hareketinin ne zaman gerçekleştirildiğini öğrenmek isterse true olarak ayarlayın Global
.
Uzak Durum Davranışı
Uzak Durum
Uzak Durum Olaylarını Seçme
SelectFar Durumu için olay yapılandırma türü: SelectFarEvents
SelectFarEvents selectFarEvents = interactiveElement.GetStateEvents<SelectFarEvents>("SelectFar");
selectFarEvents.OnSelectUp.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Far Interaction Pointer Up");
});
selectFarEvents.OnSelectDown.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Far Interaction Pointer Down");
});
selectFarEvents.OnSelectHold.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Far Interaction Pointer Hold");
});
selectFarEvents.OnSelectClicked.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Far Interaction Pointer Clicked");
});
Tıklanan Durum
Tıklanan durum, varsayılan olarak uzak etkileşim tıklaması (Uzak durumu seç) tarafından tetikler. Bu durum dahili olarak açık durumuna geçirilir, OnClicked olayını çağırır ve ardından hemen kapatılır.
Not
Durum etkinliğini temel alan denetçideki görsel geri bildirim Tıklanan durum için mevcut değildir çünkü hemen açılıp kapatılır.
Tıklanan Durum Davranışı
Tıklanan Durum Denetçisi
Yakın ve Çok Tıklanan Durum Örneği
Tıklanan durum, yöntemi kullanılarak interactiveElement.TriggerClickedState()
ek giriş noktaları aracılığıyla tetiklenebilir. Örneğin, bir kullanıcı bir nesneye tıklamayı tetikleyecek yakın bir etkileşim dokunuşu istiyorsa, dokunma durumunda dinleyici olarak yöntemini ekler TriggerClickedState()
.
Tıklanan Durum Olaylarını Alma
Tıklanan Durum için olay yapılandırma türü: ClickedEvents
ClickedEvents clickedEvent = interactiveElement.GetStateEvents<ClickedEvents>("Clicked");
clickedEvent.OnClicked.AddListener(() =>
{
Debug.Log($"{gameObject.name} Clicked");
});
Durumu Aç/Kapat ve Aç/Kapat
Açma/Kapatma ve Açma/Kapatma durumları bir çift olup iki durumlu düğme davranışı için her ikisinin de mevcut olması gerekir. Varsayılan olarak, Uzak etkileşim tıklaması (Uzak durumu seç) aracılığıyla Açık Aç/Kapat durumları tetiklenir. Varsayılan olarak, Açma/Kapama durumu başlangıçta etkindir ve bu da iki durumlu düğmenin kapalı olarak başlatılacağı anlamına gelir. Kullanıcı, Açık Geçiş durumunun başlangıçta etkin olmasını istiyorsa, Açık Durumda durumunda true olarak ayarlayın IsSelectedOnStart
.
ToggleOn ve Toggle Off State Behavior
Denetçide ToggleOn ve Toggle Off State Inspector
Yakın ve Uzak Geçiş Durumları Örneği
Tıklanan duruma benzer şekilde, iki durumlu durum ayarının yöntemi kullanılarak interactiveElement.SetToggleStates()
birden çok giriş noktası olabilir. Örneğin, bir kullanıcı geçiş durumlarını ayarlamak için ek bir giriş noktası olarak dokunmak isterse, dokunma durumundaki olaylardan birine yöntemini ekler SetToggleStates()
.
Durum Olaylarını Açma ve Kapatma
ToggleOn Durumu için olay yapılandırma türü: ToggleOnEvents
ToggleOff Durumu için olay yapılandırma türü: ToggleOffEvents
// Toggle On Events
ToggleOnEvents toggleOnEvent = interactiveElement.GetStateEvents<ToggleOnEvents>("ToggleOn");
toggleOnEvent.OnToggleOn.AddListener(() =>
{
Debug.Log($"{gameObject.name} Toggled On");
});
// Toggle Off Events
ToggleOffEvents toggleOffEvent = interactiveElement.GetStateEvents<ToggleOffEvents>("ToggleOff");
toggleOffEvent.OnToggleOff.AddListener(() =>
{
Debug.Log($"{gameObject.name} Toggled Off");
});
Konuşma Anahtar Sözcüğü Durumu
Konuşma Anahtar Sözcüğü durumu, Karma Gerçeklik Konuşma Profilinde tanımlanan anahtar sözcükleri dinler. Yeni anahtar sözcüklerin çalışma zamanından önce konuşma komut profiline kaydedilmesi GEREKİR (aşağıdaki adımlar).
Konuşma Anahtar Sözcüğü Durum Davranışı
Konuşma Anahtar Sözcüğü Durum Denetçisi
Not
Konuşma Anahtar Sözcüğü durumu düzenleyicide yukarıdaki gif'teki F5 tuşuna basılarak tetiklendi. Konuşma için düzenleyici testinde ayarlama aşağıdaki adımlar özetlenmiştir.
Konuşma Komutu/Anahtar Sözcüğü Kaydetme
MixedRealityToolkit oyun nesnesini seçin
Kopyala ve Geçerli profili özelleştir'i seçin
Giriş bölümüne gidin ve Giriş profilinin değiştirilmesini etkinleştirmek için Kopyala'yı seçin
Giriş profilinde aşağı kaydırarak Konuşma bölümüne gelin ve Konuşma Profilini kopyalayın
Yeni Konuşma Komutu Ekle'yi seçin
Yeni anahtar sözcüğü girin. İsteğe bağlı: Düzenleyicide test edilmesine izin vermek için KeyCode'ı F5 (veya başka bir KeyCode) olarak değiştirin.
Etkileşimli Öğe Konuşma Anahtar Sözcüğü durum denetçisine Geri dön ve Anahtar Sözcük Ekle'yi seçin
Konuşma Profiline yeni kaydedilen yeni anahtar sözcüğü girin
Düzenleyicide Konuşma Anahtar Sözcüğü durumunu test etmek için 6. adımda (F5) tanımlanan KeyCode tuşuna basarak konuşma anahtar sözcüğü tanınan olayının benzetimini yapın.
Konuşma Anahtar Sözcüğü Durum Olaylarını Alma
SpeechKeyword Durumu için olay yapılandırma türü: SpeechKeywordEvents
SpeechKeywordEvents speechKeywordEvents = interactiveElement.GetStateEvents<SpeechKeywordEvents>("SpeechKeyword");
speechKeywordEvents.OnAnySpeechKeywordRecognized.AddListener((speechEventData) =>
{
Debug.Log($"{speechEventData.Command.Keyword} recognized");
});
// Get the "Change" Keyword event specifically
KeywordEvent keywordEvent = speechKeywordEvents.Keywords.Find((keyword) => keyword.Keyword == "Change");
keywordEvent.OnKeywordRecognized.AddListener(() =>
{
Debug.Log("Change Keyword Recognized");
});
Özel Durumlar
Denetçi aracılığıyla Özel Durum Oluşturma
Denetçi aracılığıyla oluşturulan özel durum, varsayılan durum olay yapılandırmasıyla başlatılır. Özel durum için varsayılan olay yapılandırması türündedir StateEvents
ve OnStateOn ve OnStateOff olaylarını içerir.
Etkileşimli Öğe denetçisinde Özel Durum Oluştur'a gidin.
Yeni durumun adını girin. Bu ad benzersiz olmalıdır ve mevcut çekirdek durumla aynı olamaz.
Durum listesine eklemek için Durum Adını Ayarla'yı seçin.
Bu özel durum, ve
OnStateOff
olaylarını içerenOnStateOn
varsayılanStateEvents
olay yapılandırmasıyla başlatılır. Yeni bir durum için özel olay yapılandırması oluşturmak için bkz. Özel Olay Yapılandırması ile Özel Durum Oluşturma.
Betik Aracılığıyla Özel Durum Oluşturma
interactiveElement.AddNewState("MyNewState");
// A new state by default is initialized with a the default StateEvents configuration which contains the
// OnStateOn and OnStateOff events
StateEvents myNewStateEvents = interactiveElement.GetStateEvents<StateEvents>("MyNewState");
myNewStateEvents.OnStateOn.AddListener(() =>
{
Debug.Log($"MyNewState is On");
});
Özel Olay Yapılandırması ile Özel Durum Oluşturma
Klavye adlı özel durum için örnek dosyalar burada bulunur: MRTK\SDK\Experimental\InteractiveElement\Examples\Scripts\CustomStateExample
Aşağıdaki adımlar, özel durum olay yapılandırması ve alıcı dosyaları oluşturmanın mevcut örneğini gösterir.
Bir eyalet adı düşünün. Bu ad benzersiz olmalıdır ve mevcut çekirdek durumla aynı olamaz. Bu örneğin amaçları doğrultusunda, durum adı Klavye olacaktır.
State name + "Receiver" ve state name + "Events" adlı iki .cs dosyası oluşturun. Bu dosyaların adlandırılması dahili olarak dikkate alınır ve durum adı + Olay/Alıcı kuralına uygun olmalıdır.
Dosya içeriği hakkında daha fazla ayrıntı için KeyboardEvents.cs ve KeyboardReceiver.cs dosyalarına bakın. Yeni olay yapılandırma sınıflarının'dan
BaseInteractionEventConfiguration
devralması ve yeni olay alıcı sınıflarının 'danBaseEventReceiver
devralması gerekir. Klavye durumunun durum ayarına ilişkin örnekler dosyadaCustomStateSettingExample.cs
bulunur.Durum adını kullanarak Durumu Etkileşimli Öğeye ekleyin, olay yapılandırması ve olay alıcı dosyaları varsa durum adı tanınır. Özel olay yapılandırma dosyasındaki özellikler denetçide görünmelidir.
Olay yapılandırması ve olay alıcı dosyaları hakkında daha fazla örnek için şu yollarda bulunan dosyalara bakın:
- MRTK\SDK\Experimental\InteractiveElement\InteractiveElement\Events\EventConfigurations
- MRTK\SDK\Experimental\InteractiveElement\InteractiveElement\Events\EventReceivers
Örnek Sahne
Etkileşimli Öğe + Durum Görselleştiricisi için örnek sahne burada bulunur: MRTK\SDK\Experimental\InteractiveElement\Examples\InteractiveElementExampleScene.unity
Sıkıştırılabilir Düğme
Örnek sahne, ve CompressableButtonToggle
adlı CompressableButton
prefab'leri içerir. Bu prefabs, Etkileşimli Öğe ve Durum Görselleştiricisi kullanılarak oluşturulmuş düğmelerin davranışını PressableButtonHoloLens2
yansıtır.
Bileşen CompressableButton
şu anda bir temel sınıf olarak ile BaseInteractiveElement
birleşimidir + PressableButton
PressableButtonHoloLens2
.
Durum Görselleştiricisi [Deneysel]
Durum Görselleştiricisi bileşeni, bağlantılı Etkileşimli Öğe bileşeninde tanımlanan durumlara göre bir nesneye animasyonlar ekler. Bu bileşen animasyon varlıkları oluşturur, bunları MixedRealityToolkit.Generated klasörüne yerleştirir ve hedef oyun nesnesine Animatable özellikleri ekleyerek basitleştirilmiş animasyon ana karesi ayarını etkinleştirir. Durumlar arasında animasyon geçişlerini etkinleştirmek için bir Animator Denetleyicisi varlığı oluşturulur ve ilişkili parametrelerle ve tüm durum geçişleriyle varsayılan durum makinesi oluşturulur. Durum makinesi Unity'nin Animator penceresinde görüntülenebilir.
Durum Görselleştiricisi ve Unity Animasyon Sistemi
Durum Görselleştiricisi şu anda Unity Animasyon Sisteminden yararlanır.
Durum Görselleştiricisi'ndeki Yeni Animasyon Klipleri Oluştur düğmesine basıldığında, Etkileşimli Öğe'deki durum adları temel alınarak yeni animasyon klibi varlıkları oluşturulur ve MixedRealityToolkit.Generated klasörüne yerleştirilir. Her durum kapsayıcısında Animation Clip özelliği ilişkili animasyon klibine ayarlanır.
Animasyon klipleri arasındaki sorunsuz geçişleri yönetmek için bir Animator Durum Makinesi de oluşturulur. Varsayılan olarak, durum makinesi Etkileşimli Öğe'deki herhangi bir durum arasında geçişlere izin vermek için Herhangi Bir Durumu kullanır.
Animator'da tetiklenen durum görselleştiricileri de her durum için oluşturulur, tetikleyici parametreleri Durum Görselleştiricisi'nde bir animasyonu tetikleme amacıyla kullanılır.
Çalışma Zamanı Sınırlamaları
Durum Görselleştiricisi, Denetçi aracılığıyla bir nesneye eklenmelidir ve betik aracılığıyla eklenemez. AnimatorStateMachine/AnimationController'ı değiştiren özellikler, uygulama oluşturulduğunda kaldırılan bir düzenleyici ad alanında (UnityEditor.Animations
) bulunur.
Durum Görselleştiricisi'ni kullanma
Küp Oluşturma
Etkileşimli Öğe Ekle
Durum Görselleştiricisi Ekle
Yeni Animasyon Klipleri Oluştur'a tıklayın
Odak durumu kapsayıcısında Hedef Ekle'yi seçin
Geçerli oyun nesnesini hedef alana sürükleyin
Küp Animatable Özellikler katlamasını açma
Animatable özellik açılan menüsünü ve ardından Renk'i seçin
Renk Animatable Özelliği Ekle'yi seçin
Renk Seçin
Oynat'a basın ve geçiş rengi değişikliğini gözlemleyin
Animatable Özellikleri
Animatable Özellikleri'nin birincil amacı, animasyon klibi ana karesi ayarını basitleştirmektir. Bir kullanıcı Unity Animasyon Sistemi'ni biliyorsa ve oluşturulan animasyon kliplerinde doğrudan ana kareler ayarlamayı tercih ederse, hedef nesneye Animatable özellikleri ekleyemez ve klibi Unity'nin Animasyon penceresinde (Windows > Animasyon > Animasyonu) açamaz.
Animasyon için Animatable özellikleri kullanılıyorsa eğri türü EaseInOut olarak ayarlanır.
Geçerli Animatable Özellikleri:
Ölçek Uzaklığı
Ölçek Uzaklığı Animatable özelliği nesnenin geçerli ölçeğini alır ve tanımlı uzaklığı ekler.
Konum Uzaklığı
Konum Uzaklığı Animatable özelliği nesnenin geçerli konumunu alır ve tanımlı uzaklığı ekler.
Renk
Color Animatable özelliği, malzemenin ana renk özelliği varsa malzemenin ana rengini temsil eder. Bu özellik, özelliğe animasyon ekler material._Color
.
Gölgelendirici Rengi
Gölgelendirici Rengi Animatable özelliği, tür renginin gölgelendirici özelliğine başvurur. Tüm gölgelendirici özellikleri için bir özellik adı gereklidir. Aşağıdaki gif, ana malzeme rengi olmayan Fill_Color adlı bir gölgelendirici renk özelliğinin gösterilmesini gösterir. Malzeme denetçisindeki değişen değerleri gözlemleyin.
Gölgelendirici Kayan
Gölgelendirici Float Animatable özelliği float türünde bir gölgelendirici özelliğine başvurur. Tüm gölgelendirici özellikleri için bir özellik adı gereklidir. Aşağıdaki gif'te Metallic özelliği için malzeme denetçisindeki değişen değerleri gözlemleyin.
Gölgelendirici Vektör
Gölgelendirici Vektör Animatable özelliği Vector4 türünde bir gölgelendirici özelliğine başvurur. Tüm gölgelendirici özellikleri için bir özellik adı gereklidir. Aşağıdaki gif'te Tiling (Main Tex_ST) özelliği için malzeme denetçisindeki değişen değerleri gözlemleyin.
Animatable Shader Özellik Adlarını Bulma
Pencere > Animasyonu Animasyonu'na > gidin
Hiyerarşide Durum Görselleştiricisi'ne sahip nesnenin seçildiğinden emin olun
Animasyon penceresinde herhangi bir animasyon klibi seçme
Özellik Ekle'yi seçin, Mesh oluşturucu katlamasını açın
Bu liste tüm Animatable özellik adlarını içerir