Unity × EasyAR 實(shí)戰(zhàn)教程 - 第2章:使用 UGUI 改進(jìn)項(xiàng)目

本章要點(diǎn):

  1. 添加按鈕的基本方法
  2. 給按鈕添加動(dòng)畫(huà)效果

1. 添加按鈕的基本方法

在這一章里边涕,我們會(huì)使用 UGUI 系統(tǒng)改進(jìn)現(xiàn)有的 UI 先较,具體來(lái)說(shuō)文兑,就是用基于游戲?qū)ο蟮陌粹o來(lái)控制 unitychan 切換動(dòng)作奖年。在添加基本的按鈕之前,我們先來(lái)調(diào)整一下 Unity 編輯器的視圖惕它。

1.1. 設(shè)置 Game 視圖的 AspectRatio

AspectRatio 是指屏幕的寬高比怕午。在 Game 視圖中默認(rèn)的寬高比是 FreeAspect ,在上一章的測(cè)試中淹魄,我們使用的就是這個(gè)寬高比郁惜,它會(huì)自動(dòng)填滿 Mac 的屏幕。

為了模擬場(chǎng)景在移動(dòng)設(shè)備上的顯示情況揭北,我們需要調(diào)整 Game 視圖的寬高比。我使用的移動(dòng)端設(shè)備是小米5S手機(jī)吏颖,屏幕分辨率是1080×1920搔体,寬高比為9:16。

點(diǎn)擊 FreeAspect 半醉,我們可以看到疚俱,在下拉菜單中并沒(méi)有合適的寬高比:

設(shè)置Game視圖的顯示尺寸-01

那么,我們需要新建一個(gè)寬高比——單擊菜單最下面的“+”:

設(shè)置Game視圖的顯示尺寸-02

在設(shè)置參數(shù)時(shí)缩多,將 Type 設(shè)置為 Fixed Resolution(固定分辨率)呆奕,然后,直接輸入移動(dòng)端的屏幕分辨率即可衬吆。在新的寬高比之下梁钾,再次測(cè)試這個(gè)場(chǎng)景,應(yīng)該會(huì)看到:

設(shè)置Game視圖顯示尺寸后再次測(cè)試

接下來(lái)逊抡,我們就開(kāi)始正式進(jìn)入 UGUI 的話題姆泻。說(shuō)實(shí)話,UGUI 的功能非常強(qiáng)大冒嫡,涉及到的內(nèi)容也很多拇勃,我在教程中也只是點(diǎn)到為止。如果希望深入學(xué)習(xí) UGUI 的話孝凌,推薦大家看一下這個(gè)視頻教學(xué)(蠻牛教育的免費(fèi)課程):
http://edu.manew.com/course/183

1.2. 搜集合適的UI素材

我們可以從這個(gè)網(wǎng)站(某大神的力作)搜集一些簡(jiǎn)單的UI素材:
Android Material Icon Generator
http://jaqen.me/mdpub/

本系列教程將會(huì)用到的圖片

我把素材放進(jìn)了這個(gè)文件夾:Assets / UnityChanAR / Textures / Buttons 方咆。導(dǎo)入之后,還要設(shè)置圖片的 TextureType :

  1. 選中圖片蟀架,查看 Inspector 視圖(會(huì)顯示 ImportSettings )
  2. 將 TextureType 設(shè)置為 Sprite (2D and UI)
  3. 點(diǎn)擊下方的 Apply 按鈕瓣赂,使設(shè)置生效
設(shè)置圖片的TextureType

在上述操作中涉及的新概念可以參考以下文檔:

1.3. 在場(chǎng)景中添加按鈕

我們既可以直接在場(chǎng)景中添加按鈕,也可以通過(guò)組件的疊加來(lái)實(shí)現(xiàn)按鈕的功能片拍。為了更好地說(shuō)明 Unity 編輯器的特性钩述,我采取第二種方法,通過(guò)疊加組件來(lái)實(shí)現(xiàn)按鈕穆碎。

首先牙勘,我們需要在場(chǎng)景中添加一個(gè)圖片:在 Hierarchy 視圖中點(diǎn)擊右鍵,然后選擇 UI > Image ,如圖:

向場(chǎng)景中加入U(xiǎn)I對(duì)象

這一步操作會(huì)自動(dòng)在場(chǎng)景中加入以下對(duì)象:

  1. Canvas對(duì)象方面,所有的UGUI對(duì)象都是Canvas對(duì)象的子對(duì)象
  2. Image對(duì)象放钦,自帶一個(gè)Image組件的UI對(duì)象(稍后介紹)
  3. EventSystem對(duì)象,對(duì)鼠標(biāo)點(diǎn)擊等事件作出反應(yīng)的對(duì)象

如果我們?cè)俅翁砑覫mage對(duì)象恭金,只會(huì)在Canvas對(duì)象下增加一個(gè)新的Image子對(duì)象操禀。

接下來(lái),我們需要調(diào)節(jié)Image對(duì)象的位置横腿。在Inspector面板中點(diǎn)擊紅色箭頭指向的位置颓屑,然后按住alt鍵(在mac上是option鍵),按住之后選擇左下角位置即可耿焊。之后揪惦,可以參考紅色方框里的數(shù)值,調(diào)節(jié)Image對(duì)象的大小和位置罗侯。

調(diào)節(jié)Image對(duì)象的大小和位置

1.4. 使用Image組件

UI對(duì)象的一個(gè)重要功能就是顯示圖片器腋,這個(gè)功能是由Image組件實(shí)現(xiàn)的。在Hierarchy面板里選中Image對(duì)象钩杰,它的Image組件會(huì)顯示在右側(cè)的Inspector面板中纫塌。接下來(lái),把想要添加的圖片拖拽到“SourceImage”后面的輸入框里即可讲弄。另外措左,我為了方便管理,把Image對(duì)象重命名為ArrowLeft避除。

給Image對(duì)象添加圖片

2. 給按鈕添加動(dòng)畫(huà)

2.1. 使用Button組件

接下來(lái)媳荒,我們要讓ArrowLeft具有按鈕的功能。按鈕功能是通過(guò)“Button (Script)”組件實(shí)現(xiàn)的:在ArrowLeft的Inspector面板中驹饺,依次點(diǎn)擊AddComponent -> UI -> Button即可添加Button組件钳枕。

Animation Integration
https://docs.unity3d.com/Manual/UIAnimationIntegration.html

Button組件中有一個(gè)非常實(shí)用的屬性——Transition。下面我們就通過(guò)這個(gè)屬性來(lái)給按鈕添加一些有趣的效果赏壹。Transition屬性被默認(rèn)設(shè)置為ColorTint:

Button組件的Transition屬性

點(diǎn)擊Transition屬性后面的菜單鱼炒,選擇Animation,給按鈕增加動(dòng)畫(huà)效果蝌借。接著昔瞧,點(diǎn)擊Auto Generate Animation。

選擇Animation并生成動(dòng)畫(huà)

彈出一個(gè)對(duì)話框菩佑,讓我們保存自動(dòng)生成的Animation Controller自晰。我把它存放在下列文件夾:Assets/UnityChanAR/Animations/Buttons。

新建Animation Controller

給左右兩個(gè)按鈕分別創(chuàng)建Animation Controller:

Project面板中的Animation Controller

然后稍坯,打開(kāi)Unity編輯器中的Animation視圖:

增加Animation視圖

在Animation視圖中酬荞,選中ArrowRight搓劫,然后點(diǎn)擊Normal:

選擇可以進(jìn)行動(dòng)畫(huà)編輯的對(duì)象——ArrowRight

在下拉菜單中選擇我們想要編輯的動(dòng)畫(huà)片段——Highlighted:

選擇我們想要編輯的動(dòng)畫(huà)片段——Highlighted

這時(shí),畫(huà)面左上角帶有紅點(diǎn)的按鈕被自動(dòng)按下混巧,而且枪向,播放按鈕也從黑色變成紅色。這意味著咧党,Unity編輯器已經(jīng)開(kāi)始記錄動(dòng)畫(huà)秘蛔,場(chǎng)景和Inspector中的操作都會(huì)被記錄下來(lái)。

開(kāi)始記錄動(dòng)畫(huà)

在左側(cè)的輸入框中輸入10(表示第10幀)傍衡。然后深员,更改按鈕的大小,可以看到右側(cè)的Scale屬性變成了紅色:

更改按鈕在高亮?xí)r的大小

接著蛙埂,改變按鈕的顏色:

更改按鈕在高亮?xí)r的顏色

到這里倦畅,我們就可以點(diǎn)擊左上角帶紅點(diǎn)的按鈕,停止記錄動(dòng)畫(huà)箱残。最后滔迈,將默認(rèn)的連續(xù)播放取消:

取消連續(xù)播放

2.5. 測(cè)試

當(dāng)我們把鼠標(biāo)移動(dòng)到按鈕上時(shí)止吁,按鈕高亮——尺寸變大并且改變顏色:

按鈕高亮?xí)r的效果.gif

Unity × EasyAR 實(shí)戰(zhàn)教程:

  1. Unity × EasyAR 實(shí)戰(zhàn)教程 - 第1章:激活并使用 EasyAR
  2. Unity × EasyAR 實(shí)戰(zhàn)教程 - 第2章:使用 UGUI 改進(jìn)項(xiàng)目
  3. Unity × EasyAR 實(shí)戰(zhàn)教程 - 第3章:LeanTouch 入門(mén)
  4. Unity × EasyAR 實(shí)戰(zhàn)教程 - 第4章:導(dǎo)出并安裝
  5. Unity × EasyAR 實(shí)戰(zhàn)教程 - 第5章:使用ImageTarget和“脫卡”
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末被辑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子敬惦,更是在濱河造成了極大的恐慌盼理,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俄删,死亡現(xiàn)場(chǎng)離奇詭異宏怔,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)畴椰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)臊诊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人斜脂,你說(shuō)我怎么就攤上這事抓艳。” “怎么了帚戳?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵玷或,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我片任,道長(zhǎng)偏友,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任对供,我火速辦了婚禮位他,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己棱诱,他們只是感情好泼橘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著迈勋,像睡著了一般炬灭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上靡菇,一...
    開(kāi)封第一講書(shū)人閱讀 51,115評(píng)論 1 296
  • 那天重归,我揣著相機(jī)與錄音,去河邊找鬼厦凤。 笑死鼻吮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的较鼓。 我是一名探鬼主播椎木,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼博烂!你這毒婦竟也來(lái)了香椎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤禽篱,失蹤者是張志新(化名)和其女友劉穎畜伐,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體躺率,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玛界,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了悼吱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慎框。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖后添,靈堂內(nèi)的尸體忽然破棺而出笨枯,到底是詐尸還是另有隱情,我是刑警寧澤吕朵,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布猎醇,位于F島的核電站,受9級(jí)特大地震影響努溃,放射性物質(zhì)發(fā)生泄漏硫嘶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一梧税、第九天 我趴在偏房一處隱蔽的房頂上張望沦疾。 院中可真熱鬧称近,春花似錦、人聲如沸哮塞。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)忆畅。三九已至衡未,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間家凯,已是汗流浹背缓醋。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绊诲,地道東北人送粱。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像掂之,于是被迫代替她去往敵國(guó)和親抗俄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容