Unity C# | CharacterController 概述

閱讀時間約 4 分鐘

一、前言

  這篇文章將會講述角色控制器(CharacterController )的基本概述,並且分析其中可能的應用方式,最後簡單講述它的使用方式心得。

二、角色控制器(CharacterController)

  角色控制器是一個很常聽到的名詞,有許多人會好奇既然已經有物理系統與剛體組件,那為什麼要使用角色控制器。在這一次的專題製作中,我們使用的第三人稱控制包,它就是使用角色控制器。

1. 無剛體(Rigidbody)

  它最主要的特色就是為了不使用  Rigidbody 也可以控制玩家的移動,它在使用方式上很貼近初學者直接在每一個影格控制物件座標,不過直接控制座標會有不同程式腳本彼此衝突的問題。

  不使用剛體系統有好處也有壞處,其中之一就是不能使用剛體系統常見的給予推力或調整速度這種容易理解的作法,但也因此不會模擬物理,在移動的過程中一定都是自己程式碼撰寫的內容。

2. 自帶地面判斷與膠囊碰撞體

  它跟物理系統比較不一樣的地方在於,它自己就攜帶了地面判斷,因為本質上來說它就是為了角色控制而產生的機制,而物理系統則不一定。

  它自己攜帶了膠囊碰撞體,角色控制器有不少參數就是在設定這個膠囊碰撞體,包含中心、高度、半徑等內容都是在控制它。

3. 只有唯一移動控制

  因為角色控制器的誕生標榜著容易控制與使用的角色控制方式,因此它全身上下只有一個控制移動的方式。前面有談到它的移動方式近似於初學者隨著影格控制座標的方式,而這就是它的移動方式。

  我在使用的時候有感受到,使用角色控制器應該不會出現程式腳本彼此互相衝突的問題,因為都是使用角色控制器進行移動,因此它應該可以讓每一個移動參數合在一起運作,避免衝突。

三、應用方向

  角色控制器有很明確的新手導向與應用方向,這邊簡單介紹我自己分析的幾項角色控制器的應用方向。

1. 不用複雜物理系統的遊戲

  首先最基本的結論,就是如果遊戲不使用物理系統,那就很適合使用角色控制器來運行。如果不希望角色在移動的過程中,遇到超乎想像的衝擊或奇怪的移動力道,那就使用角色控制器吧!

2. 需要自訂很多奇幻移動的遊戲

  在大多數的奇幻遊戲中,角色通常會使用很多匪夷所思的移動,例如超級無敵長的跳躍時間、滯留在空中、穿梭在敵人之間等,那角色控制器很適合這種遊戲的製作,因為這些控制非常不物理。

  除了避免在連招的過程中遇到奇特的外力,把所有的玩家控制都掌握在可操控的範圍內,角色控制器可以保證自己寫的都是沒問題的項目。

3. 非現實的遊戲

  因為遊戲沒有任何物理系統,自然而然就沒有重力系統,所有非現實的遊戲都有一個很重要的共通點,它們的重力通常變來變去的,無論是遊戲世界在不同維度改變、空間、時間,重力改變都是在實作上的重要手段。

  在非現實的遊戲裡面,這種控制最好玩全交給程式員掌控,而不能使用任何內建的系統,因此角色控制是最適合的工具,否則玩家可能會突然看到自己明明已經在太空了,卻在某一刻被重力影響。

四、使用方式

  非常簡單的使用方式。

1. 移動

CharacterController.Move

public CollisionFlags Move(Vector3 motion);

  它的移動方式非常簡單,就是一個三維座標,有趣的事情在於移動的距離好像是一個小數就能移動很多,我有在網路上找到教學,似乎直接把玩家輸入綁進去角色控制器就能模擬移動了,非常方便。

2. 簡易移動

CharacterController.SimpleMove

public bool SimpleMove(Vector3 speed);

  它的移動方式還包含了重力,並且不用特別撰寫 Time.deltatime,直接寫上想要的速度就可以了,官方在文檔中有寫每一幀只有簡單移動或移動就可以了。 

五、後記

  這篇文章就分享到這邊,角色控制器是真的簡單很多,但是我還是比較喜歡剛體的運動,如果未來我把數學運算與旋轉方向使用精熟了,可能我也會喜歡上角色控制器吧。

104會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
發表第一個留言支持創作者!
瓶裝雪的沙龍 的其他內容
這篇文章將會講述物件池的基本概述,並介紹應用方向。
這篇文章將會從基本概述到射線偵測應用的詳細步驟,講述運用射線改變特定圖層中,射線命中的物件顏色。
這篇文章將會講述平滑的旋轉與單次旋轉的差異,並介紹旋轉的兩種體系與其使用效果,並提供參考的示範影片。
這篇文章將會講述常見的座標(Transform)旋轉方式,適合初學者到進階程式員複習。
這篇文章將會講述設計模式中的狀態模式,其資料源自於書籍、網路、個人理解,從簡介→架構→撰寫→測試的整個流程進行介紹與分享。
這篇文章將會介紹建構式(Constructor),這是一個隱藏在程式腳本中的重要知識,我們極常使用建構式,但新手程式員幾乎不會知道它。
這篇文章將會講述物件池的基本概述,並介紹應用方向。
這篇文章將會從基本概述到射線偵測應用的詳細步驟,講述運用射線改變特定圖層中,射線命中的物件顏色。
這篇文章將會講述平滑的旋轉與單次旋轉的差異,並介紹旋轉的兩種體系與其使用效果,並提供參考的示範影片。
這篇文章將會講述常見的座標(Transform)旋轉方式,適合初學者到進階程式員複習。
這篇文章將會講述設計模式中的狀態模式,其資料源自於書籍、網路、個人理解,從簡介→架構→撰寫→測試的整個流程進行介紹與分享。
這篇文章將會介紹建構式(Constructor),這是一個隱藏在程式腳本中的重要知識,我們極常使用建構式,但新手程式員幾乎不會知道它。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
每個專案開發,都是由多個工程師來完成,就算只有一個人,隨著專案增量,你便會與過去的你面對面,這時候程式碼的可讀性高低就會成為左右你開發效率的一塊石頭,這篇就來說說幾個程式碼管理的小撇步
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 變數 宣告變數不能使用數字開頭,或是除了_之外的符號。 ·整數 int ·浮點數 float、double float 精度低、佔的資源較少,double
Thumbnail
Unity (美股代號:U) 是全球最大的遊戲製作平台與龍頭引擎。不過股價自高點滑落並盤據20-30元已經有一段時間。此次財報非常樂觀,值得一看。
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
  透過Unity平台開發出來的遊戲,比較廣為人知,例如憤怒鳥和寶可夢。Unity 的遊戲開發技術,可以刺激遊戲產業,更朝氣蓬勃有效率地開發新遊戲用戶透過遊戲平台,就可以進入元宇宙的世界!
Thumbnail
Unity在這週公布了2022年Q1的財報,財報發布後股價下挫30%,下跌至30美元,已經遠遠跌破兩年前的上市價。Unity雪崩式的下跌是因為Q1的營運不理想、未來的營運預期不理想、還是單純是隨著近期成長股估值修正而下跌呢?這篇文會分析Unity 2022Q1財報及預測Unity未來的營運狀況。
Thumbnail
來談一下最近我很感興趣的一個投標,遊戲開發平台 Unity。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
每個專案開發,都是由多個工程師來完成,就算只有一個人,隨著專案增量,你便會與過去的你面對面,這時候程式碼的可讀性高低就會成為左右你開發效率的一塊石頭,這篇就來說說幾個程式碼管理的小撇步
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 變數 宣告變數不能使用數字開頭,或是除了_之外的符號。 ·整數 int ·浮點數 float、double float 精度低、佔的資源較少,double
Thumbnail
Unity (美股代號:U) 是全球最大的遊戲製作平台與龍頭引擎。不過股價自高點滑落並盤據20-30元已經有一段時間。此次財報非常樂觀,值得一看。
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
  透過Unity平台開發出來的遊戲,比較廣為人知,例如憤怒鳥和寶可夢。Unity 的遊戲開發技術,可以刺激遊戲產業,更朝氣蓬勃有效率地開發新遊戲用戶透過遊戲平台,就可以進入元宇宙的世界!
Thumbnail
Unity在這週公布了2022年Q1的財報,財報發布後股價下挫30%,下跌至30美元,已經遠遠跌破兩年前的上市價。Unity雪崩式的下跌是因為Q1的營運不理想、未來的營運預期不理想、還是單純是隨著近期成長股估值修正而下跌呢?這篇文會分析Unity 2022Q1財報及預測Unity未來的營運狀況。
Thumbnail
來談一下最近我很感興趣的一個投標,遊戲開發平台 Unity。