Class.ControllerManager örneği, atanmış RootPart için simüle edilmiş hareket kontrolünü yönetir. ControllerPartSensors ile birlikte, bir fiziksel karakter kontrolörü oluşturmak için kullanılabilir.
Çekirdek Ayarları
ControllerManager kök olarak kullanmak için bir BasePart gerektirir. Hareket güçleri ve parça algısı bu parçada olacaktır.
Parçayı diğer bileşenlerle birlikte organizasyon için bir Model instansı olarak gruplandırın.
Modeline bir ControllerManager instansı ekler. Eğer ControllerManager menünün objeye görünmez Gizlemeyi etkinleştir menünün 1> yalnızca önerilen objeleri göster1> ayarlarında görünmezse, menünün 4>gizleme ayarları4> kısmındaki 7>gizlemeyi etkinleştir7> bir
Sensör Kurulumu
Bir ControllerPartSensor , zeminleri ve merdivenleri tespit etmek için kullanılan Humanoid ile aynı kodu kullanır.
Class.ControllerPartSensor bir RootPart çocuğu olarak adlandır ve onu GroundSensor için daha kolay tanımlamak için ismini değiştir. Sonra, 1>Özellik
Bir çocuğu 1>Class.ControllerPartSensor1> tümüne bir başka 0> Class.ControllerPartSensor.SearchDistance|SearchDistance0> özelliğini ekleyin ve 3> ClimbSensor3> . Sonra, 6>Özellik
Kontrolör Kurulumu
Kontrolör instansları, GroundController ve ClimbController gibi, yönetilen parçanın dünyayla nasıl etkileşime geçeceğini, Senaryo Ayarlama içinde yapılandırdığınız sensörlerle birlikte çalışmasını gösterir.
Class.GroundController ve ClimbController ile bir çocuk ControllerManager .
Yeni GroundController instansını seçin ve ardından, Özellikler penceresinde, yönetilen parçanın yer üzerinde "hava" olarak etk
Referansları Bağlama
Çekirdek kurulumunu tamamlamak için, ControllerManager örneğinin ana Model içindeki varsayılan özelliklere bağlanması gerekir.
Class.ControllerManager durumseçin.
Özellikler penceresinde, aşağıdaki özelliklerden her birini tıklayın ve sonra Araç penceresindeki ilgili instansı tamamlamak için bağlantıyı tamamlayın.
- Class.ControllerManager.ActiveController|ActiveController özelliğini GroundController durumbağla.
- Class.ControllerManager.RootPart|RootPart özelliğini RootPart olarak adlandırdığınız parçaya bağlayın.
- Class.ControllerManager.ClimbSensor|ClimbSensor özelliğini ClimbSensor durumbağla.
- GroundSensorManager.GroundSensor özelliğini GroundSensor durumbağla.
Test
Mevcut sensörler ve kontroller ile, ve bağlantılı referanslar ile, Studio'da kontrolörü test edebilirsiniz.
Oyun testini koş modu ( F8 ) kullanarak başlatın, çünkü bu senaryoda avatar karakterinizi girmeniz gerekmez.
RootPart yerden Class.GroundController.GroundOffset değerinde yer üstüne kaldığından şimdi GroundController.GroundOffset içinde ayarladığınız değerden yuvarlak olmalıdır. Ayrıca Class.ControllerManager.FacingDirection iletişim ekseninde döndürülmelidir.
Çeşitli hareket ve yön yönlendirme ile deneyler yapmak için MovingDirection
Kontrolör Yöneticisi Yer Kontrolörü
Özel Sensörler
Class.Humanoid1> sensör kodunu kullanır ve bunları arka uyumluluk için kullanır. Ancak, yürüme ve tırmanma için duyarlı parçaları özelleştirebilirsiniz, böylece onları geriye uyarlayabilirsiniz. Ancak, yönetilen parç
OnRead 'dan Manual 'e Class.ControllerPartSensor.UpdateType geçişini Switch the ControllerPartSensor.UpdateType from OnRead to Manual .
- OnRead triggers the output properties to update corresponding to your SensorMode every time you read them. It essentially puts the sensor in a "read-only" mode where anything you write to these properties becomes overwritten by its internal sensing behavior.
- Manuel iç güdüsel davranışı kapatır. Çıkış özellikleri yazmak için sizin için ücretsizdir, ancak SensorMode hiçbir şey yapmaz.
Kendi algı mantığınızı yerine getiren ve çıkışlarınızı sensör çıkış özelliklerinize yazan bir senaryo oluşturun. Genellikle WorldRoot:Raycast() veya WorldRoot:Blockcast() gibi bir yerel sorgu kullanırız, böylece şu bir
Göstergelerinizin ne sıklıkta çalıştığını ve sensör instanziasyonlarınızı güncellediğini yönetmeniz gerektiğini unutmayın.
Class.ControllerManager sensörleri kullanmaya devam edecek, verileri ona geçirir.