メンバ変数に格納すると参照をすぐに見いだせる。当たり前だけど参照そのもは破棄はされていないことが確認できた。親子関係だけ外れてしまったのでは?前項で調べた通り、参照先は失われていなかったので描画対象ではなくなったのではと考え、子の数を調べる関数でチェックを行った。子の数を保持しているプロパティ。ここで外れてしまう親子関係だけどうにかするのも手としてはありなのだけどもう一歩踏み込んでみた。親子関係は破壊されるけれども参照先として’MovieClip’が保持される事が分かったのでこれをもうちょっと掘り進めたら以下のようになる実装になっているということが分かった。次のフレームでは親子関係が破棄されている。その場で生成する場合はメンバに格納すべき。描画した場合は親子関係が破棄される。記述した場合は問題なく保持される。対策List形式とかで生成したやつは全部格納しておき、そこからアクセスするとか。色んなパターンを調べてやっとこの結論に至ったのだけれども間違いがあったらご指摘いただきたい。おまけuniSWFの問題点uniSWFはswf化してからunityに取り込むので何かするにもFlaファイルを開かなければならないのでアプリケーション常に2つ立ち上げっぱなし。flaの素材編集となるとphotoshopも立ち上げなければならない。photoshopのデータで曲線使ってたりするとillustratorも...ちょっとしたレイアウト調整がGameObjectのInspectorでできない。やれるけど標準的ではない。ソフトウェアレンダリングなので最初の1フレームはデバイスの画面によって拡大縮小された表示が見える。ドローコール減らせない。unityのアップグレードにどこまでついて来れるのやら心配。ドキュメントが完成してない。実は実装済みでドキュメントに記載が無いって事も多々ある。swf作成のお約束が多い。フォントサイズも不自由。uniSWFの使いどころアニメーション作業がしやすいのでガチャみたいな画面全域で表示しつつ演出過剰にしたい場所では作業を完全に切り分けられるのでオススメ。monoDevelopでソースが見れるのでswfがどういう構造になってるのか勉強になるかも。演出だけは突出した真価を発揮する。uniSWFをコレからも宜しくお願いします。s2kw[Unity3D][UnityEditor]EditorWindowの最小構成からボタン配置やらサブウィンドウの生成やらコメントをどうぞ[wp_ad_camp_1]最小構成ファイルをProjectのRootにEditorフォルダを作成し、その中に各種エディター的機能を使用するクラスを格納させておく必要がある。(Asset/Editor/)EditorはUnityEditorライブラリを使用し、ウィンドウを表示するのであればEditorWindowを継承させておく。メニュー項目が追加される。それをクリックするとデバッグログに文字列を表示する。}}メニュー項目への表示は[]で囲われた範囲で、ディレクトリ階層を指定できる。その次の行にあたるstatic関数が呼ばれる。この時の関数名は何でもいい。Windowの出現コードを次の様に書き換える。変更した場所はDebag.Logから自身のクラスの型でEditorWindowによるGetWindowクラスで生成したwindowをキャストする。}}次の関数がウィンドウ生成している。サンプルは格納後に即座に開放して参照を切っているが、生成はちゃんとなされているのでOnGUI()で指定した動作は行われる。);このウィンドウだけでウィンドウそのものを生成することはできるけど、各種初期設定をすることになるので、自身の型で参照を保ったまま、各種プロパティを変更しておく方が望ましい。EditorWindowオブジェクトのプロパティやメソッドは次に一覧されている。http://docs.unity3d.com/Documentation/ScriptReference/EditorWindow.htmlプロパティ一覧wantsMouseMoveBOOLマウスイベントを取得するか否かを指定。初期化関数であるabcd()を次の様に追加してみる。}すると、ウィンドウ生成直後に適当なサイズで文字列を表示できる。この文字列は数秒で消えるので注意喚起とか、複数のウィンドウを開いたり閉じたりさせる場合に現在のプレファブ名だとかを表示されることで、意識的に編集できるようになり、ヒューマンエラーを防止できる。開いた時でなくても、windowに参照さえあれば次の様に記述してイベント事に確認したいことを表示することができる。window.ShowNotification(content);表示できるのはイベントが発生したときや独自の通知を受けた時。EditorWindowクラス側が用意しているイベントは次の通り。here.描画されたときに走る。ウィンドウ内のレイアウトを切ったりするのもここ。windows.表示中のウィンドウは漏れなく秒間100回呼び出される。update秒間10回の頻度で更新されるインスペクタ上のUpdate関数。closed.windowを閉じた時に呼ばれる。changed.SceneやHierarchy内でクリックする等して選択が変更される度に呼ばれる。ウィンドウとは無関係で呼ばれる。Selectionクラスから色々取得できる。focus.アクティブになるとOnFocusが、非アクティブになるとOnLostFocusが呼ばれます。changed.ヒエラルキーが変わったら呼ばれる。ヒエラルキーの変動で読み直しすべきデータがあるのであれば読み直しを記述する。changed.プロジェクトが変わったら呼ばれる。データを読み込んで何かを表示しているのであれば、ここに読み直しの処理等を記述する。OnSelectionChangeのサンプル次のコードで選択しているオブジェクトのIDをずらっと表示できる。オブジェクトを選択する都度呼ばれる。}http://docs.unity3d.com/Documentation/ScriptReference/EditorWindow.OnSelectionChange.htmlウィンドウからさらにウィンドウを出現させるサブウィンドウ用にクラス内クラスを用意。}で、親ウィンドウ側にはボタンから呼び出す様に次ぎのように記述を変更、追加する。}SubWindowクラスに定義したWillAppearを呼び出す。呼び出されたサブクラス側はサイズやらタイトルが差し替えられて以下のように出現する。