Last active
December 30, 2015 16:39
-
-
Save baba-s/7855967 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.Collections.Generic; | |
using UnityEditor; | |
using UnityEngine; | |
/// <summary> | |
/// チートシートのウィンドウ | |
/// </summary> | |
public class CheatSheet : EditorWindow | |
{ | |
// ホットキーのテーブル | |
private static readonly HotkeyTable[] HOTKEY_TABLES = | |
{ | |
new HotkeyTable( | |
"Tool", | |
"Q", "パン", | |
"W", "移動", | |
"E", "回転", | |
"R", "拡大/縮小", | |
"Z", "ギズモの表示位置を切り替え", | |
"X", "ギズモの回転設定を切り替え", | |
"V", "頂点スナッピング", | |
"Ctrl+マウス左ボタン", "スナッピング"), | |
new HotkeyTable( | |
"Game Object", | |
"Ctrl+Shift+N", "game objectを生成する", | |
"Ctrl+Alt+F", "ビューに移動", | |
"Ctrl+Shift+F", "ビューに位置合わせ"), | |
new HotkeyTable( | |
"Window", | |
"Ctrl+1", "Scene", | |
"Ctrl+2", "Game", | |
"Ctrl+3", "Inspector", | |
"Ctrl+4", "Hierarchy", | |
"Ctrl+5", "Project", | |
"Ctrl+6", "Animation", | |
"Ctrl+7", "Profiler", | |
"Ctrl+9", "Asset store", | |
"Ctrl+0", "Animation", | |
"Ctrl+Shift+C", "Console"), | |
new HotkeyTable( | |
"Edit", | |
"Ctrl+Z", "取り消す", | |
"Ctrl+Y", "やり直す", | |
"Ctrl+X", "カット", | |
"Ctrl+C", "コピー", | |
"Ctrl+V", "貼り付け", | |
"Ctrl+D", "複製", | |
"Shift+Del", "削除", | |
"F", "選択項目をフレームの中央に", | |
"Ctrl+F", "検索", | |
"Ctrl+A", "全ての項目を選択", | |
"Ctrl+P", "再生", | |
"Ctrl+Shift+P", "ポーズ", | |
"Ctrl+Alt+P", "ステップ実行"), | |
new HotkeyTable( | |
"Selection", | |
"Ctrl+Shift+1", "1から選択状況をロード", | |
"Ctrl+Shift+2", "2から選択状況をロード", | |
"Ctrl+Shift+3", "3から選択状況をロード", | |
"Ctrl+Shift+4", "4から選択状況をロード", | |
"Ctrl+Shift+5", "5から選択状況をロード", | |
"Ctrl+Shift+6", "6から選択状況をロード", | |
"Ctrl+Shift+7", "7から選択状況をロード", | |
"Ctrl+Shift+8", "8から選択状況をロード", | |
"Ctrl+Shift+9", "9から選択状況をロード", | |
"Ctrl+Alt+1", "1に選択状況をセーブ", | |
"Ctrl+Alt+2", "2に選択状況をセーブ", | |
"Ctrl+Alt+3", "3に選択状況をセーブ", | |
"Ctrl+Alt+4", "4に選択状況をセーブ", | |
"Ctrl+Alt+5", "5に選択状況をセーブ", | |
"Ctrl+Alt+6", "6に選択状況をセーブ", | |
"Ctrl+Alt+7", "7に選択状況をセーブ", | |
"Ctrl+Alt+8", "8に選択状況をセーブ", | |
"Ctrl+Alt+9", "9に選択状況をセーブ"), | |
new HotkeyTable( | |
"Assets", | |
"Ctrl+R", "リフレッシュ"), | |
}; | |
private Vector2 mScrollPos; // スクロールの座標 | |
/// <summary> | |
/// チートシートのウィンドウを開きます | |
/// </summary> | |
[MenuItem("Tools/Open/Cheat Sheet")] | |
private static void Open() | |
{ | |
GetWindow<CheatSheet>("Cheat Sheet"); | |
} | |
/// <summary> | |
/// チートシートのウィンドウのGUIを作成します | |
/// </summary> | |
private void OnGUI() | |
{ | |
EditorGUILayout.BeginVertical(); | |
mScrollPos = EditorGUILayout.BeginScrollView(mScrollPos, GUILayout.Height(position.height)); | |
foreach (var hotkeyTable in HOTKEY_TABLES) | |
{ | |
EditorGUILayout.LabelField(hotkeyTable.Title, EditorStyles.boldLabel); | |
foreach (var hotkey in hotkeyTable.Hotkeys) | |
{ | |
EditorGUILayout.LabelField(hotkey.Key, hotkey.Command); | |
} | |
EditorGUILayout.Space(); | |
} | |
EditorGUILayout.EndScrollView(); | |
EditorGUILayout.EndVertical(); | |
} | |
/// <summary> | |
/// ホットキーのデータ | |
/// </summary> | |
private class HotkeyData | |
{ | |
private readonly string mKey; // 入力キー | |
private readonly string mCommand; // コマンド | |
public string Key { get { return mKey; } } // 入力キーを取得します | |
public string Command { get { return mCommand; } } // コマンドを取得します | |
/// <summary> | |
/// コンストラクタ | |
/// </summary> | |
public HotkeyData(string key, string command) | |
{ | |
mKey = key; | |
mCommand = command; | |
} | |
} | |
/// <summary> | |
/// ホットキーのテーブル | |
/// </summary> | |
private class HotkeyTable | |
{ | |
private readonly string mTitle; // タイトル | |
private readonly HotkeyData[] mHotkeys; // ホットキーのデータを管理する配列 | |
public string Title { get { return mTitle; } } // タイトルを取得します | |
public IEnumerable<HotkeyData> Hotkeys { get { return mHotkeys; } } // ホットキーのデータを管理する配列を取得します | |
/// <summary> | |
/// コンストラクタ | |
/// </summary> | |
public HotkeyTable(string title, params string[] hotkeys) | |
{ | |
var hotkeyNum = hotkeys.Length / 2; | |
mTitle = title; | |
mHotkeys = new HotkeyData[hotkeyNum]; | |
for (int i = 0; i < hotkeyNum; i++) | |
{ | |
var hotkeyIndex = i * 2; | |
var key = hotkeys[hotkeyIndex]; | |
var command = hotkeys[hotkeyIndex + 1]; | |
mHotkeys[i] = new HotkeyData(key, command); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment