SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

速習 Unity 2Dゲーム開発

速習 Unity 2Dゲーム開発
~第3回 キャラクターの移動

速習 Unity 2Dゲーム開発 第3回

デバッグ実行

 ここまで修正したらデバッグ実行します。

 ソースコードのStartメソッドの終わりにブレークポイントを設置します。ブレークポイントの設置はコードの下画像の位置をクリックすることで行います。その結果、赤い丸印としてブレークポイントが表示されます。

ブレークポイントの設置
ブレークポイントの設置

 Visual Studio 2013 Tools for Unityを導入したVisual Studioの場合、画像のように「Attach to Unity」というボタンがありますので、それをクリックします(MonoDevelopでも同様のことができます)。

Attach to Unity
Attach to Unity

 Unity側でゲームを開始すると、以下のようにブレークポイントを設置した場所でプログラムが停止します。

ブレークポイントでの停止
ブレークポイントでの停止

 停止した時点の変数を確認することもできます。

ブレークポイント停止時の変数
ブレークポイント停止時の変数

 ブレークポイントで停止した状態から再開します。

 「Attach to Unity」ボタンがあった位置に「続行」というボタンが表示されているので、それをクリックします。

プログラムを再開する
プログラムを再開する

 続行するとすると、キャラクターが段々と画面左向きに移動していきます。

実行結果。キャラクターが移動していく
実行結果。キャラクターが移動していく

処理内容の解説

 ここまでの処理を解説します。

MonoBehaviourクラス

 Unityで追加されたScriptはMonoBehaviourを継承しています。GameManagerクラスの初期コードのように、MonoBehaviourクラスはStartとUpdateという2つの便利なメソッドを提供します。

Startメソッド

 GameObjectが作成されたタイミングで呼び出されるメソッドです。多くの初期化処理はStartメソッドに記述されます。今回のコードではcharactorと名前を付けられたGameObjectを取得してクラス変数に格納しています。

Updateメソッド

 ゲームが更新されるタイミングで呼び出されるメソッドです。Updateメソッドはゲームの中に連続して呼び出され続けます。Updateメソッドの中で画面の更新、プログラミングの判定などを記述することでゲームが動作します。

更新処理について

 厳密にいうと、Unityの2Dゲーム開発機能の更新には描画系の更新と物理演算などの更新は異なるメソッドで行うのですが、今回は分かりやすさを重視してUpdateメソッドにすべての更新処理を記述しています。

 この辺の書き分けは後の回で紹介していこうと思います。

GameObject.Findメソッド

 GameObjectクラスは、文字通りゲーム内に配置されたGameObject(スプライトやスクリプト)を操作するクラスです。

 Findメソッドは引数に指定したGameObjectをScene内から取得します。

rigidbody2D.AddForceメソッド

 rigidbody2D.AddForceメソッドは対象のGameObjectに力を加える(AddForceする)メソッドです。Updateメソッド内で定期的にこの処理が呼び出されるため、キャラクターは少しずつ左に移動していきます。

 第2回の記事でキャラクターにRigidbody 2Dというコンポーネントを追加したことを思い出してください。第2回ではRigidbody 2Dを追加することでキャラクターは重力の影響を受け落下するようになりましたが、今回のようにプログラムで力を加えることでキャラクターを動かすこともできます。

Vector2

 2次元のベクトルを表します。Vector2.rightで右方向のベクトルを取得できます。今回はそれにマイナスの値をかけることでキャラクターを左に移動させています。

次のページ
キー操作を取得する

この記事は参考になりましたか?

速習 Unity 2Dゲーム開発連載記事一覧

もっと読む

この記事の著者

西村 誠(ニシムラ マコト)

 Microsoft MVP Windows Platform Development。 Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。 ブログ:眠るシーラカンスと水底のプログラマー 著書:基礎から学ぶ Windowsストアアプリ開発

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/8028 2014/11/13 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー