RunService

非推奨を表示

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

作成できません
サービス
複製されていません

RunService には、エクスペリエンスまたはスクリプトの実行コンテキス

RunService は、PreRenderPreAnimation

コンテキストテスト結果

<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>

概要

プロパティ

方法

  • BindToRenderStep(name : string,priority : number,function : function):void

    関数の名前と優先度を指定すると、このメソッドは関数を RunService.PreRender にバインドします。

  • 並列書き込み

    クライアント上で現在の環境を実行しているかどうかを返します。

  • プラグインのセキュリティ
    並列書き込み

    現在の環境が Edit モードにあるかどうかを返します。

  • 並列書き込み

    スタジオでシミュレーションを実行するボタンが押されているかどうかを返します。

  • エクスペリエンスが現在実行されているかどうかを返します。

  • 並列書き込み

    サーバー上で現在の環境が実行されているかどうかを返します。

  • 並列書き込み

    現在の環境が Studio で実行されているかどうかを返します。

  • Pause():void
    プラグインのセキュリティ

    実行中のエクスペリエンスのシミュレーションを一時停止するか、物理とスクリプトを悬架します。

  • Run():void
    プラグインのセキュリティ

    物理とスクリプトを実行してゲームのシミュレーションを実行します。

  • Stop():void
    プラグインのセキュリティ

    実行中の場合、エクスペリエンスのシミュレーションを停止します。

  • Class.RunService:BindToRenderStep() を使用してレンダリングループにバインドされた関数を解除します。

イベント

プロパティ

ClientGitHash

読み取り専用
複製されていません
並列読み取り
Robloxのスクリプトセキュリティ
複製されていません
並列読み取り
プラグインのセキュリティ

方法

BindToRenderStep

void

BindToRenderStep() 機能は、namepriority 、および 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() によって呼び出されたコードがすべて、実行を迅速かつ効率的に完了することを確認してください。コードが長すぎると、エクスペリエンスビジュアルが混乱する可能性があります。

パラメータ

name: string

バインディングが不要になった場合は、Unbind にラベルを付けます。

priority: number

バインディングの優先度を整数として指定します。これにより、レンダリングステップ中にカスタム関数を呼び出すタイミングが決まります。この数値が低いほど、カスタム関数が呼び出される時間が早くなります。2つのバインディングが同じ優先度を持つ場合、Roblox エンジンは最初に実行するカスタム関数をランダムに選択します。

function: function

カスタム関数がバインドされています。


戻り値

void

コードサンプル

Frame Moving in Circle

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
RunService Custom Function

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)
Bind and Unbind a Function

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.PreRenderPlayers.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

void
プラグインのセキュリティ

このメソッドは、実行中のエクスペリエンスのシミュレーションを一時停止するか、物理とスクリプトを停止する場合、エクスペリエンスをシミュレートを開始することができます。シミュレートを一時停止すると、Run() または Studio の


戻り値

void

Run

void
プラグインのセキュリティ

このメソッドは、エクスペリエンスのシミュレーション (物理とスクリプト) を実行します。シミュレーションが実行されているとき、IsRunning()true を返します。しかし、 Class.RunService:


戻り値

void

Stop

void
プラグインのセキュリティ

このメソッドは、実行中のエクスペリエンスのシミュレーションを停止します。シミュレーションが停止されると、 IsRunning()falseIsEdit() を返します。2> tru

Studio の Stop ボタンとは対照的に、このメソッドを呼び出すと、エクスペリエンスを実行中の状態に戻すことはありません。これは、物理シミュレーションとスクリプトによってエクスペリエンスに行われた変更を意味します。これにより、物理シミュレーションとスクリプトによって行われた変更はすべて、シミュレーションが終了した後に持続します。


戻り値

void

UnbindFromRenderStep

void

Class.RunService:BindToRenderStep()|BindToRenderStep() に関数の名前を与えると、このメソッドは PreRender 中で呼び出される関数をバインド解除します。これは、要求されなくなった関数をバインド解除するときに使用されます。また、Class.RunService.PreRender のすべてのステップ

指定された名前にバインドされた関数がない場合、このメソッドは実行しませんし、エラーを発生させることなく続行します。

パラメータ

name: string

バインド解除される関数の名前。


戻り値

void

イベント

Heartbeat

Heartbeat イベントは、物理シミュレーションが完了した後にすべてのフレームで発動します。deltaTime 引数は、以前のフレームから経過時間を表示します。

このイベントは、ほとんどのスクリプトが実行されるときです。これは、各フレームの終わりに発生し、また、task ライブラリなどの待ちスクリプトが実行されるときです。Heartbeat は、コアゲームシステムの更新などの期間限定タスクに使用されることがよくあります。

このステップを実行すると、エンジンは レプリケーション 受信ステップの一部として、サーバーまたはクライアントにプロパティ更新とイベントを送信します。

パラメータ

deltaTime: number

前のフレームから経過した時間 (秒単位)。


PostSimulation

PostSimulation イベントは、物理シミュレーションが完了した後、毎フレームで発動します。deltaTimeSim 引数は、以前のフレームから経過時間を表示します。

このイベントは、シミュレーションの結果に最終調整を行うために便利です。このフェーズを終了すると、エンジンは Class.RunService.Heartbeat|Heartbeat イベントをトリガーします。

パラメータ

deltaTimeSim: number

前のフレームから経過した時間 (秒単位)。


PreAnimation

PreAnimation イベントは、物理シミュレーションの前に毎フレームを発射しますが、レンダリング後には指定された時間を指し示します。deltaTimeSim 引数は、前のフレームから経過時間を表示します。

このイベントは、アニメーションオブジェクトを変更するのに便利です。たとえば、その速度や優先度を調整するなど。 PreAnimation イベントが完了すると、エンジンはこれらのアニメーションを実行し、共同変換を更新します。これにより、物理シミュレーション中にオブジェクトを更新するための更新後の変更が可能になります。

アニメーションがステップされた後、エンジンは PreSimulation イベントをトリガーします。

パラメータ

deltaTimeSim: number

前のフレームから経過した時間 (秒単位)。


PreRender

PreRender イベント ( RenderStepped に相当する) は、フレームがレンダリングされる前にすべてのフレームを発動します。deltaTimeRender 引数は、前のフレームから経過時間を指します。

このイベントは、プレイヤーの画面に描画される前にコードを実行し、世界を更新できます。これは、オブジェクトの位置を変更したり、アニメーションを更新したり、ビジュアルエフェクトを準備するなど、最後の時間に実行するために便利です。ただし、このイベントで実行されるコードは、エンジンがこのイベントでフレームをレンダリン

As PreRender はクライアント側であるため、LocalScriptModuleScript によって要求される Class.LocalScript 、または1> Class.Script1> で使用でき

次の PreRender フェーズの後、シミュレーションフェーズは PreAnimation イベントで始まります。

パラメータ

deltaTimeRender: number

前のフレームから経過した時間 (秒単位)。


PreSimulation

PreSimulation イベント (Stepped に相当) は、物理シミュレーションの前にすべてのフレームを発動します。deltaTimeSim 引数は、以前のフレームから経過時間を指します。

このイベントは、速度や力などのプロパティを調整するために使用されます。シミュレーションは、物理解析ソルバーが他のエンジンシステムよりも高い周波数で実行されるため、シミュレーションは、PostSimulation イベントを完了すると発動されます。これが完了すると、Class.RunService.PostSimulation|

パラメータ

deltaTimeSim: number

前のフレームから経過した時間 (秒単位)。


RenderStepped

RenderStepped イベント ( PreRender に相当する ) は、フレームがレンダリングされる前にすべてのフレームを実行します。deltaTime 引数は、前のフレームから経過時間を表示します。

このイベントは、プレイヤーの画面に描画される前にコードを実行し、世界を更新できます。これは、オブジェクトの位置を変更したり、アニメーションを更新したり、ビジュアルエフェクトを準備するなど、最後の時間に実行するために便利です。ただし、このイベントで実行されるコードは、エンジンがこのイベントでフレームをレンダリン

As RenderStepped はクライアント側ですので、LocalScriptModuleScript によって要求される 1> Class.LocalScript1> 、または4> Class.Script</

次の RenderStepped フェーズの後、シミュレーションフェーズは PreAnimation イベントで始まります。

パラメータ

deltaTime: number

前のフレームから経過した時間 (秒単位)。


Stepped

Stepped イベント (PreSimulation に相当) は、物理シミュレーションの前にすべてのフレームを発動します。deltaTime 引数は、以前のフレームから経過時間を指します。

このイベントは、速度や力などのプロパティを調整するために使用されます。シミュレーションは、物理解析ソルバーが他のエンジンシステムよりも高い周波数で実行されるため、シミュレーションは、PostSimulation イベントを完了すると発動されます。これが完了すると、Class.RunService.PostSimulation|

パラメータ

time: number

Class.RunService が実行している期間 (in 秒)。

deltaTime: number

前のフレームから経過した時間 (秒単位)。