Kontrol Karakter

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Class.ControllerManager instansi mengelola kontrol gerakan simulasi untuk RootPart yang diberikan. Bersama dengan ControllerPartSensors, itu dapat digunakan untuk membangun kontrol karakter fisik.

Pengaturan Inti

ControllerManager memerlukan BasePart untuk digunakan sebagai akar. Kekuatan gerakan dan deteksi bagian akan berada di bagian ini.

  1. Pilih Part atau MeshPart dan namakan itu RootPart .

  2. Grupkan bagian sebagai Model instansi untuk organisasi bersama dengan komponen lainnya.

  3. Tambahkan instansi ControllerManager ke model. Jika ControllerManager tidak muncul di menu penambahan objek, bersama-sama "Tampilkan hanya objek yang direkomendasikan" dalam pengaturan penambahan menu.

    ControllerManager and RootPart inside model

Pengaturan Sensor

A ControllerPartSensor mendeteksi bagian dengan kode yang sama yang digunakan oleh Humanoid untuk mendeteksi lantai dan tangga.

  1. Sisipkan ControllerPartSensor sebagai anak dari RootPart dan ganti nama itu GroundSensor untuk lebih mudah mengidentifikasi tujuan. Kemudian, dalam jendela 1> Proprieti

    GroundSensor as child of RootPart
    GroundSensor properties
  2. Sisipkan another ControllerPartSensor as a child of RootPart and rename it ClimbSensor . Kemudian, dalam jendela 1> Properties1>, set its 4> Class.ControllerPartSensor.SearchDistance|SearchDistance4>

    ClimbSensor as child of RootPart
    ClimbSensor properties

Pengaturan Kontroler

Instansi kontrol seperti GroundController dan ClimbController memberi tahu bagian yang dikelola cara berinteraksi dengan dunia, bekerja sama dengan sensori yang Anda konfigurasikan di Sensor Settings .

  1. Sisipkan kedua GroundController dan ClimbController sebagai anak-anak dari ControllerManager .

    GroundController and ClimbController as children of ControllerManager
  2. Pilih instansi baru GroundController dan kemudian, dalam jendela Propinsi, atur propperti GroundOffset nya ke

    GroundController properties

Mengaitkan Referensi

Untuk menyelesaikan pengaturan inti, Anda harus menautkan berbagai properti dari instansi ControllerManager ke objek dalam utama Model .

  1. Pilih instansi ControllerManager.

    ControllerManager selected in Explorer window
  2. Di jendela Properti, klik setiap dari berikutnya properti dan kemudian, kembali di jendela Eksplorer, klik instans masing-masing untuk menyelesaikan tautkan.

    1. Hubungkan ActiveController properti ke instansi GroundController.
    2. Hubungkan properti RootPart ke bagian yang Anda sebutkan RootPart .
    3. Hubungkan property ClimbSensor ke instansi ClimbSensor .
    4. Hubungkan property GroundSensor ke instansi GroundSensor .
    ControllerManager properties linked to instances within overall model

Menguji

Dengan Sensor dan Kontroler di tempat, dan dengan Referensi yang terhubung, Anda dapat menguji kontroler di Studio.

  1. Mulai playtest menggunakan mode Jalankan ( F8 ) karena Anda tidak perlu menyisipkan karakter avatar Anda dalam skenario ini.

    Rapid playtest options in Test tab of Studio
  2. RootPart seharusnya mengambang di atas tanah pada nilai GroundController.GroundOffset yang Anda tetapkan dalam Menambahkan Pengontrol. Ini juga harus berputar untuk mengalineasi dengan vektor 0> Class.ControllerManager.FacingDirection0>.

    Character levitating above ground at GroundOffset, facing in direction of FacingDirection vector
  3. Berperan dengan berbagai arah dan arah tatap saat mengubah MovingDirection dan

    ControllerManager properties for moving and facing direction
    Manajer Kontroler
    GroundController properties for acceleration, deceleration, and ground offset
    Pengontrol Tanah

Sensor Kustom

Opsi ControllerPartSensor.SensorMode dari Floor dan Ladder mengeksekusi kode sensor Class.Humanoid , sehingga Anda dapat menggunakannya untuk kesesuaian. Namun, Anda juga dapat menyesuaikan cara dan waktu

  1. Ganti ControllerPartSensor.UpdateType dari OnRead ke Manual .

    • OnRead menyetel kepemilikan keluaran untuk diperbarui sesuai dengan SensorMode setiap kali Anda membacanya. Itu pada dasarnya menempatkan sensor dalam mode "baca saja" di mana apa pun yang Anda tulis kepada proporsi ini menjadi overwritten oleh perilaku sensing internalnya.
    • Manual menonaktifkan perilaku sensing internal. PropOutput gratis untuk Anda tulis apa pun yang Anda suka dan SensorMode tidak melakukan apa-apa.
  2. Buat skrip yang melakukan logika sentralisasi Anda sendiri dan menulis keluaran ke proporsi keluaran sensor Anda. Biasanya Anda akan menggunakan pemintaan ruang seperti WorldRoot:Raycast() atau WorldRoot:Blockcast() yang mengembalikan RaycastResult . Skrip Anda kemudian dapat mengamb

    Catat bahwa Anda harus mengelola seberapa sering pencarian Anda berjalan dan menyetel ulang kejadianmereka.

  3. The ControllerManager akan terus menggunakan sensor yang telah ditetapkan, mengambil data yang Anda berikan kepada itu.