プレイヤーキャラクターが座ることができる BasePart のタイプ。エネルギーシートオブジェクトに触れると、Weld によってパーツに接続され、デフォルトのキャラクタースクリプトが座席アニメーションを再生します。
座席はどうやって機能しますか?
Class.Humanoid と BasePart を含むモデルが「HumanoidRootPart」 (通常プレイヤーキャラクター) が座席に触れると
Class.Seat.Occupant プロパティは、Humanoid が座席に座っているのが「Humanoid.SeatPart」です。さらに、1>Class.Humanoid.SeatPart1> プロパティの人形は座席に座っています。
また、 Seat:Sit() 機能を使用して、キャラクターを座席に強制することもできます。
キャラクターがシートから出る方法は 2つあります。プレイヤーがジャンプすると、シートから削除されます。しかし、これは、座席の焼接を破壊するなど、手動でもできます:
座席:最初の子を見つける(「SeatWeld」):Destroy()
注:座席には、3秒のクールダウン (現在の場合、1人あたり 1 個の座席) があり、これは毎キャラクター毎の座席に基づいています。これは、1人が座席から出たとき、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)
概要
プロパティ
座席が使用可能かどうか。設定が「はい」の場合、座席は通常のパーツとして機能します。
座に座っている人間形。
オブジェクトの全体的な形状を設定します。
物理的に移動不可能なパーツを決定します。
パーツの組み立ての角度速度。
世界スペースのパーツアセンブリの中心。
部品の組み立ての直線速度。
パーツのアセンブリの合計質量。
アセンブリのルート部分に関する参照。
パーツの背面の表面タイプを決定します (+Z 方向)。
部品の下面の表面のタイプを決定します (-Y 方向)。
パーツの色を決める。
世界中の BasePart の位置と向きを決める。
パーツが他のパーツと衝突するかどうかを決定します。
空間クエリ操作中にパーツが検討されるかどうかを決定します。
パーツで Touched と TouchEnded イベントが発動するかどうかを決定します。
パーツがシャドウをキャストするかどうかを決定します。
パーツの中心マスが位置する世界の位置を説明します。
部品の衝突グループの名前を説明します。
パーツの色を決める。
パーツの現在の物理プロパティを示します。
パーツの複数の物理プロパティを決定します。
パーツやアセンブリで空気力を有効にまたは無効にする。
Class.BasePart の物理的エクセンツの BasePart 。
Class.BasePart の実際の物理サイズは、物理エンジンによって見られる。
パーツのフロント面のタイプ(-Z 方向)を決定します。
パーツの左側の表面のタイプを決定します (-X 方向)。
ローカルクライアントに表示されるのは、BasePart.Transparency のマルチプライヤーを決定します。
スタジオでパーツを選択できるかどうかを決定します。
部品の質量、密度、ボリュームの製品を説明します。
パーツが硬ボディの総質量または惰性に貢献しているかどうかを決定します。
パーツのテクスチャとデフォルトの物理プロパティを決定します。
Class.Material の名前。
世界のパーツの回転を説明します。
パーツのピボットのオフセットを CFrame から指定します。
部品の世界の位置を説明します。
最後に記アップデートされた物理の更新からの時間。
パーツがスカイボックスを反射する量を決めます。
サイズ変更メソッドによって許可される最小の変更を説明します。
パーツのサイズ変更が可能な顔を説明します。
パーツの右側面の表面の種類を決定します (+X 方向)。
アセンブリのルート部分を決定するための主要ルール。
3軸のパーツの回転
パーツのサイズ (長さ、幅、高さ) を決定します。
パーツのトップフェイスの表面の種類を決定します (+Y 方向)。
パーツの不透明度の逆にあるパーツの見える量を決めます。
方法
座に座るように指定されたキャラクターに Humanoid を与えます。
アセンダントなインパルスをアセンブリに適用します。
アセンダリーをアセンダリーの center of mass に適用します。
指定された位置にインパルスを適用します。
パーツが互いに衝突できるかどうかを返します。
パートのネットワーク所有権を設定できるかどうかをチェックします。
オブジェクトに接続されたパーツのテーブルを任意の剛性関節で返します。
このパーツに接続されているすべての共同または制限を返します。
Class.BasePart.Mass|Mass プロパティの値を返します。
このパートのネットワーク所有者が現在のプレイヤーであるか、サーバーの場合、nilです。
ゲームエンジンがこのパーツのネットワーク所有者を自動的に決定する場合、 true が返されます。
パーツのアセンブルのベース部分を返します。
このパーツとインターセクトする BasePart.CanCollide のすべての部分のテーブルを返します。
このパーツに関連するこの部分のアセンブリの直線速度を返します。
オブジェクトが配置するパーツに接続されている場合、Anchoredパーツなど、返りは Class.BasePart.Anchored|Anchored パーツです。
Studio サイズ変更ツールを使用すると、オブジェクトのサイズが変更されます。
これと接続されたすべての部品の所有者として指定されたプレイヤーを設定します。
ゲームエンジンは、パーツの物理を処理するプロセスをクライアントまたはサーバーの 1 つで処理するかをダイナミックに決定します。
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
パーツと他のパーツの重複するジオメトリから新しい IntersectOperation を作成します。
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Class.UnionOperation を作成します、Class.UnionOperation は、Class.UnionOperation のパーツのオートポイントによってオートポイントをオーバーライドします。
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
パーツ、および、パーツが入った配列のジオメトリを含む新しい UnionOperation をパーツから作成します。
Class.PVInstance のピボットを取得します。
Class.PVInstance とそのすべての子孫 PVInstances は、ピボットが指定の CFrame に移動します。