Karakter kontrolörleri

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

The ControllerManager örneği, atanmış RootPart için simüle edilmiş hareket kontrolünü yönetir.ControllerPartSensors ile birlikte, fizik tabanlı bir karakter kontrolörü oluşturmak için kullanılabilir.

Çekirdek kurulum

ControllerManager kullanmak için bir BasePart gerektirir kök olarak. Hareket kuvvetleri ve parça algılaması bu parçada olacaktır.

  1. Bir Part veya MeshPart seçin ve adlandırın Kök Parça .

  2. Parçayı diğer bileşenlerle birlikte organizasyon için bir Model örneği olarak grupla.

  3. Modelde bir ControllerManager örneği ekleyin.Eğer Kontrolör Yöneticisi başlangıçta nesne yerleştirme menüsünde görünmezse, seçimi kaldır "Sadece önerilen nesneleri göster" menünün yerleştirme ayarlarında.

    ControllerManager and RootPart inside a model.

Sensor kurulumu

Bir ControllerPartSensor , zeminleri ve merdivenleri tespit etmek için kullandığı aynı kodla parçaları tespit eder Humanoid.

  1. Bir çocuk olarak ControllerPartSensor KökParça 'nın bir çocu olarak ekleyin ve amacını daha kolay tanımlamak için adını Yer Sensörü olarak değiştirin.Sonra, Özellikler penceresinde, onun özelliğini 2 olarak ayarlayın, ancak onun özelliğini Zemin olarak bırakın.

    GroundSensor as child of RootPart
  2. Başka bir ControllerPartSensor çocuk olarak KökParça nın bir evladı olarak ekleyin ve adını TırmanmaSensörü olarak değiştirin.Sonra, Özellikler penceresinde, onun SearchDistance özelliğini 1 ve onun SensorMode özelliğini Merdiven olarak ayarlayın.

    ClimbSensor as child of RootPart

Kontrolör kurulumu

Kontrolör örnekleri gibi ve , yönetilen parçaya dünya ile nasıl etkileşime gireceğini söyler, sensörleri sensör kurulumu sırasında yapılandırdığınız sensörlerin yanında çalışarak.

  1. Her ikisini de GroundController ve ClimbController çocukları olarak ControllerManager 'in içine ekleyin.

    GroundController and ClimbController as children of ControllerManager.
  2. Yeni GroundController örneği seçin ve ardından, Özellikler penceresinde, yönetilen parçanın yerde "levite etmesi" gereken bir değere ayarlayın GroundOffset özellik.Bu değerin daha az Yer Sensörü için değerden daha az olması önemlidir, çünkü bu sensör yerdeki hissini kaybeder ve etkili bir şekilde kuvvetlerini durdurur.

Bağlantı referansları

Çekirdek kurulumu tamamlamak için, ControllerManager örneğinin çeşitli özelliklerini ana Model nesnelerine bağlamanız gerekecek.

  1. ControllerManager durumseçin.

    ControllerManager selected in Explorer window.
  2. Özellikler penceresinde, aşağıdaki özelliklerin her birine tıklayın ve ardından Kâşif penceresine geri dönerek, bağlantıyı tamamlamak için ilgili örneğe tıklayın.

    1. ActiveController özelliğini Yer Kontrolörü durumbağlayın.
    2. RootPart özelliğini adlandırdığınız parçaya KökParça bağlayın.
    3. ClimbSensor özelliğini Tırmanma Sensörü durumbağlayın.
    4. GroundSensor özelliğini Yer Sensörü durumbağlayın.
    ControllerManager properties linked to instances within overall model

Test

dünyasensörler ve kontrolörler ile ve referanslar bağlı , Studio'da kontrolörü test edebilirsiniz.

  1. Avatar karakterinizi bu senaryoya yerleştirmenize gerek olmadığından Çalıştır modunu kullanarak bir oyun testi başlatın (F8).

    Rapid playtest options in Studio.
  2. Kök Parça , GroundController.GroundOffset değerinde ayarladığınız yerde yere yerleşmelidir Kontrolörleri Ekleme .Ayrıca ControllerManager.FacingDirection vektörü ile uyumlu olmak için döndürülmelidir.

    Character levitating above ground at GroundOffset, facing in direction of FacingDirection vector.
  3. Çalışma sırasında MovingDirection ve FacingDirection vektörlerini değiştirerek farklı hareket ve yönlere deneyin ve ControllerManager sırasında çalışma.Ayrıca GroundController , AccelerationTime ve GroundOffset gibi örneğin farklı özellikleriyle deneyin DecelerationTime ve .

    ControllerManager properties for moving and facing direction are highlighted.
    KontrolörYöneticisi
    GroundController properties for acceleration, deceleration, and ground offset are highlighted.
    Yer Kontrolörü

Özel sensörler

ControllerPartSensor.SensorMode ve Floor seçeneklerinin Ladder çalışması, geriye dönük uyumluluk için onları kullanmanıza izin veren doğru Humanoid sensör kodunu çalıştırır.Ancak, yürünebilir ve tırmanılabilir parçaların nasıl ve ne zaman tespit edileceğini de özelleştirebilirsiniz, sonunda yönetilen parça yürüdüğünde/tırmandığında değişir.

  1. Değiştir ControllerPartSensor.UpdateType Okuma ile Manuel arasında.

    • OnRead her okuduğunuzda eşleşen çıktı özelliklerini güncelleştirmek için çıktı özelliklerini güncelleştirir SensorMode her seferinde.Temel olarak sensörü bu özelliklere yazdığınız her şeyin içsel algılama davranışı tarafından üzerine yazılmasına neden olan "yalnızca okuma" moduna sokar.
    • Manuel iç sensör davranışını kapatır.Çıktı özellikleri, istediğiniz gibi yazmanız için ücretsizdir ve SensorMode hiçbir şey yapmaz.
  2. Kendi algılama mantığınızı yürüten bir senaryo oluşturun ve çıktıları sensör çıkış özelliklerine yazın.Tipik olarak, WorldRoot:Raycast() veya WorldRoot:Blockcast() gibi uzaysal bir sorgu kullanacaksınız, ki bunlar bir RaycastResult döndürür.Senaryonuz sonra sonuç özelliklerini alabilir ve sensör eşdeğerlerine ayarlayabilir:

    Sorgularınızın ne sıklıkla çalıştığını ve sensör durumgüncellediğini yönetmeniz gerektiğini unutmayın.

  3. The ControllerManager atanmış olduğu sensörleri kullanmaya devam edecek ve size geçirdiğiniz verileri alacak.