主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ
書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。
2022/06/27
Unity で Ctrl + D
によるコピーを検出したい場合のやり方です。
といってもカンタンで、 hierarchyWindowItemOnGUI
でヒエラルキーの OnGUI
を受け取ってそこで処理してあげるだけ。
あとは、 delayCall
で処理を遅延させないと activeGameObject
がコピー元のままなので注意。
[InitializeOnLoad]
public static class DetectDuplicateEvent
{
static DetectDuplicateEvent()
{
EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyWindowItemOnGUI;
}
private static void OnHierarchyWindowItemOnGUI(int instanceId, Rect selection)
{
if (Event.current?.commandName == "Duplicate")
EditorApplication.delayCall += OnDelayCall;
}
private static void OnDelayCall()
{
EditorApplication.delayCall -= OnDelayCall;
var go = Selection.activeGameObject;
}
}
ということで、メモでした。