2024 虛擬實境 x 人因設計 06unity角色移動

更新於 2024/05/01閱讀時間約 7 分鐘

上次我們完成用Unity 建完一張椅子,還有學習基本變數的應用,那我們就繼續寫更多的腳本,來讓物體有更多的變化~~~

#一般不會用Unity來建模(不會這麼傻啦),模型主要還是要靠其他3D軟體導入 :)

教大家怎麼讓椅子(物件)動起來囉~

raw-image

動次~棟次~動動起來~~


raw-image

準備好你的椅子(Chair)還有地板(Ground),我們開始


raw-image

新建一個腳本(C# Script),我們命名ChairMoveScript



raw-image

先新增一個條件式

if (Input.GetKey("w"))

{

this.gameObject.transform.Translate(new Vector3( 1, 0, 0));

}

先測試看看按下 "W" 鍵,是否可以前進

解釋一下這段話意思

// 如果玩家按下 "W" 鍵

// 系統自行尋找 "W" 按鍵

// 讓這個遊戲物體沿著世界坐標系中的 x 軸正方向移動1個單位距離

raw-image

如果我們把剩下的ASD的移動都把他補上

raw-image


#這時候,你會發現椅子速度比高鐵還快 :( 🏃🏃🏃🏃🏃

為啥會有這樣情形產生呢?

Ans: 很簡單,上禮拜有說到在Update方法,是每一幀都在判斷,所以一幀跑1個單位,1秒就跑60個單位,所以才會這麼快。

我們需要鎮定劑來緩解他飛快的速度

"Time.deltaTime"

在 Unity 中,Time.deltaTime 是一個非常重要的屬性,表示兩次幀之間的時間間隔。通常用於計算物體的移動、旋轉、縮放等變換時,以確保這些變換在不同的遊戲環境和不同的設備上都能保持一致的速度和流暢度。

Time.deltaTime 是以秒為單位,表示上一個畫面和當前畫面之間的時間間隔。使用它可以讓你的遊戲在不同的幀率(FPS,Frames Per Second)下都能保持相同的速度,避免遊戲在不同設備上運行時出現速度不一致的情況。

那我們就在new Vector3( 1* Time.deltaTime, 0, 0)).........用乘以*的方式加上去

raw-image


速度好像有點慢ㄋㄟ,宣告一個變數來控制速度好ㄌ


新增一個速度(Speed)變數,好讓我們之後可以調整

public float speed = 1.0f;

raw-image

然後再把速度乘進去new Vector3( 1 * Time.deltaTime * Speed , 0, 0))

應該就會好很多了~~

不過,我們人移動很少橫向的移動吧,除非你是螃蟹🦀🦀🦀

我們都是用頭/身體轉來換方向啦,所以我們transform.Translate 要更改一下組件​

改成transform.Rotate

raw-image

左右控制的 A & D Translate(座標) 改成 Rotate(旋轉)

有變合理了齁~~讚讚👍🏽👍🏽👍🏽👍🏽👍🏽


我們再給椅子一個跳躍往上的力量

if (Input.GetKey("space")) //系統自行尋找 空白鍵按鍵

{

this.gameObject.transform.Translate(new Vector3(0, 1 * Time.deltaTime * Speed, 0));

}

raw-image

測試看看,好像又怪怪的,沒關係我們來想辦法

再宣告一個變數,要使用這個特殊的變數獨有的性質,去做變化

private Rigidbody rb;

然後再void Start()打上

rb = GetComponent<Rigidbody>();

像這樣

raw-image


來解釋一下

private Rigidbody rb;

rb = GetComponent<Rigidbody>();

raw-image

private Rigidbody rb; 定義了一個私有(private)的 Rigidbody 變數,名稱為 rb。這個變數用於儲存從遊戲物件中獲取的 Rigidbody 組件。

rb = GetComponent<Rigidbody>();。從遊戲物件中獲取 Rigidbody 組件並將其賦值給 rb 變數。通常都在 Start 方法中執行這樣的操作,因為 Start 方法在遊戲物件被啟用時執行一次,可以確保遊戲物件已經初始化完成。

<>內都是裝特殊的變數類型,比如說

<Rigidbody>(模擬物體的物理行為,比如移動、碰撞等)

<Collider>(處理物體的碰撞和觸發事件)

<MeshRenderer>(控制物體的顯示和渲染)

<AudioSource>(播放音效)

上述程式碼(應該)只在 MonoBehaviour 的衍生類中使用,因為 GetComponent 方法是 Unity 引擎提供的 MonoBehaviour 方法之一,用於獲取遊戲物件上的組件。


我們得到了Rigidbody內的就可以用它的功能了

velocity// 改變物體的速度

AddForce// 應用向前的推力

angularVelocity // 改變物體的角速度

我們需要跳 AddForce

給一個瞬間的力量 ​

if (Input.GetKeyDown(KeyCode.Space))

{

rb.AddForce(new Vector2(0, 200));

}

raw-image

GetKey() V.S. GetKeyDown()

GetKey():當透過你所指定的按鍵被使用者按住時回傳true,是按住,就是長按的意識,例如你想控制角色在你按住方向鍵時移動,那麼就是用GetKey()。

GetKeyDown():當透過你所按下指定名稱的按鍵時的那一幀時回傳true,是那一幀,就一下的事情,不管你按多久,只是在你按下的那一瞬間。


最後我們把上述的東西,用一個自創方法把它包起來,整理起來比較好看一點,之後如果要打包出去,直接呼叫方法名就可以用了,

目前沒有要給其他人或外部使用,我們可以先用private限制他的權限,方法名稱我們先叫BaseMove吧....

BaseMove();................這邊是一個函式用來呼叫方法

private void BaseMove().............這邊寫方法的內容

{

}

raw-image

這樣就完成簡單的物體移動了!

🪑🪑🪑🪑🪑🪑🪑🪑🪑🪑🪑🪑🪑🪑🪑🪑🪑🪑

.

.

.

.

.

.

.

.

.

.

辛苦大家了,其實Unity早幫我們寫好簡單的移動了WASD


註解// /* */

大家可以先把前面的文字註解起來,之後回去可以跟朋友分享打得多辛苦 ><

複習一下註解,有兩種方式,對付一行的或對付一段的~~

對付一行:

// 15445 I'm Gavin.

對付一段:

/* 15445 I'm Gavin. 15445 I'm Gavin. 15445 I'm Gavin.

I'm a student now. I'm a student now. I'm a student now.

Happy every day */


raw-image

原本是還要宣告一個變數,然後再呼叫變數來使用

EX:

float verticalInput = Input.GetAxis("Vertical"); // 獲取垂直軸的輸入值

Vector3 moveDirection = new Vector3(0, 0, verticalInput); // 創建移動方向向量


不過Unity都幫你想好了,不用宣告可以直接使用。

this.gameObject.transform.Translate(Input.GetAxis("Vertical") * Speed * Time.deltaTime, 0, 0);

this.gameObject.transform.Rotate(0, Input.GetAxis("Horizontal") * 60 * Time.deltaTime, 0);

raw-image

這樣就完成更簡單的物體移動了!




    avatar-img
    4會員
    20內容數
    Gavin Hsieh ㄉ基地
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    Gavin Hsieh ㄉ基地 的其他內容
    完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
    本章節要帶大家初探虛擬實境這個產業~~~ 伴隨著科技進步發展,VR 虛擬實境已逐漸擴大應用到許多產業之中,2021 年不能錯過的熱搜榜科技新詞「元宇宙」更是其混合使用的最強案例。然而, AR/VR 混合式的 MR 以及 XR 也趁勢崛起,大幅度的挑戰人們對於感官的互動體驗! 虛擬實境(Vir
    完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
    本章節要帶大家初探虛擬實境這個產業~~~ 伴隨著科技進步發展,VR 虛擬實境已逐漸擴大應用到許多產業之中,2021 年不能錯過的熱搜榜科技新詞「元宇宙」更是其混合使用的最強案例。然而, AR/VR 混合式的 MR 以及 XR 也趁勢崛起,大幅度的挑戰人們對於感官的互動體驗! 虛擬實境(Vir
    你可能也想看
    Google News 追蹤
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    Thumbnail
    CIP表示,若越南要實現2030年離岸風電裝置容量6GW的目標,必須在2024年進行離岸風電試點開發,逐步完善相關政策與法規。
    Thumbnail
    為避免相關特別法規(包括VASP規範)頒布前存在法規適用的空窗,現階段或中短期較務實的折衷之道,最佳作法是參照本文增訂相關法條,將虛擬資產(電磁紀錄),尤其是虛擬通貨或加密貨幣等資產定性為物之動產,以示明確且為往後特別法規做鋪路及延伸適用,達到法律體系之完整性。
    Thumbnail
    2024年春節期間,涉及ACE交易所及虛擬貨幣的詐騙事件在臺灣爆發,許多人遭受詐騙集團的傷害。這篇文章對此事件的始末做了描述,提醒讀者警惕投資詐騙。
    Thumbnail
    2024 年,臺灣的虛擬貨幣 / 加密貨幣交易所需求性必定提升,不論是比特幣 ETF 的通過或者比特幣減半的利好消息。本文介紹了一些支援臺幣入金的交易所,每個都擁有獨特的特色和優勢,致力於為用戶提供更安全、更穩定的交易環境。
    Thumbnail
    文章目錄 GA4 簡介 SEO 代理商 GA4 應用 社群媒體代理商 GA4 應用 數位廣告代理商 GA4 應用 數位行銷顧問公司 GA4 應用 網站設計與開發公司 GA4 應用 影片製作公司與內容行銷代理商 GA4 應用 聯絡 TenMax 獲得免費 GA4 健檢機會 GA4
    Thumbnail
    文、圖/TenMax提供   2024 年,數位環境不斷演變,對代理商而言,熟悉並善用 Google Analytics 4 (GA4) 已成為提高投資回報率和客戶競爭力的重要一環。在這樣的背景下,TenMax 深度剖析 GA4 在各領域的應用,為各個產業的代理商提供更全面的數位行銷解
    Thumbnail
    可能包含敏感內容
    驚魂甫定送走2023年,2024年依舊充滿挑戰,此時沈思回顧「只需五瓶威士忌」推薦清單,能顯現對未來的信念,以下個人精選「2024只需五瓶威士忌」推薦清單,願所有朋友有好酒相伴順航2024年:
    Thumbnail
    在2024年,行銷將持續迎來新的挑戰和機遇。精明的行銷人士應該透過不同的渠道和工具來提升品牌的可見性並實現更高的轉換率。3種必須數量掌握的工具
    Thumbnail
    可能包含敏感內容
    送走全球烽火的2023,航向未知的2024年,思考一下:如果都喝好市多買自有品牌柯克蘭威士忌,能不能又撿便宜、又兼顧喝酒品味需求?以下是「2024只需五瓶好市多威士忌」的推薦清單:
    Thumbnail
    可能包含敏感內容
    近年台灣蘭姆酒品牌激增,蘭姆酒在台灣均價低於威士忌,漫長濕熱的日子裡,較低價格讓純飲與調酒都適合的蘭姆酒,給烈酒迷更多飲酒變化彈性,以下是2024只需五瓶蘭姆酒推薦清單,乾杯!
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    Thumbnail
    CIP表示,若越南要實現2030年離岸風電裝置容量6GW的目標,必須在2024年進行離岸風電試點開發,逐步完善相關政策與法規。
    Thumbnail
    為避免相關特別法規(包括VASP規範)頒布前存在法規適用的空窗,現階段或中短期較務實的折衷之道,最佳作法是參照本文增訂相關法條,將虛擬資產(電磁紀錄),尤其是虛擬通貨或加密貨幣等資產定性為物之動產,以示明確且為往後特別法規做鋪路及延伸適用,達到法律體系之完整性。
    Thumbnail
    2024年春節期間,涉及ACE交易所及虛擬貨幣的詐騙事件在臺灣爆發,許多人遭受詐騙集團的傷害。這篇文章對此事件的始末做了描述,提醒讀者警惕投資詐騙。
    Thumbnail
    2024 年,臺灣的虛擬貨幣 / 加密貨幣交易所需求性必定提升,不論是比特幣 ETF 的通過或者比特幣減半的利好消息。本文介紹了一些支援臺幣入金的交易所,每個都擁有獨特的特色和優勢,致力於為用戶提供更安全、更穩定的交易環境。
    Thumbnail
    文章目錄 GA4 簡介 SEO 代理商 GA4 應用 社群媒體代理商 GA4 應用 數位廣告代理商 GA4 應用 數位行銷顧問公司 GA4 應用 網站設計與開發公司 GA4 應用 影片製作公司與內容行銷代理商 GA4 應用 聯絡 TenMax 獲得免費 GA4 健檢機會 GA4
    Thumbnail
    文、圖/TenMax提供   2024 年,數位環境不斷演變,對代理商而言,熟悉並善用 Google Analytics 4 (GA4) 已成為提高投資回報率和客戶競爭力的重要一環。在這樣的背景下,TenMax 深度剖析 GA4 在各領域的應用,為各個產業的代理商提供更全面的數位行銷解
    Thumbnail
    可能包含敏感內容
    驚魂甫定送走2023年,2024年依舊充滿挑戰,此時沈思回顧「只需五瓶威士忌」推薦清單,能顯現對未來的信念,以下個人精選「2024只需五瓶威士忌」推薦清單,願所有朋友有好酒相伴順航2024年:
    Thumbnail
    在2024年,行銷將持續迎來新的挑戰和機遇。精明的行銷人士應該透過不同的渠道和工具來提升品牌的可見性並實現更高的轉換率。3種必須數量掌握的工具
    Thumbnail
    可能包含敏感內容
    送走全球烽火的2023,航向未知的2024年,思考一下:如果都喝好市多買自有品牌柯克蘭威士忌,能不能又撿便宜、又兼顧喝酒品味需求?以下是「2024只需五瓶好市多威士忌」的推薦清單:
    Thumbnail
    可能包含敏感內容
    近年台灣蘭姆酒品牌激增,蘭姆酒在台灣均價低於威士忌,漫長濕熱的日子裡,較低價格讓純飲與調酒都適合的蘭姆酒,給烈酒迷更多飲酒變化彈性,以下是2024只需五瓶蘭姆酒推薦清單,乾杯!