這是我近期想做的新系列文章,透過簡短的篇幅記錄下我曾經遭遇過的問題或是認為值得分享的實用小技巧,希望能幫助到有需要的朋友~
顏色是強化遊戲體驗的關鍵元素,能夠靈活地運用也是遊戲設計的基本技巧之一。
前情提要:2D Sprite的顏色資訊存放在"Sprite Renderer"元素中的"Color"裡。
以下我要介紹兩種方法。
(1)完全透過Code操作
Unity的API十分方便,讓開發者能夠在程式碼裡輕鬆進入物件的Component裡更改數值。例如在本篇文章中我們要說的更改顏色,其中一種寫法如下:
在Update()裡做偵測,當玩家按下G鍵,就為這個物件(p.s這個Script是綁在球物件底下)賦予一個新的顏色。RGBA值都是255。
對RGBA色盤概念不清楚的朋友可以參考這張圖。
R:紅色 G:綠色 B:藍色 A:透明度
(2)開一個具public性質的Color陣列
然而,在程式碼裡設定RGBA值,似乎有些太不方便了(因為數值我背不起來XDD),所以我比較喜歡開一個Color陣列,直接在物件的Inspector裡做設定。
如此一來,我們回到Unity編輯器,在物件底下就會看到這樣的東西
在設定完Size後,就可以點選底下的Element來用色盤調顏色了!
實例:讓球撞到牆壁時就切換顏色。
在第11、12行,我開了一個Color陣列,然後宣告一個它專屬的變數Color_idx,用來選擇要進入陣列的第幾個位置。
然後直接注意到第28行,我設定了「當球撞到其他物件,且該物件的tag叫做"Wall"時」的條件,
給予Color_idx一個介於0~6的亂數(因為我的陣列開了7種顏色,如上圖)
接著利用方法(1)的方法進入SpriteRenderer這個元素,蛋我們現在可以直接把color指定到一個陣列位置上,就完成切換顏色的設定了!
成果如下:
礙於篇幅問題,其餘功能(Rigibody2D、Collider2D、移動板子、把球發射出去、讓球具有彈性…)等細節不是本篇的重點XD
我再找時間記下來或是歡迎大家私下來和我聊聊~
你好~
如果我的介面有8個button 希望按了某按鈕之後,那個按鈕會變色
但是視個別切換 例如像是A被按,只有A變色
請問一下這樣是要寫8個按鈕事件嗎@@…
讚讚