ETH官方钱包

前往
大廳
主題

Unity C# | UGUI 的介紹與程式控制座標

瓶裝雪 | 2023-04-19 19:00:06 | 巴幣 12 | 人氣 545

一、前言
  這篇文章將會介紹 UGUI ,以及如何使用程式碼控制 UGUI 的座標。
a. 定位小遊戲
  這個嘗試是因為一個學校的作品,需要在 3D 的遊戲世界中插入一個平面的小遊戲,於是我打算撰寫一個 Canva 的小遊戲出來,與此同時滿足了之前對於介面移動的問題。

b. 介面移動
  UGUI 的移動與控制是我很久以前就很好奇的事情,主要是因為介面通常是不會移動的,自然而然移動的教學就比較少,我找了很多個資料,最後才找到如何控制 UGUI。

c. 不要結合 UGUI 與物理系統(tǒng)
  其中有學習到一個很有趣的事情,介面不要跟物理系統(tǒng)混用,因為物理系統(tǒng)與介面是兩個不同的 Unity 系統(tǒng),混用不是做不到,而是會消耗大量效能,對於遊戲並不是太好的做法。

二、UGUI
  那麼,UGUI 有哪些特色呢?

a. 可定制性高
  它具有靈活的可定制性,讓設計師在不同的平臺上製作適應性UI,像是手機遊戲、電腦遊戲的 UI 就不同,然後是一些基礎的設計功能,例如改變UI的顏色、字體、大小、對齊方式等屬性,同時還支持使用自定義的UI元素。

b. 支持多種輸入方式
  這個系統(tǒng)似乎可以支持多種輸入方式,除了最基本的滑鼠操控介面,還能使用、觸控、手柄,甚至能用鍵盤去選擇想要的按鈕,在不同的平臺上達到最佳的操作體驗。

c. 功能豐富
  UGUI提供了豐富的UI元素,包括文本、圖像、按鈕、滾動條、進度條、下拉列表等,這些元素可以通過腳本控制,這篇文章將會講述簡單的座標控制,它還能實現(xiàn)更複雜的UI功能,並支持各種動畫效果,讓UI更具有交互性和生動性。

三、控制範例影片
《Unity C# | UI Aim move》

a. 準心設計與製作
  我自己設計了一個準心,雖然說看起來很簡單,但我要讓它對齊花了不少的時間,感覺美術在我這裡需要更多的精力與時間成本才能成長。

b. 控制器移動
  我希望能使用自製的控制器進行移動,測試時鍵盤進行移動即可;這是我第一次使用程式腳本控制 UGUI,效果不錯。

c. 視口座標的轉換與控制
  其中唯一的技術難度就在於UGUI的座標系統(tǒng)有別於遊戲物件,是一個完全獨立的UGUI系統(tǒng)座標,為了找到這個座標的參考資料,我還找了API,不過官方的手冊實在太雜了。

四、基礎流程
  我簡單分享一下製作的基礎流程。

a. 取得玩家控制
  首先我們要取得玩家的控制,從最近學習到的 CleanCode 習慣中,我們應該讓某個函式單獨處理,因此我讓玩家控制放在 PlayerInput 中。

b. 撰寫視口座標轉換函式
  隨後撰寫視口座標的轉換函式,如果對於視口座標有興趣,可以去查查看這是一個什麼東西,剛好控制器的參數(shù)與視口座標的參數(shù)能結合,因此我這次撰寫的難度大大降低。

c. 撰寫 UGUI 物件控制
  隨後找到 UGUI 的座標控制,讓它跟視口座標的參數(shù)結合,讓它的位置跟玩家的控制器相同。

d. 持續(xù)在 Update 更新
  最後讓這兩個函式都跟 Update 同步,這樣一來玩家的操作每一幀都會更新之外,還會移動畫面中的標靶座標。

五、後記
  其實我當初撰寫的時候繞了很多的彎,不過現(xiàn)在回頭看來其實整個步驟看起來似乎相當簡單,不得不說這種技術內化成自己的技術以後,哪怕下一次遺忘怎麼製作,學習曲線也會大大降低了。



送禮物贊助創(chuàng)作者 !
0
留言

創(chuàng)作回應

相關創(chuàng)作

更多創(chuàng)作