Eğitim
Modül
3B nesne etkileşimlerini kullanmaya başlama - Training
Bu kurs, 3B nesneleri işleme ve bunlarla etkileşim kurma adımlarını ve yordamlarını sağlayacaktır.
Bu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Not
Sınırlayıcı kutu kullanım dışıdır ve ardıl sınır denetimiyle değiştirilir. Mevcut oyun nesnelerini yükseltmek için geçiş seçeneklerinden birini kullanın.
Betik, BoundingBox.cs
karma gerçeklikte nesneleri dönüştürmek için temel işlevler sağlar. Sınırlayıcı kutu, hologramın çevresinde etkileşime girilebileceğini belirten bir küp gösterir. Küpünün köşelerindeki ve kenarlarında bulunan tutamaçlar, nesnenin ölçeklenmesine veya döndürülmesini sağlar. Sınırlayıcı kutu, kullanıcı girişine de tepki gösterir. Örneğin, HoloLens 2 sınırlayıcı kutu parmak yakınlığı yanıt verir ve nesneden uzaklığı algılamaya yardımcı olmak için görsel geri bildirim sağlar. Tüm etkileşimler ve görseller kolayca özelleştirilebilir.
Daha fazla bilgi için bkz. Windows Geliştirme Merkezi'ndeki Sınırlayıcı kutu ve Uygulama çubuğu .
Sınırlayıcı kutu yapılandırmalarının BoundingBoxExamples
örneklerini sahnede bulabilirsiniz.
BoundingBox
Not
Birden çok alt bileşen içeren nesnede belirli bir nesneyi ve harmanlayıcıyı atamak için denetçideki Hedef Nesne ve Sınırları Geçersiz Kılma alanını kullanın.
Küp GameObject örneği oluşturma
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
AddComponent<>() kullanarak harmanlamalı bir nesneye betik atama BoundingBox
private BoundingBox bbox;
bbox = cube.AddComponent<BoundingBox>();
Seçenekleri yapılandırma (aşağıdaki Denetçi özellikleri bölümüne bakın)
// Make the scale handles large
bbox.ScaleHandleSize = 0.1f;
// Hide rotation handles
bbox.ShowRotationHandleForX = false;
bbox.ShowRotationHandleForY = false;
bbox.ShowRotationHandleForZ = false;
(İsteğe bağlı) HoloLens 2 stili sınırlayıcı kutu için ön ekleri ve malzemeleri atayın. Malzemeler ve prefablar dinamik olarak yüklendiği için bu işlem yine de denetçi aracılığıyla atama yapılmasını gerektirir.
Not
Çalışma zamanında gölgelendirici permütasyonları eksik olabileceğinden, Unity'nin 'Resources' klasörünü veya Shader.Find'ı kullanarak gölgelendiricilerin dinamik olarak yüklenmesi önerilmez.
bbox.BoxMaterial = [Assign BoundingBox.mat]
bbox.BoxGrabbedMaterial = [Assign BoundingBoxGrabbed.mat]
bbox.HandleMaterial = [Assign BoundingBoxHandleWhite.mat]
bbox.HandleGrabbedMaterial = [Assign BoundingBoxHandleBlueGrabbed.mat]
bbox.ScaleHandlePrefab = [Assign MRTK_BoundingBox_ScaleHandle.prefab]
bbox.ScaleHandleSlatePrefab = [Assign MRTK_BoundingBox_ScaleHandle_Slate.prefab]
bbox.ScaleHandleSize = 0.016f;
bbox.ScaleHandleColliderPadding = 0.016f;
bbox.RotationHandleSlatePrefab = [Assign MRTK_BoundingBox_RotateHandle.prefab]
bbox.RotationHandleSize = 0.016f;
bbox.RotateHandleColliderPadding = 0.016f;
En düşük ve en yüksek ölçeği ayarlamak için kullanın MinMaxScaleConstraint
. MinMaxScaleConstraint'i, için en düşük ve en yüksek ölçeği ayarlamak için ManipulationHandler
de kullanabilirsiniz.
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
bbox = cube.AddComponent<BoundingBox>();
// Important: BoundingBox creates a scale handler on start if one does not exist
// do not use AddComponent, as that will create a duplicate handler that will not be used
MinMaxScaleConstraint scaleConstraint = bbox.gameObject.GetComponent<MinMaxScaleConstraint>();
scaleConstraint.ScaleMinimum = 1f;
scaleConstraint.ScaleMaximum = 2f;
Nesnenin çevresine sınırlayıcı kutu eklemek için, nesneye bir BoundingBox
bileşen eklemeniz yeterlidir:
private void PutABoxAroundIt(GameObject target)
{
target.AddComponent<BoundingBox>();
}
Bu özellik, sınırlayıcı kutu işlemesi tarafından hangi nesnenin dönüştürüleceğini belirtir. Hiçbir nesne ayarlanmadıysa sınırlayıcı kutu varsayılan olarak sahip nesnesine ayarlanır.
Sınırlar hesaplaması için nesneden bir kutu harmanlaması ayarlar.
Sınırlayıcı kutu arabirimini etkinleştirmek için çeşitli seçenekler vardır.
İzin verilen en düşük ölçek. Bu özellik kullanım dışıdır ve betik MinMaxScaleConstraint
eklenmesi tercih edilir. Bu betik eklenirse, sınırlayıcı kutu yerine en düşük ölçek alınır.
İzin verilen en yüksek ölçek. Bu özellik kullanım dışıdır ve betik MinMaxScaleConstraint
eklenmesi tercih edilir. Bu betik eklenirse, sınırlayıcı kutu yerine en yüksek ölçek ondan alınır.
Çeşitli sınırlayıcı kutu görselleştirme seçenekleri.
Düzleştirilmiş Eksen Otomatik Olarak Ayarlanırsa, betik eksen boyunca en küçük ölçüde düzenlemeye izin vermeyecektir. Bu, genellikle ince nesneler için kullanılan 2B sınırlayıcı kutuyla sonuçlanır.
Tutamaç stilini geçersiz kılmak için malzemeyi ve ön başlığı atayabilirsiniz. Hiçbir tanıtıcı atanmazsa, bunlar varsayılan stilde görüntülenir.
Sınırlayıcı kutu aşağıdaki olayları sağlar. Bu örnek, sesli geri bildirim yürütmek için bu olayları kullanır.
Varsayılan olarak, betiği yalnızca atadığınızda BoundingBox.cs
HoloLens 1. nesil stilinin tutamacını gösterir. HoloLens 2 stil tutamaçlarını kullanmak için uygun tanıtıcı ön öğeleri ve malzemeleri atamanız gerekir.
Aşağıda, HoloLens 2 stili sınırlayıcı kutu tutamaçları için ön bileşenler, malzemeler ve ölçeklendirme değerleri yer alır. Bu örneği BoundingBoxExamples
sahnede bulabilirsiniz.
Tutamaçları, ellere olan uzaklığı temel alarak animasyonla gösterin ve gizleyin. İki aşamalı ölçeklendirme animasyonu vardır.
Sınırlayıcı kutu ile ManipulationHandler.cs
birleştirilerek nesne uzak etkileşim kullanılarak taşınabilir hale getirilebilir. düzenleme işleyicisi hem bir hem de iki elle etkileşimleri destekler.
El izleme , bir nesneyle yakından etkileşim kurmak için kullanılabilir.
Sınırlayıcı kutu kenarlarının , 'nin uzak etkileşimini kullanarak ManipulationHandler
taşırken aynı şekilde davranması için yukarıdaki ekran görüntüsünde gösterildiği gibi sırasıyla düzenleme başlatıldı / düzenlemesi sona erdiBoundingBox.HighlightWires
/ BoundingBox.UnhighlightWires
için olaylarını bağlaması önerilir.
Sınırlayıcı kutu kullanan mevcut prefabs ve örnekler, MRTK araçları paketinin bir parçası olan geçiş penceresi aracılığıyla yeni sınır denetimine yükseltilebilir.
Sınırlayıcı kutunun tek tek örneklerini yükseltmek için bileşenin özellik denetçisinde bir geçiş seçeneği de vardır.
Eğitim
Modül
3B nesne etkileşimlerini kullanmaya başlama - Training
Bu kurs, 3B nesneleri işleme ve bunlarla etkileşim kurma adımlarını ve yordamlarını sağlayacaktır.