Karakter Kontrolleri

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

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.

  1. Bir Part veya MeshPart seçin ve ismini RootPart olarak değiştirin.

  2. Parçayı diğer bileşenlerle birlikte organizasyon için bir Model instansı olarak gruplandırın.

  3. 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

    ControllerManager and RootPart inside model

Sensör Kurulumu

Bir ControllerPartSensor , zeminleri ve merdivenleri tespit etmek için kullanılan Humanoid ile aynı kodu kullanır.

  1. 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

    GroundSensor as child of RootPart
    GroundSensor properties
  2. 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

    ClimbSensor as child of RootPart
    ClimbSensor properties

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.

  1. Class.GroundController ve ClimbController ile bir çocuk ControllerManager .

    GroundController and ClimbController as children of ControllerManager
  2. Yeni GroundController instansını seçin ve ardından, Özellikler penceresinde, yönetilen parçanın yer üzerinde "hava" olarak etk

    GroundController properties

Referansları Bağlama

Çekirdek kurulumunu tamamlamak için, ControllerManager örneğinin ana Model içindeki varsayılan özelliklere bağlanması gerekir.

  1. Class.ControllerManager durumseçin.

    ControllerManager selected in Explorer window
  2. Ö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.

    1. Class.ControllerManager.ActiveController|ActiveController özelliğini GroundController durumbağla.
    2. Class.ControllerManager.RootPart|RootPart özelliğini RootPart olarak adlandırdığınız parçaya bağlayın.
    3. Class.ControllerManager.ClimbSensor|ClimbSensor özelliğini ClimbSensor durumbağla.
    4. GroundSensorManager.GroundSensor özelliğini GroundSensor durumbağla.
    ControllerManager properties linked to instances within overall model

Test

Mevcut sensörler ve kontroller ile, ve bağlantılı referanslar ile, Studio'da kontrolörü test edebilirsiniz.

  1. Oyun testini koş modu ( F8 ) kullanarak başlatın, çünkü bu senaryoda avatar karakterinizi girmeniz gerekmez.

    Rapid playtest options in Test tab of Studio
  2. 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.

    Character levitating above ground at GroundOffset, facing in direction of FacingDirection vector
  3. Çeşitli hareket ve yön yönlendirme ile deneyler yapmak için MovingDirection

    ControllerManager properties for moving and facing direction
    Kontrolör Yöneticisi
    GroundController properties for acceleration, deceleration, and ground offset
    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ç

  1. 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.
  2. 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.

  3. Class.ControllerManager sensörleri kullanmaya devam edecek, verileri ona geçirir.