CodeZine(コードジン)

特集ページ一覧

速習 Unity 2Dゲーム開発
~第8回 ゲームの調整

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/12/01 14:00
目次

衝突判定範囲の修正

 キャラクターのジャンプを試していると、キャラクターが床に触れていないのにもかかわらず、何かにぶつかっているかのように移動できなくなったり。床が切れているの宙に浮いているようにキャラクターが落下しない現象が確認できます。

キャラクターが宙に浮いている
キャラクターが宙に浮いている

 これはキャラクターの衝突判定範囲が想定以上に広いために意図しない動きをしてしまっているためです。

衝突判定範囲の確認

 キャラクターの衝突判定範囲はHierarchyウィンドウでキャラクター確認した状態でSceneウィンドウで確認できます。

キャラクターの衝突判定範囲
キャラクターの衝突判定範囲

 キャラクターの周囲に見える緑色の枠が衝突判定の範囲です。

 キャラクターをはみ出てかなり広範囲に設定されているのが分かります。

衝突判定範囲の修正

 衝突判定範囲はInspectorウィンドウのBox Collider 2DのSizeを変更することで修正することができます。

 SizeのXの値を1に変更します。

Sizeの値を変更
Sizeの値を変更

 Sceneウィンドウの衝突判定範囲(緑色の枠)が以下のように変更されました。

変更された衝突判定範囲
変更された衝突判定範囲

移動速度やジャンプ速度などの調整

 ジャンプをした際のキャラクターの動きがフワッと移動してゲームとしてはちょっともっさりした感じがします。

 キャラクターがすばやく動くように重力のかかり方やキャラクターの重さを変更することで調整します。

重力の修正

 重力やキャラクターの重さを変更するにはInspectorウィンドウのRigidbody 2Dを変更します。

 キャラクターが重力の影響を強く受けるようにキャラクターの重さ(Mass)を0.5に、重力の強さ(Gravity Scale)を4に変更します。

Rigidbody 2Dの変更
Rigidbody 2Dの変更

キャラクターに加わる力の修正

 プログラムを修正してキャラクター操作時に加わる力も調整します。GameManager.csのUpdateメソッドを以下のように修正します。

移動時に加える力の調整
// 左右の移動にかかる力
private float _horizontalForce = 15f;

// ジャンプ時にかかる力
private float _upForce = 800f;

// Update is called once per frame
void Update () {

    // 左右のキーで左右に移動
    float horizontal = Input.GetAxis("Horizontal");

    // キー入力がありジャンプ中でない場合は左右に移動
    if (horizontal != 0.0f && this._charactorScript.isJumping == false)
    {
        this._moveCharactor(Vector2.right * _horizontalForce * horizontal);
    }
    // スペースキーでジャンプ
    // ジャンプ中はスペースキーが押されてもさらに上昇しない
    if (Input.GetKeyDown("space") && this._charactorScript.isJumping == false)
    {
        this._moveCharactor(Vector2.up * _upForce);
    }
}

 今回調整した値はゲームのバランスを調整しながら、好みの値に変更してみてください。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:速習 Unity 2Dゲーム開発

もっと読む

著者プロフィール

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

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

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5