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,直接寫上想要的速度就可以了,官方在文檔中有寫每一幀只有簡單移動或移動就可以了。 

五、後記

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

留言
avatar-img
留言分享你的想法!
avatar-img
瓶裝雪的沙龍
109會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
瓶裝雪的沙龍的其他內容
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
這篇文章將會介紹第三人稱遊戲設計中,關於角色的建模與動畫的設計與製作。
Thumbnail
這篇文章將會介紹第三人稱遊戲設計中,關於角色的建模與動畫的設計與製作。
Thumbnail
這篇文章將會講述設計與製作一款第三人稱控制器所需要的工具、要素之概述。
Thumbnail
這篇文章將會講述設計與製作一款第三人稱控制器所需要的工具、要素之概述。
Thumbnail
這篇文章將會分享最近學習到關於遊戲機制與關卡設計的觀念。
Thumbnail
這篇文章將會分享最近學習到關於遊戲機制與關卡設計的觀念。
Thumbnail
這篇文章將會分享我用 Time line 製作的 Unity 部份概念動畫,並講述其中要呈現的特點與打擊感的分析。
Thumbnail
這篇文章將會分享我用 Time line 製作的 Unity 部份概念動畫,並講述其中要呈現的特點與打擊感的分析。
Thumbnail
在數創整合與作品集結束以後加速完工的專題作品,這篇文章將會講述遊戲類型概述與技術層面的成長。
Thumbnail
在數創整合與作品集結束以後加速完工的專題作品,這篇文章將會講述遊戲類型概述與技術層面的成長。
Thumbnail
這篇文章將會介紹 UGUI ,以及如何使用程式碼控制 UGUI 的座標。
Thumbnail
這篇文章將會介紹 UGUI ,以及如何使用程式碼控制 UGUI 的座標。
Thumbnail
這篇文章將會講述玩家行動種類及發想機制的方法。
Thumbnail
這篇文章將會講述玩家行動種類及發想機制的方法。
Thumbnail
這篇文章會介紹圖層及相關應用,並藉由範例流程直白理解圖層的功用。
Thumbnail
這篇文章會介紹圖層及相關應用,並藉由範例流程直白理解圖層的功用。
Thumbnail
這篇文章將會介紹 Unity 中關於物理碰撞與偵測事件,如何使用程式腳本撰寫相關的程式來控制遊戲物件,這是學習 Unity 必學知識,它們在 Unity 中具有不可撼動的核心地位。
Thumbnail
這篇文章將會介紹 Unity 中關於物理碰撞與偵測事件,如何使用程式腳本撰寫相關的程式來控制遊戲物件,這是學習 Unity 必學知識,它們在 Unity 中具有不可撼動的核心地位。
Thumbnail
  本篇將會講解移動路線的時候,也會提到關於劇情位置的運用。
Thumbnail
  本篇將會講解移動路線的時候,也會提到關於劇情位置的運用。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News