切換
舊版
前往
大廳
主題

[Unity]基礎角色位移

bangkai | 2018-02-17 15:09:09 | 巴幣 6 | 人氣 4930

先看看做出來的成果
廢話不多說進入
目前我使用的移動方法為,我們給定座標做座標的跟新
基礎的概念為先使角色旋轉,在做座標改變,最後撥放動畫
做法:
1.匯入角色模型,及一個走路的動畫(廢話)P.S如果沒有模型的話可以在AssetStore裡面找一些免費模型,如下圖我使用UnityChan這組

2.建立一個Animator Controller再新增的Animator Controller裡把站立和走路動畫塞進去
P.S Entry建議是連接站立動畫,如果是連接到別的動畫遊戲開始時就會亂跑

這裡是動畫的變數,裡面有Float、Int、Bool、Trigger四種依據不同需求使用,這次使用Bool
.

在WAIT->Walk利用剛剛新增的Walk的開關做控制


程式碼的部分:
我們用WSDA來控制旋轉方向,如下圖

剛做完一定覺得動起來很怪,好像轉向的呈現太突然,而且放開鍵盤動畫還是一直跑?要連續按好幾下角色才會有明顯位移等。問題所以我們再來加強改造一番,首先是鍵盤輸入的部分,Unity 裡面有一種方向鍵輸入的函數,分別為Vertical(垂直)Horizontal(水平),當我們按上或下時Vertical會回傳一個-1~1的float,反之Horizontal也一樣。
P.S在Edit->Project Settings->Input 可以改變按鍵,預設是方向鍵及WSDA。
這樣子就可以做出簡單的移動。

謝謝觀賞,之後會跟新自己所做的功能

程式碼在下方連結
https://gist.github.com/ray5527880/c7f5cf01310e37e13c76cbe527cbc86d




創作回應

天鎖斬月
獲益良多 謝謝你
2019-01-18 01:24:14
暑假小鬼
腳色可以轉視角 不能移動
UnassignedReferenceException: The variable anim of A has not been assigned.
You probably need to assign the anim variable of the A script in the inspector.
UnityEngine.Animator.SetBool (System.String name, System.Boolean value) (at C:/buildslave/unity/build/Modules/Animation/ScriptBindings/Animator.bindings.cs:343)
A.Update () (at Assets/02Scripts/A.cs:49)

A是我照你寫的程式名
2019-04-24 20:49:46
暑假小鬼
我找到原因了 謝謝大大
2019-04-24 21:11:14
Milk tea
不好意思,使用了你的程式碼之後C#腳本他說有錯誤,請問是哪裡出現錯誤呢,都跟著你的步驟做了..
2020-01-26 22:03:33
好吃餅乾
請問一下,如果我想改變她走路的速度應該要怎麼改,謝謝
2022-09-20 23:33:21

更多創作