private string PluginVersionsString() { string[] moduleInfoStrings = ModuleInfosToAlignedString( (from item in pluginInfos select item.info).ToList() ).Split(new string[] { System.Environment.NewLine }, System.StringSplitOptions.None); int platformLength = pluginInfos.Max(item => (item != null) ? item.platform.Length : 0); string platformFormat = string.Format("{{0,-{0}}} ", platformLength); string s = ""; s += "CRIWARE Unity Plugin Script Version" + System.Environment.NewLine + " Ver." + CriWare.GetScriptVersionString() + System.Environment.NewLine + System.Environment.NewLine + "CRIWARE Unity Plugin Binary Version" + System.Environment.NewLine; for (int i = 0; i < pluginInfos.Count; i++) { s += " " + string.Format(platformFormat, pluginInfos[i].platform) + moduleInfoStrings[i] + System.Environment.NewLine; } return(s); }
private void OnGUI() { EditorGUILayout.BeginVertical(); { { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Copy To Clipboard", GUILayout.Width(180))) { EditorGUIUtility.systemCopyBuffer = PluginVersionsString(); GUI.FocusControl(""); } if (GUILayout.Button("Reload", GUILayout.Width(80))) { Reload(); GUI.FocusControl(""); } EditorGUILayout.EndHorizontal(); } /* スクリプトバージョン表示 */ { EditorGUILayout.LabelField("Script Version"); EditorGUI.indentLevel++; EditorGUILayout.LabelField("Ver." + CriWare.GetScriptVersionString()); EditorGUI.indentLevel--; } EditorGUILayout.Space(); /* バイナリバージョン表示 */ { EditorGUILayout.LabelField("Binary Version"); } EditorGUI.indentLevel++; /* プラットフォーム別プラグインバイナリバージョン表示 */ { EditorGUILayout.BeginVertical(); GUILayoutOption platformColumnWidth = GUILayout.Width(80); GUILayoutOption targetColumnWidth = GUILayout.Width(120); GUILayoutOption versionColumnWidth = GUILayout.Width(140); GUILayoutOption buildDateColumnWidth = GUILayout.Width(200); GUILayoutOption appendixColumnWidth = GUILayout.Width(200); GUILayoutOption pathColumnWidth = GUILayout.Width(400); if (pluginInfos != null) { foreach (var info in pluginInfos) { EditorGUILayout.BeginHorizontal(); { if (GUILayout.Button(info.platform, EditorStyles.radioButton, platformColumnWidth)) { /* 表示の制限のため表示可能な文字数で切り出す */ detailVersionsString = ModuleInfosToAlignedString(info.moduleVersionInfos); detailVersionsStrings = SplitTextAreaMaxLength(detailVersionsString); scrollPosition = new Vector2(0.0f, 0.0f); GUI.FocusControl(""); } if (info.info != null) { EditorGUILayout.LabelField((info.target ?? "--"), targetColumnWidth); EditorGUILayout.LabelField((info.info.version ?? "--"), versionColumnWidth); EditorGUILayout.LabelField((info.info.buildDate ?? "--"), buildDateColumnWidth); EditorGUILayout.LabelField((info.info.appendix ?? "--"), appendixColumnWidth); } else { EditorGUILayout.LabelField("--", targetColumnWidth); EditorGUILayout.LabelField("--", versionColumnWidth); EditorGUILayout.LabelField("--", buildDateColumnWidth); EditorGUILayout.LabelField("--", appendixColumnWidth); } EditorGUILayout.LabelField(info.path, pathColumnWidth); } EditorGUILayout.EndHorizontal(); } } EditorGUILayout.EndVertical(); } EditorGUI.indentLevel--; /* 詳細バージョン情報表示 */ { if (GUILayout.Button("Copy Detail To Clipboard", GUILayout.Width(180))) { EditorGUIUtility.systemCopyBuffer = detailVersionsString; GUI.FocusControl(""); } scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition); EditorGUILayout.BeginVertical(); foreach (var item in detailVersionsStrings) { EditorGUILayout.TextArea(item); } EditorGUILayout.EndVertical(); EditorGUILayout.EndScrollView(); } } EditorGUILayout.EndVertical(); }