PhysicsService

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

作成できません
サービス

PhysicsService は、 コリジョングループ のメソッドを主に含む、パーツのセットが他のコリジョングループと衝突するかどうかを定義するクリッショングループを注册でき

衝突グループ間の衝突関係を作成、削除、および変更するのは、サーバー側の Scripts に限定されています。

スタジオとスクリプト内の使用詳細は 衝突フィルタ を参照してください。

概要

方法

プロパティ

方法

CollisionGroupSetCollidable

void

2つのグループ間の衝突ステータスを設定します。このメソッドは、グループの 1つが登録されていない場合にエラーが発生するため、PhysicsService:IsCollisionGroupRegistered() を通じて、各グループの登録を確認することをお勧めします。

パラメータ

name1: string
name2: string
collidable: bool

戻り値

void

CollisionGroupsAreCollidable

2つの指定された衝突グループが衝突するかどうかを返します。このメソッドは、デフォルトの衝突マスクがすべてのグループに対応するため、注册されていない場合も true を返します。

パラメータ

name1: string
name2: string

戻り値

GetMaxCollisionGroups

エンジンがサポートする最大のコリジョングループを返します。この値は現在 32 です。


戻り値

GetRegisteredCollisionGroups

すべての場プレースのコリジョングループに関する情報を含むテーブルを返します。返されたテーブルの各値は、自体がテーブルであり、2つのメンバーを含しています:


<tbody>
<tr>
<td>マスク</td>
<td>整数</td>
<td>衝突グループのマスク; 内部のみ使用。</td>
</tr>
<tr>
<td>名前</td>
<td>文字列</td>
<td>衝突グループの名前。</td>
</tr>
</tbody>
メンバータイプ説明

戻り値

IsCollisionGroupRegistered

衝突グループが登録されているかどうかをチェックします。このメソッドを呼び出す前に、未登録の衝突グループに対するメソッドを呼び出すことをお勧めします、例えば PhysicsService:CollisionGroupSetCollidable()

パラメータ

name: string

戻り値

RegisterCollisionGroup

void

新しい衝突グループを登録します。名前は "Default" ではできません。

このメソッドは、ワークスペースの BaseParts の数に基づく軽微なパフォーマンスオーバーヘッドを持つため、Class.PhysicsService:UnregisterCollisionGroup()|UnregisterCollisionGroup() を通じてすべての衝突グルー

パラメータ

name: string

戻り値

void

コードサンプル

PhysicsService:RegisterCollisionGroup

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

void

指定された衝突グループを名前変更しますが、Class.BasePart.CollisionGroup|CollisionGroup のパーツの名前を変更しません。このメソッドの第1引数は、グループを名前変更するグループの

このメソッドは、次の場合にランタイムエラーをスローします:

  • どちらの引数にも無効な名前を提供しました。
  • メソッドはクライアントから呼び出されます。

このメソッドは、ワークスペースの BaseParts の数に基づく軽微なパフォーマンスオーバーヘッドを持つため、スタジオ 編集器 を介してすべてのコリジョングループを登録し、できるだけ頻繁に名前を変更することをお勧めします。

パラメータ

from: string
to: string

戻り値

void

UnregisterCollisionGroup

void

次の動作で、与えられた名前の衝突グループを登録解除します。

  • 無効な名前が提供された場合、メソッドは何もしません。
  • 予約名 "Default" が提供されている場合、 または メソッドがクライアントから呼び出されると、エラーが発生します。
  • コリジョングループに入っているパーツが削除されると、そのパーツはまだ同じコリジョングループ名を持ち続けます。物理的な動作は、"Default" など、パーツが削除されたグループに置くことを推奨します。グループ を参照してください。

このメソッドは、ワークスペースの BaseParts の数に基づく軽微なパフォーマンスオーバーヘッドを持つため、スタジオ 編集器 を介してすべてのコリジョングループを登録することをお勧めします。このメソッドをできるだけ頻繁に呼び出すために Studio の エディタ を通じてすべて

パラメータ

name: string

戻り値

void

イベント