Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

Undo.RecordObject

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える
public static function RecordObject(objectToUndo: Object, name: string): void;
public static void RecordObject(Object objectToUndo, string name);

パラメーター

objectToUndo 変更予定のオブジェクトへの参照。
name Undo 履歴に表示されるアクション名 ( Undo メニュー内に表示されます) 。

説明

RecordObject が呼び出された後の変更点を記録します

ほぼすべてのプロパティーの変更点はこの関数で記録することができます。しかし、Transform の親の変更、コンポーネントの追加、オブジェクトの破棄はこの関数で記録することができないので専用の関数を使用してください。

内部的にはオブジェクトの状態を一時的にコピーしフレームの最後で差分を取り、正確に何が変更されたかを検出します。変更されたプロパティーは Undo スタックに保持されます。もし変更点がなにもない場合(バイナリの正確な比較はすべてのプロパティーで行われます) Undo スタックには保持されません。

以下は EffectRadius 変数を変更するためのエディタースクリプトの例です。 Undo 状態は Undo システムを用いて変更を戻すことのできる recorded になっています。


        
//Name this script "EffectRadiusEditor"
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(EffectRadius))] public class EffectRadiusEditor : Editor { public void OnSceneGUI() { EffectRadius t = (target as EffectRadius);

EditorGUI.BeginChangeCheck(); float areaOfEffect = Handles.RadiusHandle(Quaternion.identity, t.transform.position, t.areaOfEffect); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(target, "Changed Area Of Effect"); t.areaOfEffect = areaOfEffect; } } }

areaOfEffect の操作を見るために以下のスクリプトをゲームオブジェクトにアタッチし、シーンビューのギズモを用いて値を変更してください。


        
//Name this script "EffectRadius"
using UnityEngine;
using System.Collections;

public class EffectRadius : MonoBehaviour {

public float areaOfEffect = 1;

}