ChangeHistoryService

非推奨を表示

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

作成できません
サービス

プラグイン開発者は、 必ず 、レコーディングでエクスペリエンスに変更を取り消し、やり直すようにスタジオに伝えるために ChangeHistoryService を使用する必要があります。変更を行う前に、プラグインは ChangeHistoryService:TryBeginRecording() を呼び出し、割り当てられた識別子を記憶し、変更後にプラグインは ChangeHistoryService:FinishRecording() を呼び出して記録を完了します。

プラグインは、ChangeHistoryService:Undo() または ChangeHistoryService:Redo() を介して、取り消しまたはやり直しをプログラマティックに呼び出すこともできます。

ChangeHistoryService は実行時に有効になっていないので、実行中のエクスペリエンスでそのメソッドを呼ぶことは効果がありません。

概要

方法

  • FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):()
    プラグインのセキュリティ

    特定の記録が完了し、最後の操作で記録を完了するためにスタジオに通知します。

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

    やり直すことができるアクションがあるかどうかを返し、ある場合は最後のものを返します。

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

    取り消し可能なアクションがあるかどうかを返し、ある場合は最後のものを返します。

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

    取り消された最後のアクションを実行します。

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

    履歴をクリアし、すべての取り消し/やり直しウェイポイントが削除されます。

  • SetEnabled(state : boolean):()
    プラグインのセキュリティ

    ChangeHistoryService が有効かどうかを設定します。

  • SetWaypoint(name : string):()
    プラグインのセキュリティ

    取り消しややり直しのポイントとして使用できる新しいウェイポイントを設定します。

  • TryBeginRecording(name : string,displayName : string?):string?
    プラグインのセキュリティ

    データモデルに行われた変更を記録に追跡開始します。

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

    最後に実行されたアクションを取り消し、それに対するウェイポイントが存在する

イベント

プロパティ

方法

FinishRecording

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

パラメータ

identifier: string

前の呼び出しからのレコードを識別します TryBeginRecording() 。操作が Enum.ChangeHistoryService.FinishRecordingOperation.Cancel である場合、この値は無視され、記録はコンテキストによって決定されます。

既定値: ""

取る操作を指定します。

既定値: ""
finalOptions: Dictionary

オプションの値のテーブルを OnFinishRecording にパスします。

既定値: ""

戻り値

()

コードサンプル

To commit an undo/redo record, you need to first call TryBeginRecording() followed by calling FinishRecording().

ChangeHistoryService:TryBeginRecording

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Nothing to do.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
if not recording then
-- Handle error here. This indidcates that your plugin began a previous
-- recording and never completed it. You may only have one recording
-- per plugin active at a time.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

GetCanRedo

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

やり直すことができるアクションがあるかどうかを返し、ある場合は最後のものを返します。


戻り値

GetCanUndo

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

取り消し可能なアクションがあるかどうかを返し、ある場合は最後のものを返します。


戻り値

IsRecordingInProgress

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

パラメータ

identifier: string
既定値: ""

戻り値

Redo

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

取り消された最後のアクションを実行します。


戻り値

()

ResetWaypoints

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

履歴をクリアし、すべての取り消し/やり直しウェイポイントが削除されます。


戻り値

()

SetEnabled

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

ChangeHistoryService が有効かどうかを設定します。[偽] に設定すると、取り消し/やり直しリストがクリアされ、再度満たされません。再度真に設定すると、元のリストは復元されませんが、さらに操作がリストに追加されます

パラメータ

state: boolean
既定値: ""

戻り値

()

SetWaypoint

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

このメソッドは、 すぐに廃止される ことになり、TryBeginRecording() のために。

ChangeHistoryService トラックプラグインの履歴をプロパティ変更のストリームとして記録します。SetWaypoint() は、そのプロパティ変更のストリームを切り、取り消しとやり直しのアクションが停止する場所を知るようにします。

通常、Studio のユーザーが発動するアクションは、 セットの変更をエクスペリエンスに完了した後、 SetWaypoint()を呼び出さなければならない変更のセットを呼び出す 以前 は、ウェイポイントを設定できなかった別の悪意のあるプラグインをクリーンアップできますが、自分のプラグインでそのような使用を正当化する理由は乏しいです。

パラメータ

name: string
既定値: ""

戻り値

()

コードサンプル

In order for the waypoints to work correctly, you need to set one both before AND after you perform the action that should be able to be undone.

ChangeHistoryService:SetWaypoint

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts > 0 then
-- Calling SetWaypoint before the work will not cause any issues, however
-- it is redundant, only the call AFTER the work is needed.
--ChangeHistoryService:SetWaypoint("Setting selection to neon")
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
-- Call SetWaypoint AFTER completing the work
ChangeHistoryService:SetWaypoint("Set selection to neon")
else
-- Nothing to do. You do not need to call SetWaypoint in the case where
-- the action did not end up making any changes to the experience.
end
end)

TryBeginRecording

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

このメソッドは、データモデルの変更を追跡する記録を開始します。あなた 将来の警告やエラーを避けるために、変更を行う前にそれを呼び出す必要があります。

記録が完了すると、返された記録識別子で FinishRecording() を呼び出して、記録を完了し、取り消し/やり直しスタックを更新します。

このメソッドは、記録を開始できない場合は nil を返します。プラグインにすでに記録が進行中であるか、ユーザーが 実行 または 再生 モードにある場合、記録は失敗します。

IsRecordingInProgress() を使用して、プラグインの記録ステータスをチェックできます。

パラメータ

name: string

ログとコーディングの目的に適したアクションの名前。

既定値: ""
displayName: string

ユーザーに表示するアクションの名前。

既定値: ""

戻り値

コードサンプル

To commit an undo/redo record, you need to first call TryBeginRecording() followed by calling FinishRecording().

ChangeHistoryService:TryBeginRecording

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Nothing to do.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
if not recording then
-- Handle error here. This indidcates that your plugin began a previous
-- recording and never completed it. You may only have one recording
-- per plugin active at a time.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

Undo

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

最後に実行されたアクションを取り消し、それに対するウェイポイントが存在する


戻り値

()

イベント

OnRecordingFinished

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

パラメータ

name: string

ログとコーディングの目的に適したアクションの名前。

displayName: string

ユーザーに表示するアクションの名前。

identifier: string

記録の識別子。

finalOptions: Dictionary

オプションのテーブル from FinishOperation()


OnRecordingStarted

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

パラメータ

name: string

ログとコーディングの目的に適したアクションの名前。

displayName: string

ユーザーに表示するアクションの名前。


OnRedo

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

ユーザーが戻りコマンドを反転させたときに発射されます。ウェイポイントは、戻り行動が行われたタイプアクションを説明します。

パラメータ

waypoint: string

OnUndo

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

ユーザーがスタジオでアクションを取り消したときに発射されます。ウェイポイントは取り消されたタイプアクションを説明します。

パラメータ

waypoint: string