RunService
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
RunService には、エクスペリエンスまたはスクリプトの実行コンテキス
RunService は、PreRender 、PreAnimation
コンテキストテスト結果
<tbody><tr><td>ライブプレイヤー</td><td><code>false</code></td><td><code>真実ならば</code></td><td><code>false</code></td><td /><td /><td /></tr><tr><td>ライブサーバー</td><td><code>false</code></td><td><code>false</code></td><td><code>真実ならば</code></td><td /><td /><td /></tr><tr><td>モード編集</td><td><code>真実ならば</code></td><td><code>真実ならば</code></td><td><code>真実ならば</code></td><td><code>真実ならば</code></td><td><code>false</code></td><td><code>false</code></td></tr><tr><td>協力的編集</td><td><code>真実ならば</code></td><td><code>真実ならば</code></td><td><code>false</code></td><td><code>真実ならば</code></td><td><code>false</code></td><td><code>false</code></td></tr><tr><td>実行モード</td><td><code>真実ならば</code></td><td><code>真実ならば</code></td><td><code>真実ならば</code></td><td><code>false</code></td><td><code>真実ならば</code></td><td><code>真実ならば</code></td></tr><tr><td>プレイモード (クライアント)</td><td><code>真実ならば</code></td><td><code>真実ならば</code></td><td><code>false</code></td><td><code>false</code></td><td><code>真実ならば</code></td><td><code>false</code></td></tr><tr><td>プレイモード (サーバー)</td><td><code>真実ならば</code></td><td><code>false</code></td><td><code>真実ならば</code></td><td><code>false</code></td><td><code>真実ならば</code></td><td><code>真実ならば</code></td></tr><tr><td>チームテスト (プレイヤー)</td><td><code>真実ならば</code></td><td><code>真実ならば</code></td><td><code>false</code></td><td><code>false</code></td><td><code>真実ならば</code></td><td><code>false</code></td></tr><tr><td>チームテスト (サーバー)</td><td><code>false</code></td><td><code>false</code></td><td><code>真実ならば</code></td><td><code>false</code></td><td><code>真実ならば</code></td><td><code>false</code></td></tr></tbody>
概要
方法
関数の名前と優先度を指定すると、このメソッドは関数を RunService.PreRender にバインドします。
クライアント上で現在の環境を実行しているかどうかを返します。
現在の環境が Edit モードにあるかどうかを返します。
スタジオでシミュレーションを実行するボタンが押されているかどうかを返します。
エクスペリエンスが現在実行されているかどうかを返します。
サーバー上で現在の環境が実行されているかどうかを返します。
現在の環境が Studio で実行されているかどうかを返します。
実行中のエクスペリエンスのシミュレーションを一時停止するか、物理とスクリプトを悬架します。
物理とスクリプトを実行してゲームのシミュレーションを実行します。
実行中の場合、エクスペリエンスのシミュレーションを停止します。
Class.RunService:BindToRenderStep() を使用してレンダリングループにバインドされた関数を解除します。
イベント
物理シミュレーションが完了した後、すべてのフレームを発射します。
物理シミュレーションが完了した後、すべてのフレームを発射します。
物理シミュレーションの前にすべてのフレームを発射しますが、レンダリング後にはすべてのフレームを発射します。
フレームがレンダリングされる前に、すべてのフレームを発射します。
物理シミュレーションの前に、すべてのフレームを発射します。
フレームがレンダリングされる前に、すべてのフレームを発射します。
物理シミュレーションの前に、すべてのフレームを発射します。
プロパティ
ClientGitHash
RunState
方法
BindToRenderStep
BindToRenderStep() 機能は、name 、priority 、および 1>Function1> を呼び出す時間を指定します。4> argumentCount4> は 3つあります:7>name7> 、BindToRenderStep()0> 、および 3>Function3> を呼び出す。
クライアントのレンダリングプロセスにバインドされているため、BindToRenderStep() はクライアントにのみ呼び出されることができます。
名前
name パラメータは、バインディングのラベルであり、RunService:UnbindFromRenderStep() がバインディングが不要になった場合に使用できます。
local RunService = game:GetService("RunService")
local function functionToBind() end
-- 上の関数を「tempBind」という名前のバインドにバインド
RunService:BindToRenderStep("tempBinding", 1, functionToBind)
-- 「tempBind」にバインドされた関数を解除
RunService:UnbindFromRenderStep("tempBinding")
優先度
バインディングの priority は整数です。これは、レンダリングステップ中にカスタム関数を呼び出す時間を決定します。この数値が低いほど、カスタム関数が呼び出される頻度が高くなります。2つのバインディングが同じ優先度を持つ場合、Roblox エンジンはランダムにそれを実行します。デフォルトの Roblox コ
- プレイヤーの入力: 100
- カメラコントロール: 200 便利なことに、Enum.RenderPriority 枚数を使用して、バインディングを設定する整数値を決定できます。たとえば、デフォルトのカメラ更アップデートの前にバインディングを設定するために、カメラの優先レベルレベルから 1 を控除すること。
Class.RunService:BindToRenderStep() を使用すると、必要な枚数の最後に .Value を使用する必要があります。RunService:BindToRenderStep() は、枚数が単所有で使用されている場合には機能しません。
local RunService = game:GetService("RunService")
local function beforeCamera(delta)
-- ここにあるコードは、デフォルトの Roblox カメラスクリプトの前に実行されます
end
RunService:BindToRenderStep("Before camera", Enum.RenderPriority.Camera.Value - 1, beforeCamera)
カスタム関数とデルタタイム
最後の引数 ( function ) は、呼び出すカスタム関数です。この関数は、開始時の以前のレンダリングステップと現在のレンダリングステップの間の時間を表示するパラメーター deltaTime を 1つパスします。
すべてのレンダリング更新は、レンダリングステップのコードが完了するまでを待ちます。BindToRenderStep() によって呼び出されたコードがすべて、実行を迅速かつ効率的に完了することを確認してください。コードが長すぎると、エクスペリエンスビジュアルが混乱する可能性があります。
パラメータ
バインディングの優先度を整数として指定します。これにより、レンダリングステップ中にカスタム関数を呼び出すタイミングが決まります。この数値が低いほど、カスタム関数が呼び出される時間が早くなります。2つのバインディングが同じ優先度を持つ場合、Roblox エンジンは最初に実行するカスタム関数をランダムに選択します。
カスタム関数がバインドされています。
戻り値
コードサンプル
local RunService = game:GetService("RunService")
-- How fast the frame ought to move
local SPEED = 2
local frame = script.Parent
frame.AnchorPoint = Vector2.new(0.5, 0.5)
-- A simple parametric equation of a circle
-- centered at (0.5, 0.5) with radius (0.5)
local function circle(t)
return 0.5 + math.cos(t) * 0.5, 0.5 + math.sin(t) * 0.5
end
-- Keep track of the current time
local currentTime = 0
local function onRenderStep(deltaTime)
-- Update the current time
currentTime = currentTime + deltaTime * SPEED
-- ...and the frame's position
local x, y = circle(currentTime)
frame.Position = UDim2.new(x, 0, y, 0)
end
-- This is just a visual effect, so use the "Last" priority
RunService:BindToRenderStep("FrameCircle", Enum.RenderPriority.Last.Value, onRenderStep)
--RunService.RenderStepped:Connect(onRenderStep) -- Also works, but not recommended
local RunService = game:GetService("RunService")
local function checkDelta(deltaTime)
print("Time since last render step:", deltaTime)
end
RunService:BindToRenderStep("Check delta", Enum.RenderPriority.First.Value, checkDelta)
local RunService = game:GetService("RunService")
-- Step 1: Declare the function and a name
local NAME = "Print Hello"
local function printHello()
print("Hello")
end
-- Step 2: Bind the function
RunService:BindToRenderStep(NAME, Enum.RenderPriority.First.Value, printHello)
-- Step 3: Unbind the function
RunService:UnbindFromRenderStep(NAME)
IsClient
このメソッドを実行するコードがクライアントコンテキスト (in a LocalScript , in a ModuleScript より要求されている場合
このメソッドが true を返すと、現在の環境は RunService.PreRender や Players.LocalPlayer などのクライアント専用機能にアクセスできます。
戻り値
現在の環境がクライアントを実行しているかどうか。
IsEdit
このメソッドは、現在の環境が「編集」モードであるかどうかを返します。たとえば、Studio では、エクスペリエンスが実行されていない場合に「編集」モードです。
IsEdit() は、シミュレーションが一時停止されている場合を除き、IsRunning() の逆を返します。これは、シミュレーションが一時停止されている場合にのみ、両方のメソッドが false を返すことです。
戻り値
現在の環境が「編集」モードであるかどうか。
IsRunMode
このメソッドは、Run ボタンを押して Studio でシミュレーションを実行するかどうかを返します。シミュレーションが true ボタンを使用して一時停止されている場合、シミュレーションが Stop ボタンを使用して停止された場合、シミュレーシ
注意:Studio は、 実行 ボタンを押すときだけ "実行" モードに入り、 プレイ ボタンは入力しません。また、このメソッドは、シミュレーションが開始された際に false を返すことに注意してください。1> Run1> ボタンを使用してシ
戻り値
Run ボタンを押して、Studio でシミュレーションを実行するかどうか。
IsRunning
エクスペリエンスが現在実行されているかどうかを返します。これは、シミュレーションが Run または Play ボタンを使用して実行されていることを意味します。
IsRunning() は、シミュレーションが一時停止されている場合を除き、IsEdit() の逆を常に返します。これは、シミュレーションが一時停止されている場合に、両方のメソッドが false を返すことです。
戻り値
エクスペリエンスが現在実行されているかどうか。
IsServer
このメソッドは、サーバー上で実行されているかどうかを返します。このメソッドを実行したコードがサーバーコンテ
この関数が true で返される場合、現在の環境は ServerStorage または ServerScriptService のようなサーバー専用機能にアクセスできます。
戻り値
現在の環境がサーバー上で実行しているかどうか。
IsStudio
このメソッドは、現在の環境が Studio で実行しているかどうかを返します。Studio でのみ実行する必要があるコードをラップするのに使用できます。
戻り値
現在の環境が Studio で実行されているかどうか。
Pause
このメソッドは、実行中のエクスペリエンスのシミュレーションを一時停止するか、物理とスクリプトを停止する場合、エクスペリエンスをシミュレートを開始することができます。シミュレートを一時停止すると、Run() または Studio の
戻り値
Run
このメソッドは、エクスペリエンスのシミュレーション (物理とスクリプト) を実行します。シミュレーションが実行されているとき、IsRunning() は true を返します。しかし、 Class.RunService:
戻り値
Stop
このメソッドは、実行中のエクスペリエンスのシミュレーションを停止します。シミュレーションが停止されると、 IsRunning() は false と IsEdit() を返します。2> tru
Studio の Stop ボタンとは対照的に、このメソッドを呼び出すと、エクスペリエンスを実行中の状態に戻すことはありません。これは、物理シミュレーションとスクリプトによってエクスペリエンスに行われた変更を意味します。これにより、物理シミュレーションとスクリプトによって行われた変更はすべて、シミュレーションが終了した後に持続します。
戻り値
UnbindFromRenderStep
Class.RunService:BindToRenderStep()|BindToRenderStep() に関数の名前を与えると、このメソッドは PreRender 中で呼び出される関数をバインド解除します。これは、要求されなくなった関数をバインド解除するときに使用されます。また、Class.RunService.PreRender のすべてのステップ
指定された名前にバインドされた関数がない場合、このメソッドは実行しませんし、エラーを発生させることなく続行します。
パラメータ
バインド解除される関数の名前。
戻り値
イベント
Heartbeat
Heartbeat イベントは、物理シミュレーションが完了した後にすべてのフレームで発動します。deltaTime 引数は、以前のフレームから経過時間を表示します。
このイベントは、ほとんどのスクリプトが実行されるときです。これは、各フレームの終わりに発生し、また、task ライブラリなどの待ちスクリプトが実行されるときです。Heartbeat は、コアゲームシステムの更新などの期間限定タスクに使用されることがよくあります。
このステップを実行すると、エンジンは レプリケーション 受信ステップの一部として、サーバーまたはクライアントにプロパティ更新とイベントを送信します。
パラメータ
前のフレームから経過した時間 (秒単位)。
PostSimulation
PostSimulation イベントは、物理シミュレーションが完了した後、毎フレームで発動します。deltaTimeSim 引数は、以前のフレームから経過時間を表示します。
このイベントは、シミュレーションの結果に最終調整を行うために便利です。このフェーズを終了すると、エンジンは Class.RunService.Heartbeat|Heartbeat イベントをトリガーします。
パラメータ
前のフレームから経過した時間 (秒単位)。
PreAnimation
PreAnimation イベントは、物理シミュレーションの前に毎フレームを発射しますが、レンダリング後には指定された時間を指し示します。deltaTimeSim 引数は、前のフレームから経過時間を表示します。
このイベントは、アニメーションオブジェクトを変更するのに便利です。たとえば、その速度や優先度を調整するなど。 PreAnimation イベントが完了すると、エンジンはこれらのアニメーションを実行し、共同変換を更新します。これにより、物理シミュレーション中にオブジェクトを更新するための更新後の変更が可能になります。
アニメーションがステップされた後、エンジンは PreSimulation イベントをトリガーします。
パラメータ
前のフレームから経過した時間 (秒単位)。
PreRender
PreRender イベント ( RenderStepped に相当する) は、フレームがレンダリングされる前にすべてのフレームを発動します。deltaTimeRender 引数は、前のフレームから経過時間を指します。
このイベントは、プレイヤーの画面に描画される前にコードを実行し、世界を更新できます。これは、オブジェクトの位置を変更したり、アニメーションを更新したり、ビジュアルエフェクトを準備するなど、最後の時間に実行するために便利です。ただし、このイベントで実行されるコードは、エンジンがこのイベントでフレームをレンダリン
As PreRender はクライアント側であるため、LocalScript 、ModuleScript によって要求される Class.LocalScript 、または1> Class.Script1> で使用でき
次の PreRender フェーズの後、シミュレーションフェーズは PreAnimation イベントで始まります。
パラメータ
前のフレームから経過した時間 (秒単位)。
PreSimulation
PreSimulation イベント (Stepped に相当) は、物理シミュレーションの前にすべてのフレームを発動します。deltaTimeSim 引数は、以前のフレームから経過時間を指します。
このイベントは、速度や力などのプロパティを調整するために使用されます。シミュレーションは、物理解析ソルバーが他のエンジンシステムよりも高い周波数で実行されるため、シミュレーションは、PostSimulation イベントを完了すると発動されます。これが完了すると、Class.RunService.PostSimulation|
パラメータ
前のフレームから経過した時間 (秒単位)。
RenderStepped
RenderStepped イベント ( PreRender に相当する ) は、フレームがレンダリングされる前にすべてのフレームを実行します。deltaTime 引数は、前のフレームから経過時間を表示します。
このイベントは、プレイヤーの画面に描画される前にコードを実行し、世界を更新できます。これは、オブジェクトの位置を変更したり、アニメーションを更新したり、ビジュアルエフェクトを準備するなど、最後の時間に実行するために便利です。ただし、このイベントで実行されるコードは、エンジンがこのイベントでフレームをレンダリン
As RenderStepped はクライアント側ですので、LocalScript 、ModuleScript によって要求される 1> Class.LocalScript1> 、または4> Class.Script</
次の RenderStepped フェーズの後、シミュレーションフェーズは PreAnimation イベントで始まります。
パラメータ
前のフレームから経過した時間 (秒単位)。
Stepped
Stepped イベント (PreSimulation に相当) は、物理シミュレーションの前にすべてのフレームを発動します。deltaTime 引数は、以前のフレームから経過時間を指します。
このイベントは、速度や力などのプロパティを調整するために使用されます。シミュレーションは、物理解析ソルバーが他のエンジンシステムよりも高い周波数で実行されるため、シミュレーションは、PostSimulation イベントを完了すると発動されます。これが完了すると、Class.RunService.PostSimulation|