2014年8月29日金曜日

Unity2.7(Free)を使うときにUnity4.5で警告が出る問題への対処

NGUIの無料版が公開されているので使ってたらwarningがうっとうしかったので対処のメモ。
すぐに対処したければNGUI270Reviveを使う。

自分でソースを書き換える場合は以下のようにする。


NGUIEditorToolsのUndo.RegisterUndoはUndo.RecordObjectに書き換える。
NGUIMenuのUndo.RegisterSceneUndoはその直後に書いてあるObjectを生成した後でUndo.RegisterCreatedObjectUndoをする。

Undo.RegisterSceneUndo("Add a Label");

UILabel lbl = NGUITools.AddWidget<UILabel>(go);

UILabel lbl = NGUITools.AddWidget<UILabel>(go);
Undo.RegisterCreatedObjectUndo(lbl, "Add a Label");

みたいな感じ

Assets/NGUI/Scripts/Editor/NGUIEditorTools.cs(712,30): warning CS0618: `UnityEditor.Undo.RegisterSceneUndo(string)' is obsolete: `Use DestroyObjectImmediate, RegisterCreatedObjectUndo or RegisterUndo instead.'
の対処としては、else以下を消す。
ただし、参照先も少し書き換える。
NGUISelectionTools.cs (62, 20): NGUIEditorTools.RegisterUndo("Add New Child");
Undo.RegisterCreatedObjectUndoにする。
UICreateNewUIWizard.cs (70, 19): NGUIEditorTools.RegisterUndo("Create New UI");
ifとelse内両方でUndo.RegisterCreatedObjectUndoに書き換え
UICreateWidgetWizard.cs (180, 20): NGUIEditorTools.RegisterUndo("Add a Widget");
はUndo.RecordObject(go, "Add a Widget");にすればいいみたい(もっと良いやり方があれば誰か教えてください)

残りは単純に
EditorGUIUtility.LookLikeControls(80f);
みたいになっているところを
EditorGUIUtility.labelWidth = 80f;
EditorGUIUtility.fieldWidth = 0f;
に変えていくだけ。