ゲームオブジェクトのスクリプトが「Missing」になった時のリカバリー
このような時に出来るだけ素早く元に戻す。
まずこのような事になる場合
- Unityの管理外でスクリプト名の変更をした
- Unityの管理外でスクリプトファイルの階層構成を変更した
が挙げられます。つまり、Unityが把握してない所で変更したら「誰だお前!?」となる。
Missingになった時でもデータは保持されている
Missingになっていてもシリアライズされたデータは保持されている。
なのでシリアライズされたプロパティのデータの型やプロパティ名を、既存の(MonoBehaviourを継承した)クラスのプロパティと照らし合わせ、一致しているものが多い順に表示してみた。
一番一致しているプロパティが多いものはGoogleみたいに「もしかして」を付けてみた。
現在の問題点としては
Missingとなった時のプロパティの照らし合わせで配列(Generic、Array)とUnityEngine.ObjectとEnumは照らし合わせを行っていない。ちょっと面倒なので...
MonoBehaviourのCustomEditorを作成しているので、他でMonoBehaviourのCustomEditorを作成していたらどっちかが動作しなくなる。
EditorMonoBehaviour作ってみた
MonoBehaviourと同じような使い方すると理解されやすいんじゃないかと思って。
EditorMonoBehaviourを継承して使用します。
最初はEditorApplicationのラッパーになりそう。 便利で実装ややこしいと思ったものは追加していきます。
AssetPostprocessor
この情報はUnity Documentation Tabsでも閲覧することが出来ます
Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です
スクリプトファイルを生成した時に呼び出されるOnGeneratedCSProjectFiles
ドキュメント化されてないけど知っておくと便利
using UnityEngine; using UnityEditor; public class NewBehaviourScript : AssetPostprocessor { static void OnGeneratedCSProjectFiles () { Debug.Log ("call"); } }
TextureImporterSettings.spriteExtrude
この情報はUnity Documentation Tabsでも閲覧することが出来ます
Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です
spriteExtrudeが1の時
spriteExtrudeが16の時
Hierarchyをカスタマイズ(新しくHierarchyを作る)
虫眼鏡のところに「お気に入り」を選択できるようにしてみました。
お気に入り機能は本来はUnityプロジェクト内のアセット検索に使用されますが、特に使ってない問題ないのでHierarchyの検索でも使用します。
使い方
まずお気に入り登録しましょう
そうすると「NewHierarchyウィンドウ」の虫眼鏡の所に追加されます。
「NewHierarchyウィンドウ」はNewHierarchyWindow.csを追加した時に自動的に「Hierarchyウィンドウ」の横に追加されます。
※注意・・・「Hierarchyウィンドウ」を消してはいけません。バグる。
以下ソースコード
痛Monodevelop
2015年10月21日 Monodevelop バージョンが 5.9.6 になりました。また、Unity関連の Add-in をすべて入れているのでデバッガー動きます。
できること
- TextAreaに背景画像
- GIF対応 (ちょっと重い)
編集の仕方
GIF の場合は TextArea_Background.png を消した後、 TextArea_Background.gif を置く。
Mac
Monodevelop.app/Contents/Resources
にある画像を差し替えればOK
Windows
main/build/bin/branding
にある画像を差し替えればOK
インストーラー
Mac
Windows
Unity でGameController
会社にGameControllerが届いたのでいじった時に作成したラッパー