0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unityでつくる2DRPG ~⑦スクリプト解説(移動処理)

Last updated at Posted at 2025-12-24

はじめに

前回は、スクリプトの作成とアタッチを行いました。

今回は、その移動処理についてざっくりと解説していきます。

解説

全体の流れ

基本的には以下のような処理が行われています。

・十字キー入力を検知し、移動先のマスの情報を調べる
・移動先に障害物がある場合、移動しない
・移動先が別チャンクの場合、チャンク切り替え処理を行う
・特に何もない場合は、移動させる

Player.cs

このスクリプトでは、プレイヤーの移動に関する処理のうち一部が書かれています。

基本的に、書かれているのは移動処理用の変数や関数の定義です。移動処理のうちの大部分はPlayer.csではなくSceneManager.csで行われています。

SceneManager.cs

このスクリプトでは、移動処理の中枢となるコードが書かれています。

ゲームが始まるとまず、初期チャンクとプレイヤーの配置が行われます。
その後、MovePlayerというコルーチンが開始されます。

このコルーチンが、移動処理の本体です。

流れを説明しましょう。
十字キー入力を検知すると、移動先の座標の計算が行われます。
ここでもし移動先の座標が同じチャンク内、かつ障害物が無い場合は、プレイヤーを移動させます。
移動先の座標がチャンクサイズを超えている場合、チャンク切り替え処理に入ります。

チャンク切り替え処理では、以下の作業が行われます。
・移動先のチャンクを取得
・取得したチャンクを中心に、隣接チャンクを並び替える
・プレイヤーを適切な座標に移動させる

この処理が完了することで、プレイヤーの移動がなされます。

MapChunk.cs

このスクリプトでは、主に隣接チャンクを管理しています。

後はチャンク切り替えの際に使われる関数が定義されています。

おわり

今回は、ざっくりとですがスクリプトの解説を行いました。

次回は、プレイヤーのステータスを管理するシステムを作成します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?