Seat
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Jenis BasePart yang bisa ditumpahi karakter pemain.Ketika karakter menyentuh objek Kursi yang diaktifkan, itu akan dilampirkan ke bagian dengan Weld dan skrip karakter default akan memainkan animasi duduk.
Bagaimana Kursi bekerja?
Ketika model yang berisi Humanoid dan BasePart disebut 'HumanoidRootPart' (biasanya karakter pemain) menyentuh kursi, Weld dibuat di antara kursi dan bagian.Properti C0 dan C1 di konfigurasi sehingga karakter disambungkan 2 kancing di atas kursi.Pengelasan ini bernama 'SeatWeld' dan diberi kepada kursi.
Saat duduk properti Seat.Occupant diatur ke Humanoid yang 'duduk' di kursi.Selain itu, properti Humanoid.SeatPart dari humanoid diatur ke kursi.
Seorang karakter juga dapat dipaksa duduk di kursi menggunakan fungsi Seat:Sit().
Ada dua cara bagi seorang karakter untuk keluar dari kursi.Ketika seorang pemain melompat, mereka dihapus dari kursi.Namun ini juga bisa dilakukan secara manual dengan menghancurkan las kursi, misalnya:
kursi:FindFirstChild("SeatWeld"):Hancurkan()
Kursi catatan memiliki cooldown (saat ini 3 detik) yang berada di basis per karakter per kursi.Ini berarti setelah karakter keluar dari kursi mereka tidak dapat duduk kembali di kursi yang sama selama 3 detik.Perilaku jedak waktu ini dapat berubah dan tidak boleh diandalkan oleh pengembang.
Untuk apa Kursi dapat digunakan?
Kursi memiliki berbagai penggunaan, berkisar dari yang jelas hingga yang paling tidak konvensional.
- Membuat kursi atau bangku tanpa perlu pemrograman
- Mengizinkan karakter untuk 'duduk' di objek bergerak seperti kendaraan tanpa terlempar ke sekitar
- Membuat antarmuka yang dikendalikan oleh karakter di kursi menggunakan properti Seat.Occupant
Contoh Kode
This code sample includes a demonstration of how the Seat.Occupant property can be used to track which player is sitting in a seat and when they sit down or sit up.
local Players = game:GetService("Players")
local seat = Instance.new("Seat")
seat.Anchored = true
seat.Position = Vector3.new(0, 1, 0)
seat.Parent = workspace
local currentPlayer = nil
local function onOccupantChanged()
local humanoid = seat.Occupant
if humanoid then
local character = humanoid.Parent
local player = Players:GetPlayerFromCharacter(character)
if player then
print(player.Name .. " has sat down")
currentPlayer = player
return
end
end
if currentPlayer then
print(currentPlayer.Name .. " has got up")
currentPlayer = nil
end
end
seat:GetPropertyChangedSignal("Occupant"):Connect(onOccupantChanged)
Rangkuman
Properti
Apakah kursi dapat digunakan atau tidak. Jika diatur ke benar, kursi akan bertindak sebagai bagian normal.
Humanoid yang duduk di kursi.
Tetapkan bentuk keseluruhan dari objek.
Menentukan apakah suku cadang tidak dapat dipindahkan oleh fisika.
Kecepatan sudut dari penggabungan bagian.
Pusat massa dari pengumpulan bagian di ruang dunia.
Kecepatan linier dari penggabungan bagian.
Massa total dari penggabungan bagian.
Referensi ke bagian akar dari kumpulan.
Menentukan apakah bagian akan berinteraksi secara fisik dengan simulasi audio, mirip dengan CastShadow untuk pencahayaan.
Menentukan jenis permukaan untuk bagian belakang suku cadang.
Menentukan jenis permukaan untuk wajah bagian bawah suku cadang.
Menentukan warna suku cadang.
Menentukan posisi dan orientasi BasePart di dunia.
Menentukan apakah bagian dapat bertabrakan dengan bagian lain.
Menentukan apakah bagian tersebut dianggap selama operasi pencarian spasial.
Menentukan apakah Touched dan TouchEnded peristiwa terbakar di bagian.
Menentukan apakah bagian itu melemparkan bayangan atau tidak.
Menggambarkan posisi dunia di mana pusat massa bagian terletak.
Menggambarkan nama grup tabrakan bagian.
Menentukan warna suku cadang.
Menunjukkan properti fisik saat ini dari bagian.
Menentukan beberapa properti fisik dari suku cadang.
Digunakan untuk mengaktifkan atau menonaktifkan kekuatan aerodinamik pada bagian dan kumpulan.
Ukuran fisik aktual dari BasePart sebagai dianggap oleh mesin fisika.
Menentukan jenis permukaan untuk wajah depan suku cadang.
Menentukan jenis permukaan untuk wajah kiri dari suku cadang.
Menentukan pengganda untuk BasePart.Transparency yang hanya terlihat oleh klien lokal.
Menentukan apakah bagian dapat dipilih di Studio.
Menggambarkan massa bagian, produk dari kepadatan dan volumenya.
Menentukan apakah bagian berkontribusi pada massa total atau inersia tubuh kaku.
Menentukan tekstur dan properti fisik default dari suku cadang.
Nama MaterialVariant .
Menggambarkan rotasi bagian di dunia.
Menentukan offset dari pivot bagian dari CFrame nya.
Menggambarkan posisi bagian di dunia.
Waktu sejak pembaruan fisika terakhir update.
Menentukan seberapa banyak bagian mencerminkan skybox.
Menggambarkan perubahan terkecil dalam ukuran yang diizinkan oleh metode Resize().
Menggambarkan wajah di mana bagian dapat diubah ukurannya.
Menentukan jenis permukaan untuk wajah kanan suku cadang.
Aturan utama dalam menentukan bagian akar dari sebuah kumpulan.
Rotasi bagian dalam derajat untuk tiga sumbu.
Menentukan dimensi suku cadang (panjang, lebar, tinggi).
Menentukan jenis permukaan untuk bagian atas wajah suku cadang.
Menentukan berapa banyak bagian yang dapat dilihat melalui (kebalikan dari oposisi bagian).
Metode
Memaksa karakter dengan Humanoid yang ditentukan untuk duduk di Kursi.
Terapkan dorongan sudut ke kumpulan.
Terapkan impuls ke kumpulan di kumpulan center of mass .
Terapkan impuls ke kumpulan di posisi yang ditentukan.
Kembalikan apakah bagian dapat bertabrakan satu sama lain.
Memeriksa apakah Anda dapat mengatur kepemilikan jaringan bagian.
Kembalikan tabel bagian yang terhubung ke objek dengan jenis persambungan kaku apa pun.
Kembalikan semua Persyaratan atau Batasan yang terhubung ke Bagian ini.
Kembalikan nilai properti Mass .
Kembalikan pemain saat ini yang merupakan pemilik jaringan dari bagian ini, atau nil dalam kasus server.
Kembali benar jika mesin permainan secara otomatis memutuskan pemilik jaringan untuk bagian ini.
Kembalikan bagian dasar dari kumpulan bagian.
Kembalikan tabel semua bagian BasePart.CanCollide nyata yang berpotongan dengan bagian ini.
Kembalikan kecepatan linier penggabungan bagian pada posisi yang diberikan relatif terhadap bagian ini.
Kembalikan benar jika objek terhubung ke bagian yang akan menahan di tempatnya (sebagai contoh bagian Anchored), jika tidak maka kembalikan false.
Mengubah ukuran objek seperti menggunakan alat perubah ukuran Studio.
Atur pemain yang diberikan sebagai pemilik jaringan untuk ini dan semua bagian yang terhubung.
Membiarkan mesin permainan dinamis memutuskan siapa yang akan menangani fisika bagian (salah satu klien atau server).
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Membuat baru IntersectOperation dari geometri tumpang tindih dari bagian dan bagian lain dalam array yang diberikan.
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Membuat baru UnionOperation dari bagian, minus geometri yang ditempati oleh bagian dalam array yang diberikan.
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Membuat baru UnionOperation dari bagian, plus geometri yang ditempati oleh bagian dalam array yang diberikan.
Mendapatkan pivot dari PVInstance .
Mengubah PVInstance bersama dengan semua keturunannya PVInstances sehingga pivot sekarang terletak di lokasi yang ditentukan CFrame .
Acara
Acara diwarisi dari BasePartMelepaskan api ketika bagian berhenti menyentuh bagian lain sebagai hasil dari gerakan fisik.
Melepaskan api ketika bagian menyentuh bagian lain sebagai hasil dari gerakan fisik.