From d697a3db4d2a0b63001037fd87aef9ea467514d2 Mon Sep 17 00:00:00 2001 From: Hibnu Hishath <37605842+sliptrixx@users.noreply.github.com> Date: Thu, 1 Jul 2021 01:51:30 +0530 Subject: [PATCH] Upgrade to Version 0.2 (#4) * Added the option to ctrl + click a https link to open in the url in default browser * Figured out a way to set default command string that the users can override if needed * Added colors to console log + option to configure default color * Added a feature to automatically scan and populate the developer console * Added interface and background code to support admin access * Add support for Input System (#3) * Added support for users using the Unity Input System package * A small update that adds identical functionality for both the old input system and the new one * Updating package info preparing for a merge into main --- Commands/AdminPasswordCmd.asset | 18 +++ Commands/AdminPasswordCmd.asset.meta | 8 ++ Commands/ClearCmd.asset | 1 + Commands/ConsoleHelpCmd.asset | 4 +- Commands/VersionCmd.asset | 1 + Prefabs/DeveloperConsole.prefab | 19 ++- Scripts/ConsoleCommand.cs | 7 + Scripts/DeveloperConsole.cs | 54 +++++++- Scripts/DeveloperConsoleUI.cs | 131 ++++++++++++++++-- Scripts/Log.cs | 17 ++- Scripts/OpenHyperlinks.cs | 46 ++++++ Scripts/OpenHyperlinks.cs.meta | 11 ++ Scripts/Prebuilt Commands/AdminPassword.cs | 44 ++++++ .../Prebuilt Commands/AdminPassword.cs.meta | 11 ++ Scripts/Prebuilt Commands/Clear.cs | 6 + Scripts/Prebuilt Commands/ConsoleHelp.cs | 6 + Scripts/Prebuilt Commands/Version.cs | 6 + com.hibzz.console.asmdef | 3 +- package.json | 2 +- 19 files changed, 372 insertions(+), 23 deletions(-) create mode 100644 Commands/AdminPasswordCmd.asset create mode 100644 Commands/AdminPasswordCmd.asset.meta create mode 100644 Scripts/OpenHyperlinks.cs create mode 100644 Scripts/OpenHyperlinks.cs.meta create mode 100644 Scripts/Prebuilt Commands/AdminPassword.cs create mode 100644 Scripts/Prebuilt Commands/AdminPassword.cs.meta diff --git a/Commands/AdminPasswordCmd.asset b/Commands/AdminPasswordCmd.asset new file mode 100644 index 0000000..44823de --- /dev/null +++ b/Commands/AdminPasswordCmd.asset @@ -0,0 +1,18 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d3207b6ef524bbf4ab60aaff0685ac30, type: 3} + m_Name: AdminPasswordCmd + m_EditorClassIdentifier: + CommandWord: admin + RequiresAdminAccess: 0 + IncludeInScan: 1 + password: default diff --git a/Commands/AdminPasswordCmd.asset.meta b/Commands/AdminPasswordCmd.asset.meta new file mode 100644 index 0000000..552dea0 --- /dev/null +++ b/Commands/AdminPasswordCmd.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59f2102d7131cfb44a22b8e4464783a2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Commands/ClearCmd.asset b/Commands/ClearCmd.asset index 1d2a3d8..1432f81 100644 --- a/Commands/ClearCmd.asset +++ b/Commands/ClearCmd.asset @@ -13,3 +13,4 @@ MonoBehaviour: m_Name: ClearCmd m_EditorClassIdentifier: CommandWord: Clear + IncludeInScan: 1 diff --git a/Commands/ConsoleHelpCmd.asset b/Commands/ConsoleHelpCmd.asset index 084083d..b2492a0 100644 --- a/Commands/ConsoleHelpCmd.asset +++ b/Commands/ConsoleHelpCmd.asset @@ -12,4 +12,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: fcb07d569c9537847a1a5c4157a6dda0, type: 3} m_Name: ConsoleHelpCmd m_EditorClassIdentifier: - CommandWord: help.console + CommandWord: console.help + RequiresAdminAccess: 1 + IncludeInScan: 1 diff --git a/Commands/VersionCmd.asset b/Commands/VersionCmd.asset index 3290ee3..7b4357a 100644 --- a/Commands/VersionCmd.asset +++ b/Commands/VersionCmd.asset @@ -13,3 +13,4 @@ MonoBehaviour: m_Name: VersionCmd m_EditorClassIdentifier: CommandWord: version + IncludeInScan: 1 diff --git a/Prefabs/DeveloperConsole.prefab b/Prefabs/DeveloperConsole.prefab index 37ab17c..12c9d08 100644 --- a/Prefabs/DeveloperConsole.prefab +++ b/Prefabs/DeveloperConsole.prefab @@ -180,14 +180,16 @@ MonoBehaviour: m_EditorClassIdentifier: prefix: / commands: - - {fileID: 11400000, guid: 4d8fc261eb820ce49886d68aa0614237, type: 2} + - {fileID: 11400000, guid: 59f2102d7131cfb44a22b8e4464783a2, type: 2} - {fileID: 11400000, guid: be8a611cc43be5744b79767982cea0ac, type: 2} - {fileID: 11400000, guid: 20ec1ca2bbd44e94faca660ddbecfd80, type: 2} + - {fileID: 11400000, guid: 4d8fc261eb820ce49886d68aa0614237, type: 2} uiCanvas: {fileID: 855559481631051708} inputField: {fileID: 855559482485143244} logUI: {fileID: 855559482330210214} UIPanel: {fileID: 855559481754126820} activationKeyCode: 47 + defaultColor: {r: 1, g: 1, b: 1, a: 1} --- !u!1 &855559481445711384 GameObject: m_ObjectHideFlags: 0 @@ -598,6 +600,7 @@ GameObject: - component: {fileID: 855559482330210215} - component: {fileID: 855559482330210209} - component: {fileID: 855559482330210214} + - component: {fileID: 7293943294563688969} m_Layer: 0 m_Name: LogTexts m_TagString: Untagged @@ -672,7 +675,7 @@ MonoBehaviour: m_fontColor32: serializedVersion: 2 rgba: 4290361785 - m_fontColor: {r: 0.7254902, g: 0.7254902, b: 0.7254902, a: 1} + m_fontColor: {r: 1, g: 1, b: 1, a: 1} m_enableVertexGradient: 0 m_colorMode: 3 m_fontColorGradient: @@ -731,6 +734,18 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7293943294563688969 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855559482330210212} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a1931b4d0e739dd4581f9dc652b20ad2, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &855559482485143282 GameObject: m_ObjectHideFlags: 0 diff --git a/Scripts/ConsoleCommand.cs b/Scripts/ConsoleCommand.cs index 97818f3..95f1160 100644 --- a/Scripts/ConsoleCommand.cs +++ b/Scripts/ConsoleCommand.cs @@ -9,8 +9,15 @@ namespace Hibzz.Console { public abstract class ConsoleCommand : ScriptableObject { + [Tooltip("The keyword to execute this command")] [SerializeField] public string CommandWord = string.Empty; + [Tooltip("Does the command requires admin access")] + [SerializeField] public bool RequiresAdminAccess = false; + + [Tooltip("This property provides the option to exclude a command from scan")] + [SerializeField] public bool IncludeInScan = true; + // abstract class that children must implement public abstract bool Process(string[] args); } diff --git a/Scripts/DeveloperConsole.cs b/Scripts/DeveloperConsole.cs index 0bc00b2..9247773 100644 --- a/Scripts/DeveloperConsole.cs +++ b/Scripts/DeveloperConsole.cs @@ -6,6 +6,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Text.RegularExpressions; using UnityEngine; namespace Hibzz.Console @@ -16,7 +17,9 @@ public class DeveloperConsole private readonly IEnumerable commands; // registered list of commands private CyclicQueue logs; // data structure used to store the logs - private int scrollPos = 0; // variable that keeps track of current scroll position + private int scrollPos = 0; // variable that keeps track of current scroll position + + private bool AdminAccess = false; // does the console have admin access at the moment? /// /// constructor that takes in a prefix and list of commands @@ -71,6 +74,9 @@ public void ProcessCommand(string commandInput, string[] args) if(!commandInput.Equals(command.CommandWord, StringComparison.OrdinalIgnoreCase)) { continue; } + // if the command requires admin acceess and if the console currently has no admin access, then don't execute the command + if(command.RequiresAdminAccess && !AdminAccess) { return; } + if(!command.Process(args)) { // TODO: Print "invalid args" @@ -103,10 +109,11 @@ public string GetLogs() } /// - /// Add a log with the given message + /// Add a log with the given message and color /// /// The message to print - public void AddLog(string message) + /// The color of the message + public void AddLog(string message, Color color) { // if not all the way to the bottom, // then increment the scroll position so that the user sees the latest log @@ -115,7 +122,10 @@ public void AddLog(string message) ++scrollPos; } - logs.Enqueue(new Log(message)); + // detect the links + message = DetectLinks(message); + + logs.Enqueue(new Log(message, color)); } /// @@ -147,5 +157,41 @@ public void ScrollDown() ++scrollPos; scrollPos = Mathf.Clamp(scrollPos, 0, logs.Count); } + + /// + /// Detects strings and replace them with link tags + /// + /// The message to look for links in + /// A string where the urls are replaced with links + private string DetectLinks(string message) + { + Regex regex = new Regex("https://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?", RegexOptions.IgnoreCase); + MatchCollection matches = regex.Matches(message); + + foreach (Match match in matches) + { + message = message.Replace(match.Value, "" + match.Value + ""); + } + + return message; + } + + /// + /// Gives console admin access + /// + public void RequestAdminAccess() + { + AdminAccess = true; + Debug.Log("Granted admin access to the console"); + } + + /// + /// Revokes console admin access + /// + public void RewokeAdminAccesss() + { + AdminAccess = false; + Debug.Log("Revoked admin acceess to the console"); + } } } \ No newline at end of file diff --git a/Scripts/DeveloperConsoleUI.cs b/Scripts/DeveloperConsoleUI.cs index a93438e..8e39190 100644 --- a/Scripts/DeveloperConsoleUI.cs +++ b/Scripts/DeveloperConsoleUI.cs @@ -7,14 +7,18 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; +using UnityEditor; + +#if ENABLE_INPUT_SYSTEM + using UnityEngine.InputSystem; +#endif namespace Hibzz.Console { - public class DeveloperConsoleUI : MonoBehaviour { [SerializeField] private string prefix = string.Empty; - [SerializeField] private ConsoleCommand[] commands = new ConsoleCommand[0]; + [SerializeField] private List commands = new List(); [Header("UI")] [SerializeField] private GameObject uiCanvas = null; @@ -23,13 +27,25 @@ public class DeveloperConsoleUI : MonoBehaviour [SerializeField] private GameObject UIPanel = null; [Header("Input")] + #if ENABLE_INPUT_SYSTEM + [SerializeField] private Key activationKey = Key.Slash; + #else [SerializeField] private KeyCode activationKeyCode = KeyCode.Slash; + #endif + + [Header("Visuals")] + [SerializeField] private Color defaultColor = Color.white; + public Color DefaultColor + { + get { return defaultColor; } + set { defaultColor = value; UpdateDefaultColor(); } + } // Singleton UI instancce - private static DeveloperConsoleUI instance; + public static DeveloperConsoleUI instance; private DeveloperConsole developerConsole; - private DeveloperConsole DeveloperConsole + public DeveloperConsole DeveloperConsole { get { @@ -60,7 +76,11 @@ private void Awake() private void Update() { - if(Input.GetKeyDown(activationKeyCode)) + #if ENABLE_INPUT_SYSTEM + if(Keyboard.current[activationKey].wasPressedThisFrame) + #else + if (Input.GetKeyDown(activationKeyCode)) + #endif { ActivateConsole(); } @@ -68,8 +88,13 @@ private void Update() // If hovered and scrolling if(IsHoveredOverConsole()) { - // print scroll + // get the mouse scroll delta from the mouse + #if ENABLE_INPUT_SYSTEM + Vector2 scrollvec = Mouse.current.scroll.ReadValue(); + #else Vector2 scrollvec = Input.mouseScrollDelta; + #endif + if(scrollvec.y > 0) { DeveloperConsole.ScrollUp(); @@ -84,6 +109,11 @@ private void Update() } } + private void OnValidate() + { + UpdateDefaultColor(); + } + /// /// Toggle the UI /// @@ -101,7 +131,7 @@ public void ActivateConsole() if(!inputField.isFocused) { uiCanvas.SetActive(true); - inputField.text += ((char)activationKeyCode); + inputField.text += prefix; inputField.ActivateInputField(); inputField.caretPosition = inputField.text.Length; } @@ -114,7 +144,11 @@ public void ActivateConsole() public void ProcessCommand(string input) { // if return wasn't pressed that frame, then don't process the command +#if ENABLE_INPUT_SYSTEM + if(!Keyboard.current[Key.Enter].wasPressedThisFrame) { return; } +#else if(!Input.GetKeyDown(KeyCode.Return)) { return; } +#endif DeveloperConsole.ProcessCommand(input); inputField.text = string.Empty; @@ -124,9 +158,10 @@ public void ProcessCommand(string input) /// Add message as a log to the logger /// /// The message to add - private void AddLog(string message) + /// The color of the message + private void AddLog(string message, Color color) { - DeveloperConsole.AddLog(message); + DeveloperConsole.AddLog(message, color); UpdateLogText(); } @@ -136,7 +171,17 @@ private void AddLog(string message) /// the message to add public static void Log(string message) { - instance.AddLog(message); + instance.AddLog(message, instance.DefaultColor); + } + + /// + /// Static function that adds a log to the singleton instance + /// + /// The message to add + /// The color of the message + public static void Log(string message, Color color) + { + instance.AddLog(message, color); } /// @@ -163,8 +208,13 @@ public static void Clear() private bool IsHoveredOverConsole() { PointerEventData pointerEventData = new PointerEventData(EventSystem.current); // can be cached - pointerEventData.position = Input.mousePosition; +#if ENABLE_INPUT_SYSTEM + pointerEventData.position = Mouse.current.position.ReadValue(); +#else + pointerEventData.position = Input.mousePosition; +#endif + List raycastResults = new List(); // can be cached as well EventSystem.current.RaycastAll(pointerEventData, raycastResults); @@ -185,5 +235,64 @@ private void UpdateLogText() { logUI.text = developerConsole.GetLogs(); } + + /// + /// Updates the default color of other elements assosciated with it + /// + private void UpdateDefaultColor() + { + logUI.color = defaultColor; + } + +#if UNITY_EDITOR + + /// + /// [Editor only function] Scans for new commands + /// + public void Scan() + { + // clear the list of existing commands + commands.Clear(); + + // use tags to scan the asset database + string[] guids = AssetDatabase.FindAssets("t:" + typeof(ConsoleCommand).Name); + foreach(string guid in guids) + { + // get the command from the guid + string path = AssetDatabase.GUIDToAssetPath(guid); + ConsoleCommand command = AssetDatabase.LoadAssetAtPath(path); + + // if the command is marked to include in the scan, + // then we add it to the list of commands + if (command.IncludeInScan) + { + commands.Add(command); + } + } + } + +#endif } + +#if UNITY_EDITOR + + [CustomEditor(typeof(DeveloperConsoleUI))] + public class DeveloperConsoleInspector : Editor + { + public override void OnInspectorGUI() + { + // Draw the default inspector and some spacing below it + DrawDefaultInspector(); + GUILayout.Space(10); + + // Draw a button that scans for new commands + DeveloperConsoleUI console = target as DeveloperConsoleUI; + if(GUILayout.Button("Scan for Commands", GUILayout.Height(25))) + { + console.Scan(); + } + } + } + +#endif } \ No newline at end of file diff --git a/Scripts/Log.cs b/Scripts/Log.cs index 46e0881..b39c660 100644 --- a/Scripts/Log.cs +++ b/Scripts/Log.cs @@ -14,18 +14,29 @@ public class Log { public readonly string message; public readonly DateTime time; + public readonly Color color; - // constructor - public Log(string message) + // constructor with custom color + public Log(string message, Color color) { this.message = message; this.time = DateTime.Now; + this.color = color; } // Format and print the log message public new string ToString() { - return "[" + time.ToString("hh:mm") + "] " + message; + string result = "[" + time.ToString("hh:mm") + "] " + message; + + // if the color isn't the default color, then add the custom color tags + if(color != DeveloperConsoleUI.instance.DefaultColor) + { + result = "" + + result + ""; + } + + return result; } } } \ No newline at end of file diff --git a/Scripts/OpenHyperlinks.cs b/Scripts/OpenHyperlinks.cs new file mode 100644 index 0000000..33da636 --- /dev/null +++ b/Scripts/OpenHyperlinks.cs @@ -0,0 +1,46 @@ +/* Description: Script that makes links clicakble and openable in textmeshpro (with richtext enabled) + * Author: Hibnu Hishath (sliptrixx) + * Date: 28th June, 2021 + */ + +using UnityEngine; +using TMPro; +using UnityEngine.EventSystems; + +#if ENABLE_INPUT_SYSTEM +using UnityEngine.InputSystem; +#endif + +namespace Hibzz.Console +{ + [RequireComponent(typeof(TMP_Text))] + public class OpenHyperlinks : MonoBehaviour, IPointerClickHandler + { + private TMP_Text text = null; // A reference to the text to look through + + private void Start() + { + text = GetComponent(); + } + + public void OnPointerClick(PointerEventData eventData) + { + // This enables ctrl + click to open the link + #if ENABLE_INPUT_SYSTEM + if(!Keyboard.current[Key.LeftCtrl].isPressed) { return; } + #else + if(!Input.GetKey(KeyCode.LeftControl)) { return; } + #endif + + // find if the text at the given position has any links in it + int linkIndex = TMP_TextUtilities.FindIntersectingLink(text, Input.mousePosition, null); + + // if the link is clicked, then get the link id by the link index and open it + if(linkIndex != -1) + { + TMP_LinkInfo linkInfo = text.textInfo.linkInfo[linkIndex]; + Application.OpenURL(linkInfo.GetLinkID()); + } + } + } +} \ No newline at end of file diff --git a/Scripts/OpenHyperlinks.cs.meta b/Scripts/OpenHyperlinks.cs.meta new file mode 100644 index 0000000..fd23b6d --- /dev/null +++ b/Scripts/OpenHyperlinks.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a1931b4d0e739dd4581f9dc652b20ad2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Scripts/Prebuilt Commands/AdminPassword.cs b/Scripts/Prebuilt Commands/AdminPassword.cs new file mode 100644 index 0000000..9cff066 --- /dev/null +++ b/Scripts/Prebuilt Commands/AdminPassword.cs @@ -0,0 +1,44 @@ +/* Description: Grants console admin access if the password entered matches + * Author: Hibnu Hishath (sliptrixx) + * Date: 18 June, 2021 + */ + +using UnityEngine; + +namespace Hibzz.Console +{ + [CommandTooltip("Grants console admin access if the password entered matches")] + [CreateAssetMenu(fileName = "AdminPasswordCmd", menuName = "Console/Built-in Commands/Admin Passsword")] + public class AdminPassword : ConsoleCommand + { + [Tooltip("Please don't use \"revoke\" as a password")] + [SerializeField] private string password = "default"; + + public AdminPassword() + { + CommandWord = "admin"; + IncludeInScan = false; // Use something more secure if needed, this is a simple example + } + + public override bool Process(string[] args) + { + // if the incoming argument matches the set password, then set it + if(password == args[0]) + { + DeveloperConsoleUI.instance.DeveloperConsole.RequestAdminAccess(); + DeveloperConsoleUI.Log("Admin access granted", Color.green); + return true; + } + // or if the incoming argument matches the keyword "revoke", it revokes console admin access + // hopefully no one set's the password as revoke + else if(args[0] == "revoke") + { + DeveloperConsoleUI.instance.DeveloperConsole.RewokeAdminAccesss(); + DeveloperConsoleUI.Log("Admin access revoked", Color.red); + return true; + } + + return false; + } + } +} \ No newline at end of file diff --git a/Scripts/Prebuilt Commands/AdminPassword.cs.meta b/Scripts/Prebuilt Commands/AdminPassword.cs.meta new file mode 100644 index 0000000..bf11c5e --- /dev/null +++ b/Scripts/Prebuilt Commands/AdminPassword.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d3207b6ef524bbf4ab60aaff0685ac30 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Scripts/Prebuilt Commands/Clear.cs b/Scripts/Prebuilt Commands/Clear.cs index 962983b..3eecf20 100644 --- a/Scripts/Prebuilt Commands/Clear.cs +++ b/Scripts/Prebuilt Commands/Clear.cs @@ -11,6 +11,12 @@ namespace Hibzz.Console [CreateAssetMenu(fileName = "ClearCmd", menuName = "Console/Built-in Commands/Clear")] public class Clear : ConsoleCommand { + // used to set default values + public Clear() + { + CommandWord = "clear"; + } + public override bool Process(string[] args) { DeveloperConsoleUI.Clear(); diff --git a/Scripts/Prebuilt Commands/ConsoleHelp.cs b/Scripts/Prebuilt Commands/ConsoleHelp.cs index 6b82251..a0b4776 100644 --- a/Scripts/Prebuilt Commands/ConsoleHelp.cs +++ b/Scripts/Prebuilt Commands/ConsoleHelp.cs @@ -11,6 +11,12 @@ namespace Hibzz.Console [CreateAssetMenu(fileName = "ConsoleHelpCmd", menuName = "Console/Built-in Commands/Console Help")] public class ConsoleHelp : ConsoleCommand { + // used to set default values + public ConsoleHelp() + { + CommandWord = "console.help"; + } + public override bool Process(string[] args) { DeveloperConsoleUI.Log("https://github.com/Hibzz-Games/unity.console"); diff --git a/Scripts/Prebuilt Commands/Version.cs b/Scripts/Prebuilt Commands/Version.cs index 194a61d..0fbd46c 100644 --- a/Scripts/Prebuilt Commands/Version.cs +++ b/Scripts/Prebuilt Commands/Version.cs @@ -11,6 +11,12 @@ namespace Hibzz.Console [CreateAssetMenu(fileName = "VersionCmd", menuName = "Console/Built-in Commands/Version")] public class Version : ConsoleCommand { + // used to set default values + public Version() + { + CommandWord = "version"; + } + public override bool Process(string[] args) { DeveloperConsoleUI.Log("Version: " + Application.version); diff --git a/com.hibzz.console.asmdef b/com.hibzz.console.asmdef index 694924a..5660d6d 100644 --- a/com.hibzz.console.asmdef +++ b/com.hibzz.console.asmdef @@ -2,7 +2,8 @@ "name": "hibzz.unity.console", "rootNamespace": "", "references": [ - "GUID:6055be8ebefd69e48b49212b09b47b2f" + "GUID:6055be8ebefd69e48b49212b09b47b2f", + "GUID:75469ad4d38634e559750d17036d5f7c" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/package.json b/package.json index e00c556..aaf0c63 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "com.hibzz.console", - "version": "0.1.0", + "version": "0.2.0", "displayName": "hibzz.unity.console", "description": "A flexible in-game console", "documentationUrl": "https://github.com/Hibzz-Games/unity.console/wiki/Documentation",