Unity自定義快捷鍵鎖inspector

本文固定鏈接,轉發請評論點贊

一、起因:

沒啥,就是想寫。

二、實現過程:

1、先貼代碼,如下:

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

public class InspectorLockTest 
{
    [MenuItem("Tools/Toggle Inspector lock %#l")]
    static public void ToggleInspectorLock()
    {
        var inspectorType = typeof(Editor).Assembly.GetType("UnityEditor.InspectorWindow");

        var isLocked = inspectorType.GetProperty("isLocked",System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);

        var inspectorWindow = EditorWindow.GetWindow(inspectorType);

        var state = isLocked.GetGetMethod().Invoke(inspectorWindow, new object[] { });

        isLocked.GetSetMethod().Invoke(inspectorWindow, new object[] { !(bool)state });
    }
}

代碼就不解釋了,反正是通過反射獲取方法,實現功能。

2、效果:
這是沒有按快捷鍵ctrl+shift+l之前的效果圖:
在這裏插入圖片描述
下面是按了的效果圖:
在這裏插入圖片描述

三、這玩意有什麼用?

這個東西就是鎖定顯示某個gameobject,如果鎖住了,你點其他的gameobject也不會在inspector中顯示該gameobject的屬性。只會顯示鎖定之前你選中的那個。

四、附錄:

附帶上Unity快捷鍵的特殊符號:

To create a hotkey you can use the following special characters: % (ctrl on Windows, cmd on macOS), # (shift), & (alt). 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章