Unity3D:RPGゲームの一般的な移動方法

U3D で動きを実現するには多くの方法があります.RPG ゲームでは、2 つの一般的な動き方があります.最初の方法は、最初の人またはカメラがキャラクターの後ろのキャラクターを追跡する方法で、一人称に似ていますが、カメラはキャラクターの後ろにあります. 動いた, 基本的に FPS ゲームはこのようなものです, アクション格闘に焦点を当てたいくつかのゲームもこのようなものです. 直感的な視点を通じて, 人々は没入感を持っています. 2つ目はMOBAゲームに似たちょっとした神視点で、プレイヤーが俯瞰するのはもちろん、ある程度の傾きを持った俯瞰であり、実際に国内のMMOの多くがこの方式を採用しています。

両者の違いは実際には参照座標系であり、一人称移動方法は独自の座標系に基づく必要があり、画面は常に顔の向きに基づいています。鳥瞰図では、キャラクターの顔の向きによって画面の向きが変わることはありません.ワールド座標を基準にしています.前に歩いているときに見えるのは背中であり、曲がるときに見えるのはあなたです.周りがあなたの前です。

これら 2 つの移動方法を実現するには、まずキーボードとマウスの入力を取得する必要があります。現在、キャラクターが前後左右に移動し、マウスを使用してカメラを制御するには、全員がデフォルトで WASD に設定されています。キーボードとマウスの入力方法を取得することも非常に簡単です. Unity はこれらのパラメーターを既に設定しており、表示する設定の入力管理に移動できます.

キーボードの AD は Horizo​​ntal、つまり横方向の入力、WS は Vertical、つまり縦方向の入力です。

マウスの水平と垂直はそれぞれ Mouse X と Mouse Y で、スクロール ホイールは Mouse ScrollWheel です。

Vector3 MoveMent,cameraControl;
moveMent.Set(Input.GetAxis("Horizontal"),0,Input.GetAxis("Vertical"));//获取WASD的移动数据
cameraControl.Set(Input.GetAxis("Mouse X"),Input.GetAxis("Mouse Y"),Input.GetAxis("Mouse ScrollWheel"));//获取鼠标的移动数据

これら 2 つの 3 次元変数を通じて、キーボードとマウスの入力を取得できます。

鳥瞰図の移動は、上で取得したデータを使用して直接行うことができます。これは、取得したものが世界座標系の座標であるためです。

ctor.SimpleMove(moveMent*speed*Time.deltatime);//ctor是角色控制器

移動するもう 1 つの方法は、移動する前にワールド座標を独自の座標に変換することです。

Vector3 Dir = transform.TransformDirection(moveMent);
ctor.SimpleMove(Dir*speed*Time.deltaTime);

おすすめ

転載: blog.csdn.net/m0_61777011/article/details/124509836