【Unity】Unity編輯器搜尋風格輸入框
Unity編輯器搜尋風格輸入框
效果如下
沒輸入的時候
有輸入的時候
private GUIStyle TextFieldRoundEdge;
private GUIStyle TextFieldRoundEdgeCancelButton;
private GUIStyle TextFieldRoundEdgeCancelButtonEmpty;
private GUIStyle TransparentTextField;
/// <summary>
/// 繪製輸入框,放在OnGUI函式裡
/// </summary>
private void DrawInputTextField()
{
if (TextFieldRoundEdge == null)
{
TextFieldRoundEdge = new GUIStyle("SearchTextField");
TextFieldRoundEdgeCancelButton = new GUIStyle("SearchCancelButton");
TextFieldRoundEdgeCancelButtonEmpty = new GUIStyle("SearchCancelButtonEmpty");
TransparentTextField = new GUIStyle(EditorStyles.whiteLabel);
TransparentTextField.normal.textColor = EditorStyles.textField.normal.textColor;
}
//獲取當前輸入框的Rect(位置大小)
Rect position = EditorGUILayout.GetControlRect();
//設定圓角style的GUIStyle
GUIStyle textFieldRoundEdge = TextFieldRoundEdge;
//設定輸入框的GUIStyle為透明,所以看到的“輸入框”是TextFieldRoundEdge的風格
GUIStyle transparentTextField = TransparentTextField;
//選擇取消按鈕(x)的GUIStyle
GUIStyle gUIStyle = (m_InputSearchText != "") ? TextFieldRoundEdgeCancelButton : TextFieldRoundEdgeCancelButtonEmpty;
//輸入框的水平位置向左移動取消按鈕寬度的距離
position.width -= gUIStyle.fixedWidth;
//如果面板重繪
if (Event.current.type == EventType.Repaint)
{
//根據是否是專業版來選取顏色
GUI.contentColor = (EditorGUIUtility.isProSkin ? Color.black : new Color(0f, 0f, 0f, 0.5f));
//當沒有輸入的時候提示“請輸入”
if (string.IsNullOrEmpty(m_InputSearchText))
{
textFieldRoundEdge.Draw(position, new GUIContent("請輸入"), 0);
}
else
{
textFieldRoundEdge.Draw(position, new GUIContent(""), 0);
}
//因為是“全域性變數”,用完要重置回來
GUI.contentColor = Color.white;
}
Rect rect = position;
//為了空出左邊那個放大鏡的位置
float num = textFieldRoundEdge.CalcSize(new GUIContent("")).x - 2f;
rect.width -= num;
rect.x += num;
rect.y += 1f;//為了和後面的style對其
m_InputSearchText = EditorGUI.TextField(rect, m_InputSearchText, transparentTextField);
//繪製取消按鈕,位置要在輸入框右邊
position.x += position.width;
position.width = gUIStyle.fixedWidth;
position.height = gUIStyle.fixedHeight;
if (GUI.Button(position, GUIContent.none, gUIStyle) && m_InputSearchText != "")
{
m_InputSearchText = "";
//使用者是否做了輸入
GUI.changed = true;
//把焦點移開輸入框
GUIUtility.keyboardControl = 0;
}
}
相關推薦
【Unity】Unity編輯器搜尋風格輸入框
Unity編輯器搜尋風格輸入框 效果如下 沒輸入的時候 有輸入的時候 private GUIStyle TextFieldRoundEdge; private GUIStyle TextFiel
【unity】使用編輯器程式碼修改預設
using UnityEngine; using UnityEditor; using System.IO; using System.Collections.Generic; using System; using Assets.Plugins.Scripts.Util;
【linux】---vi編輯器
1.首先會進入一般模式,此模式下只支援快捷鍵 *********************************************************** *********************常用快捷鍵************************* *********
【linux】vim編輯器vim+taglist+ctags的配置
很多linux軟體開發實際上並不實在X window的情況下進行的,這時我們不可能啟動基於X window的圖形化視窗,在這一情況下我們所能使用的主要的編輯器是vim和emacs.(ps:emacs和vim雖然被稱為兩大編輯器之神,但是個人感覺vim的功能鍵設定的比較好用)下面詳細介紹一下vim的配置使用。對
【WEB】DotNetTextBox編輯器漏洞利用
關鍵字:system_dntb/ 用御劍後臺掃描 確定 system_dntb/uploadimg.aspx 並能開啟,這時候是不能上傳的,由於他是驗證cookie來得出上傳後的路徑,這樣我們可以用cookie欺騙工具。 cookie:UserType=0; IsEditi
【ExtJS】圖片編輯器imagefield
繼承自Ext.form.field.Picker,值為服務端返回的path路徑。 imagefield Ext.define('My.widget.form.field.ImageField', { extend : 'Ext.form.field.Picker',
Cocos Creator 資源載入流程剖析【五】——從編輯器到執行時
我們在編輯器中看到的資源,在構建之後會進行一些轉化,本章將揭開Creator對資源進行的處理。 資源處理的整體規則 首先我們將Creator的開發和執行劃分為以下幾個場景: 編輯器 當我們將資源放到編輯器中時,Creator會為每個資源生成唯一的uuid以及meta檔案,並在專案的library目錄下生成對應
【bootstrap】多選可搜尋下拉框
1.引入必要檔案 <script type="text/javascript" src="http://www.daimajiayuan.com/download/jquery/jquery-1.10.2.min.js"></script>
【unity學習筆記】在unity中擴充套件編輯器新增選單
參考自《Unity3D指令碼程式設計》-陳嘉棟 第一種:在原有選單中新增選項 示例:在Mesh元件中新增MeshTest選單選項 using System.Collections; using
【v2.x OGE教程 12】 關卡編輯器幫助文檔
spa 集成 delet exc 取消 map attribute exceptio nal 【v2.x OGE教程 12】 關卡編輯器幫助文檔 一、簡單介紹 關卡編輯器用於遊戲關卡界面元素的可視化編輯,包含元素的位置、尺寸以及其他自己定義屬性。通過解析生成的
【輕快PDF閱讀器】pdf編輯器中刪除頁面的功能怎麽操作?
可能是到了暑期,孩子們可能已經悠然的過著暑假生活。然而我們這些上班族的工作任務一下劇增!唉,可能是老了吧。粗心大意的,工作也有出錯的時候了!這麽多錯處下來,居然總結了一些心得體會。 怎麽處理pdf閱讀器中刪除文檔的頁面,下面就讓我來述說吧!輕快PDF閱讀器是一款體積小、啟動速度快、閱讀效果最
【linux相識相知】VIM編輯器
ins span ext number 命令 sub 右鍵 修改 編譯 Vim是一個類似Vi的著名的功能強大、高度可定制的文本編輯器,在Vi的基礎上改進和增加了許多的功能,VIM是自由軟件,今天我們就來講講VIM的使用方法。 本文是基於centos7上的vim編輯器演示的
用SublimeText當Unity Shader的編輯器
路徑 details csdn ring urn cor 沒有 assets hub 用Visual Studio寫shader實在蛋疼,那可能就會有人要問了,為啥不用插件可視化制作shader呢?因為我是新手,新手還是老老實實敲代碼,慢慢來… 所以試著在網上找找,有沒
【學習】Unity手遊之路<十二>手遊資源熱更新策略探討
似的 remove 方式 comment word rep 熱更新 style encoding http://blog.csdn.net/janeky/article/details/17666409 =================================
【總結】Unity遊戲優化
硬盤 技術 wheel mes stringbu 臨時 ets 減少 e30 1、Profiler中一項"WaitForTargetFPS"費資源過高的原因 畫面撕裂,顯卡渲染輸出的速度與顯示器不同步, 如果顯示器刷新的同時,顯卡創造了新的幀,就會出現上半顯示器顯示前一
【總結】Unity動畫模塊
作用 inf 數據 err size rotation current 程序 相互 動畫模塊沒有太多好說的,更多是練習積累的經驗 Animator動畫控制器 AnimatorControllerLayer 狀態層,layer層級越高,動作優先級越高 Animato
【NOIP2016提高A組模擬9.14】數列編輯器
namespace ont main getchar 最大 比賽 strong noip getch 題目 分析 比賽上,沒有註意到詢問只詢問光標前面,於是只打了個暴力。 因為詢問只詢問光標前面,首先,當光標向後每移動到一個位置,順便將這個位置的前綴和,和最大前綴和求出來
Unity 自定義編輯器窗口 畫線
狀態 nbsp ongui shmat 定義 技術 load oid clas 最近在學習狀態機, 想自己實現一個可視化編輯器, 需要將多個狀態之間用線條連接起來, 效果如下: 代碼如下: Material m;Vector2 start;Vector2 end
【轉】Unity四元數和向量相乘作用及其運算規則
https tor img 復合 順序 unity debug csdn 了解 作用:四元數和向量相乘表示這個向量按照這個四元數進行旋轉之後得到的新的向量。 比如:向量vector3(0,0,10),繞著Y軸旋轉90度,得到新的向量是vector3(10,0,0)。 在
【LeetCode】173. 二叉搜尋樹迭代器 結題報告 (C++)
原題地址:https://leetcode-cn.com/problems/binary-search-tree-iterator/description/ 題目描述: 實現一個二叉搜尋樹迭代器。你將使用二叉搜尋樹的根節點初始化迭代器。 呼叫 next() 將返回二叉搜尋樹中的下一個最小