path | シーンの保存先、空文字の場合、現在開いているシーンに上書き保存されます |
saveAsCopy | /true/ を設定すると、シーンを currentScene を変更せず、さらに保存されていないことを示す変更マーカーをクリアせずに保存します |
bool 保存が成功した場合はtrue、それ以外はfalseを返します。
開いているシーンを保存します
全てのパスは "Assets/MyScenes/MyScene.unity" のようにプロジェクトフォルダからの相対パスです。
パスで指定されたフォルダは関数を呼び出す前にすでに存在している必要があります。
パスが指定されていない場合は現在開いているシーンをパスとし、実行時にシーンが保存されていなかった場合を除いて、保存先を決めるダイアログが表示されます。
保存に失敗した場合、この関数はfalseを返します。これは特定のパスが無効、または保存ダイアログでユーザーがキャンセルを行った時に起こります。
関数を呼び出す時にファイルメニューを使用して保存した時のような、保存されていないことを示す変更マーカーはクリアされます。
(Windowsでは、保存されていないことを示すマーカーはウィンドウタイトルのファイル名の後にアスタリスクが表示されます。
Macではウィンドウの赤いクローズボタン内のドットになります。)
パスが指定された場合、 currentScene もまた特定のアセットになるよう変更されます。
/saveAsCopy/ が /true/ でありながら、 currentScene でない、または保存されていない場合、変更マーカーは変更されます。
See Also: currentScene.
300秒毎に現在のシーンを保存するシンプルなエディターウィンドウ
// Simple editor window that autosaves the working scene // Make sure to have this window opened to be able to execute the auto save. import UnityEditor; class SimpleAutoSave extends EditorWindow { var saveTime : float = 300; var nextSave : float = 0; @MenuItem("Example/Simple autoSave") static function Init() { var window : SimpleAutoSave = EditorWindow.GetWindowWithRect( SimpleAutoSave, Rect(0,0,165,40)); window.Show(); } function OnGUI() { EditorGUILayout.LabelField("Save Each:", saveTime + " Secs"); var timeToSave : int = nextSave - EditorApplication.timeSinceStartup; EditorGUILayout.LabelField("Next Save:", timeToSave.ToString() + " Sec"); this.Repaint(); if(EditorApplication.timeSinceStartup > nextSave) { var path : String [] = EditorApplication.currentScene.Split(char.Parse("/")); path[path.Length -1] = "AutoSave_" + path[path.Length-1]; EditorApplication.SaveScene(String.Join("/",path), true); Debug.Log("Saved Scene"); nextSave = EditorApplication.timeSinceStartup + saveTime; } } }