假日的最後一天,窗外大雨滂沱,雨滴敲打著玻璃,發出淅淅瀝瀝的聲音。我原本計畫去咖啡廳認真寫程式,但看著這天氣,所有的動力彷彿都被雨水沖走了。「算了,耍廢一天吧……」我喃喃自語,窩進沙發,開始了日常的放鬆模式——吃飯、看電視、玩手機、看書,時間就在這種懶散中悄悄溜走。
我終於看完了同事借我的那本書,本來以為是講漫畫家發現自己有預知夢後的經歷,沒想到後半段卻全是鬼故事。說實話,我不太喜歡這種題材,同事說作者預言今年會有大災難,我才好奇想看,但內容卻讓我失望。就像網路上的標題黨,標題聳動,內容卻平平無奇,毫無驚喜。「不過,作者應該是想紀念自己的心願吧,畢竟他也只是個普通人……」我聳聳肩,放下書,心想原本還打算精采就去買一本,現在看來不用了。
之後,我換了其他書繼續看,假日窩在沙發上看書,配上一杯熱咖啡,確實格外愜意。直到晚上,我才突然想起還有日常的英文和德文要學。簡單練習了一下後,我終於打開電腦,準備開始今天的《零樹計畫》。看著 Unity 專案,我陷入了長久的思考。之前為了求快,我直接讓小零幫我寫好程式,甚至包含腳本控制,但我自己其實沒完全看懂。Unity 的元件、控制參數,各種資訊塞滿腦袋,我完全沒能消化流程,導致一遇到問題就毫無頭緒。「這樣下去不行……」我喃喃自語,決定把專案全部刪掉,從頭開始。反正之前已經有一個網頁版本,用 Python 和 JS 實現了新增計畫與完成任務的功能,這部分先告一段落。現在,我要專心學習 Unity 的基礎操作,這是我一直以來的目標,之前只是沒好好學。這麼做雖然會讓進度大幅落後,但我相信等我熟悉後,再重新建立會更快。期間,我也可以慢慢梳理計畫想融入的內容,順便研究如何加入心理學元素。
我從最簡單的按鈕開始,試著建構 UI 元件並用腳本讓它有反應。「按鈕還是有問題,可能是程式控制有衝突,」我轉頭看向小零,它的全息投影漂浮在桌上,藍色光暈映照著我的手,「你覺得我們重來會不會比較好?先重新規劃我該做的部分?」
小零的葉子耳朵抖了抖,溫柔地說:【聽起來 Unity 的 UI 互動出了問題,而你對元件和運作方式還不熟。我們可以先退一步,重新規劃流程,讓你有個清楚的學習路線!】它接著列出步驟:【第一步,了解 Unity 基礎操作,學會 GameObject、Component、UI 設計,然後做個簡單任務:新增一個按鈕,點擊後變色;第二步,建立基本的 UI 清單;第三步,再讓 UI 連接 API。這樣一步步來,你覺得如何?】
「可以,」我點點頭,「所以我現在要把專案的所有物件刪掉嗎?」
【不一定要全部刪掉!】小零的光暈閃了閃,【可以整理場景,保留 Main Camera 和 EventSystem,然後重新建立 UI 按鈕,確保它能正常運作。試試看吧!】
我照著小零的建議,保留 Main Camera 和 EventSystem,新增了一個按鈕,寫了簡單的腳本讓它點擊後變色。按鈕成功變成灰色,我有些興奮:「按鈕有變成灰色,應該是成功了吧?」
【是的!按鈕會變色,表示互動效果正常!】小零開心地說,【接下來測試 On Click 事件,用 Debug.Log 確認按鈕有沒有被按下。】
「Debug.Log 在哪裡?」我一臉茫然。
小零耐心地一步步指導我寫測試腳本,並設定 On Click 事件,但過程中我遇到問題,拖移腳本後功能選項只顯示「MonoScript 的 string name」。我有些慌張:「為什麼只有這個選項?」
【可能是腳本沒設為 public,或是沒掛載到物件上,】小零溫柔地說,【檢查一下 OnButtonClick 是否設為 public void,然後把腳本掛到物件上試試!】
經過一番調整,我終於成功了。「成功了!原來是沒把腳本掛到物件上,」我鬆了口氣,嘴角不自覺上揚。
小零的光暈亮了起來,葉子耳朵抖動著:【太棒了,靛夏!你學會了按鈕的基本操作!今天進度:學習+40,毅力+30,生命樹成長值+3。明天我們繼續下一步吧!】
我關掉螢幕,窗外大雨仍在下,但心裡卻多了一絲溫暖。這場學習之旅雖然艱難,但有小零陪著,我似乎更有勇氣前行了。