プレイヤーキャラクターが「座る」ことができる BasePart のタイプ。キャラクターが有効なシートオブジェクトに触れると、Weld によってパーツに付属し、デフォルトのキャラクタースクリプトが座るアニメーションを再生します。
シートはどのように機能しますか?
モデルに Humanoid と BasePart が含まれているモデルが 'HumanoidRootPart' (一般的にプレイヤーキャラクター) を呼び出したとき、座席とパーツの間に Weld が作成されます。C0 および C1 プロパティは構成され、キャラクターが座席の上に 2 スタッド穴を結合されるようになります。この接合は「SeatWeld」と呼ばれ、シートに親属しています。
座っているときに Seat.Occupant プロパティは、座席に '座っている' Humanoid に設定されます。さらに、ヒューマノイドの Humanoid.SeatPart プロパティは、座席に設定されます。
キャラクターは、Seat:Sit() 関数を使用して座席に座らせることもできます。
キャラクターが座から出る方法は 2つあります。プレイヤーがジャンプすると、彼らは座席から削除されます。しかし、これは手動でも行うことができ、例えば、シート接合を破壊することです:
シート:FindFirstChild("SeatWeld"):Destroy()
ノートシートには、毎文字毎シートベースのクールダウン(現在 3秒)があります。つまり、キャラクターが座席から出た後、同じ座席に 3 秒間戻ることはできません。このクールダウン動作は変更される可能性があり、開発者には頼らないでください。
シートは何のために使用できますか?
シートには、明白からより非営業的な範囲まで、多様な使用があります。
- プログラミングの必要なしで椅子やベンチを作成する
- キャラクターが車両などの動くオブジェクトに「座る」ことを許可し、周りに飛ばされることなく
- Seat.Occupant プロパティを使用して、シートのキャラクターによって制御されるインターフェイスを作成する
コードサンプル
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)
概要
プロパティ
シートが使用可能かどうか。真に設定されると、シートは通常のパーツとして動作します。
座に座っているヒューマノイド。
オブジェクトの全体形状を設定します。
パーツが物理的に移動不可能かどうかを決定します。
部品の組み立ての角速度。
ワールドスペースでのパーツのアセンブリの質量の中心。
部品の組み立ての線速度。
パーツのアセンブリの総質量。
アセンブリの根部に対する参照。
パーツがオーディオシミュレーションと物理的に相互作用するかどうかを決定します。照明のための CastShadow と同様です。
部品の後面の表面タイプを決定します。
部品の底面の表面タイプを決定します。
部品の色を決定します。
世界の BasePart の位置と方向を決定します。
パーツが他のパーツと衝突できるかどうかを決定します。
パーツが空間クエリ操作で考慮されるかどうかを決定します。
Touched および TouchEnded イベントがパーツに発射するかどうかを決定します。
パーツがシャドウをキャストするかどうかを決定します。
部品の質量の中心が位置する世界の位置を説明します。
パーツの衝突グループの名前を記述します。
部品の色を決定します。
部品の現在の物理プロパティを示します。
部品の複数の物理的特性を決定します。
部品やアセンブリの空力を有効化または無効化するのに使用します。
物理エンジンによって見られる BasePart の実際のサイズ。
部品の前面の表面タイプを決定します。
部品の左面の表面タイプを決定します。
ローカルクライアントにしか表示されない BasePart.Transparency の乗数を決定します。
スタジオでパーツが選択可能かどうかを決定します。
部品の質量、密度とボリュームの積を記述します。
パーツが剛ボディの総質量または粘性に貢献するかどうかを決定します。
部品のテクスチャとデフォルトの物理プロパティを決定します。
名前の MaterialVariant 。
世界でのパーツの回転を説明します。
パーツのピボットのオフセットを、CFrame から指定します。
世界のパーツの位置を記述します。
最後の物理アップデート以来の時間。
パーツが天空ボックスをどの程度反映するかを決定します。
Resize() メソッドで許可される最小サイズ変更を説明します。
パーツがサイズ変更できる顔を説明します。
部品の右面の表面タイプを決定します。
アセンブリのルート部分を決定する主なルール。
3軸のためのパーツの回転度です。
部品の寸法 (長さ、幅、高さ) を決定します。
部品の上面のタイプを決定します。
パーツがどの程度透明に見えるかを決定します (パーツの不透明度の逆)。
方法
指定された Humanoid でキャラクターを座に座らせます。
アングルパルスをアセンブリに適用します。
アセンブリの center of mass にアインプルスを適用します。
指定された位置にアセンブリにインパルスを適用します。
パーツが互いに衝突できるかどうかを返します。
パーツのネットワーク所有権を設定できるかどうかをチェックします。
剛性ジョイントでオブジェクトに接続されたパーツのテーブルを返します。
このパーツに接続されているすべてのジョイントまたは制限を返す。
Mass プロパティの値を返します。
この部分のネットワーク所有者である現在のプレイヤーを返すか、nil は、サーバーの場合。
ゲームエンジンが自動的にこの部分のネットワーク所有者を決定する場合、真を返します。
パーツのアセンブリのベース部分を返します。
このパーツと交差するすべての BasePart.CanCollide 真のパーツの表を返します。
このパーツに対する位置に関連して、部品の組み立ての線速度を返します。
オブジェクトがそれを保持するパーツに接続されている場合 (例: Anchored パーツ) は真を返し、そうでない場合は false を返します。
Studio のサイズ変更ツールを使用するのと同じように、オブジェクトのサイズを変更します。
指定されたプレイヤーをこのネットワークの所有者とすべての接続部品の所有者とします。
ゲームエンジンが動的に、パーツの物理を処理する人 (クライアントの 1 人またはサーバー) を決定できます。
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
パーツとその他のパーツの重複する幾何学から新しい IntersectOperation を作成し、指定された配列に追加します。
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
パーツから新しい UnionOperation を作成し、指定されたアレイに含まれるパーツによって占有される幾何学を除きます。
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
パーツから新しい UnionOperation を作成し、指定された配列内のパーツによって占有された幾何学を加えます。
PVInstance のピボットを取得します。
変換する PVInstance とすべての子孫 PVInstances を通じて、ピボットが現在指定された CFrame に位置します。