PhysicsService
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
PhysicsService は、 コリジョングループ のメソッドを主に含む、パーツのセットが他のコリジョングループと衝突するかどうかを定義するクリッショングループを注册でき
衝突グループ間の衝突関係を作成、削除、および変更するのは、サーバー側の Scripts に限定されています。
スタジオとスクリプト内の使用詳細は 衝突フィルタ を参照してください。
概要
方法
2つのグループ間の衝突ステータスを設定します。
2つのグループが衝突するかどうかを返します。
最大のコリジョングループを返します。
すべての場プレースの衝突グループに関する情報を含むテーブルを返します。
衝突グループが登録されているかどうかをチェックします。
指定された名前で新しい衝突グループを登録します。
指定された衝突グループを名前変更します。
指定された名前の衝突グループを登録解除します。
プロパティ
方法
CollisionGroupSetCollidable
2つのグループ間の衝突ステータスを設定します。このメソッドは、グループの 1つが登録されていない場合にエラーが発生するため、PhysicsService:IsCollisionGroupRegistered() を通じて、各グループの登録を確認することをお勧めします。
パラメータ
戻り値
CollisionGroupsAreCollidable
2つの指定された衝突グループが衝突するかどうかを返します。このメソッドは、デフォルトの衝突マスクがすべてのグループに対応するため、注册されていない場合も true を返します。
パラメータ
戻り値
GetRegisteredCollisionGroups
すべての場プレースのコリジョングループに関する情報を含むテーブルを返します。返されたテーブルの各値は、自体がテーブルであり、2つのメンバーを含しています:
<tbody><tr><td>マスク</td><td>整数</td><td>衝突グループのマスク; 内部のみ使用。</td></tr><tr><td>名前</td><td>文字列</td><td>衝突グループの名前。</td></tr></tbody>
メンバー | タイプ | 説明 |
---|
戻り値
IsCollisionGroupRegistered
衝突グループが登録されているかどうかをチェックします。このメソッドを呼び出す前に、未登録の衝突グループに対するメソッドを呼び出すことをお勧めします、例えば PhysicsService:CollisionGroupSetCollidable() 。
パラメータ
戻り値
RegisterCollisionGroup
新しい衝突グループを登録します。名前は "Default" ではできません。
このメソッドは、ワークスペースの BaseParts の数に基づく軽微なパフォーマンスオーバーヘッドを持つため、Class.PhysicsService:UnregisterCollisionGroup()|UnregisterCollisionGroup() を通じてすべての衝突グルー
パラメータ
戻り値
コードサンプル
local PhysicsService = game:GetService("PhysicsService")
local collisionGroupBall = "CollisionGroupBall"
local collisionGroupDoor = "CollisionGroupDoor"
-- Register collision groups
PhysicsService:RegisterCollisionGroup(collisionGroupBall)
PhysicsService:RegisterCollisionGroup(collisionGroupDoor)
-- Assign parts to collision groups
script.Parent.BallPart.CollisionGroup = collisionGroupBall
script.Parent.DoorPart.CollisionGroup = collisionGroupDoor
-- Set groups as non-collidable with each other and check the result
PhysicsService:CollisionGroupSetCollidable(collisionGroupBall, collisionGroupDoor, false)
print(PhysicsService:CollisionGroupsAreCollidable(collisionGroupBall, collisionGroupDoor)) --> false
RenameCollisionGroup
指定された衝突グループを名前変更しますが、Class.BasePart.CollisionGroup|CollisionGroup のパーツの名前を変更しません。このメソッドの第1引数は、グループを名前変更するグループの
このメソッドは、次の場合にランタイムエラーをスローします:
- どちらの引数にも無効な名前を提供しました。
- メソッドはクライアントから呼び出されます。
このメソッドは、ワークスペースの BaseParts の数に基づく軽微なパフォーマンスオーバーヘッドを持つため、スタジオ 編集器 を介してすべてのコリジョングループを登録し、できるだけ頻繁に名前を変更することをお勧めします。
パラメータ
戻り値
UnregisterCollisionGroup
次の動作で、与えられた名前の衝突グループを登録解除します。
- 無効な名前が提供された場合、メソッドは何もしません。
- 予約名 "Default" が提供されている場合、 または メソッドがクライアントから呼び出されると、エラーが発生します。
- コリジョングループに入っているパーツが削除されると、そのパーツはまだ同じコリジョングループ名を持ち続けます。物理的な動作は、"Default" など、パーツが削除されたグループに置くことを推奨します。グループ を参照してください。
このメソッドは、ワークスペースの BaseParts の数に基づく軽微なパフォーマンスオーバーヘッドを持つため、スタジオ 編集器 を介してすべてのコリジョングループを登録することをお勧めします。このメソッドをできるだけ頻繁に呼び出すために Studio の エディタ を通じてすべて