2017-06-21 13 views
2

C++で作成したネイティブプラグインと通信するエディタプラグインを作成しています。エディタが閉じようとしているときにネイティブプラグインに通知する必要があります。 Unityのdocで、エディタが終了したときを検出するために使用できるイベントまたはコールバック関数を探すのに数時間を費やしましたが、私は見つけられませんでした。エディタの終了/終了を検出する

通常、OnApplicationQuitOnApplicationPauseOnApplicationFocusは、スタンドアロンビルドでこのような何かのために使用されているが、それは

がこれを行うには任意の関数やイベントについて、誰を知っています動作しませんので、これは編集者のためにありますか?これには組み込みのソリューションがない場合、これを行うためのハックまたは他の方法がありますか?

+0

[破壊のエディタ](https://docs.unity3d.com/ScriptReference/EditorWindow.OnDestroy.html)? –

+0

あなたは、プラグインウィンドウを持っているときにこれを使用し、Windowsがいつ終了するのかを検出したい。私はエディタ自体が閉じようとしていることを検出したい。 – Programmer

答えて

2

エディタ自体のシャットダウンを検出するネイティブな方法はありません。

しかし、このanswerに記載されているように、プロキシ自体に接続して終了イベントを待つことができます。

可能であれば、代わりにC++側でこれを行うことが望ましいでしょう。多分

C++, How to determine if a Windows Process is running?

+0

シャットダウンを検出するネイティブな方法を探しているわけではありません。私はC#でそれを行う方法を探しています。そして、Unityが閉じていることを知らせるためにネイティブ関数を呼び出すことができます。問題は、C#のクローズを検出することです。 – Programmer

+0

また、私はネイティブ側にポインタを持ち、オブジェクトインスタンスを受け渡しするために使用されるC#側を持っているので、チェックプロセスは役に立ちません。私はC#側から現在のポインタを使用して、それをC + +側にハードウェアを無効にするために渡す必要があります。基本的にエディタのインスタンスは、プラグインに一致する必要があります。だからプロセスは、ポインタを取得する方法がないので、あなたの答えに感謝することはできません。 – Programmer

+0

その場合、私はそれが全くできないかもしれないことを恐れる。 –

関連する問題