Unityで2Dゲームのオブジェクトとスクリプトを作成【2Dゲーム作成.02】

初めてのUnityゲーム作成。第2回目はマトを設定して動かしていきます。1回目の記事は下記から。

オブジェクトの追加とスクリプトの作成

「動くマトをクリックする」ミニゲーム。前回は背景を設定しただけなので今回はマトを設定していきます。

マトを設定

まずはマトとなる画像を用意します、前回の背景と同じく「ぴぽや倉庫さん」から。マトとなる敵キャラを「Sprites」に追加。

背景と同じようにドラッグ&ドロップをしてシーンに追加。インスペクター画面から位置を全て0にして、画面に表示するようにレイヤー順序も変更。

このままだとただ画像を貼り付けだけなので動くようにするために「コンポーネントを追加」します。2D物理→2Dリジッドボディを選択。項目が色々あるので、これが正解なのかな?という若干の疑問を持ちつつ。

んでもってこれで一回再生してみると、マトが落ちていくので、落ちないように重力スケールを0に変更。これで一旦マトの設置は完了

スクリプトの作成

次にこのマトを動かしていきます。まずはAssetsフォルダ内に「Scriptsフォルダ」を作成。

Scriptsフォルダ内に「作成」→「C#スクリプト」を選んでスクリプトを生成します。名前はEnemyとでもしておきます。生成したファイルを開くと下のような感じになっています。

このStart()内にマトが動くように以下のようにコードを書いていきます。

void Start()
{
    //ランダムな方向と速度を設定
    float ang = Random.Range(0, 359);
    float spd = 3;

    //移動パラメータを設定
    Vector2 v;
    v.x = Mathf.Cos(Mathf.Deg2Rad * ang) * spd;
    v.y = Mathf.Sin(Mathf.Deg2Rad * ang) * spd;
    GetComponent<Rigidbody2D>().velocity = v;
}

簡単に解説していくとまずは角度をランダムに生成して変数へ格納(0~360度の中かからランダムで選択)。マトの移動速度として3を変数へ格納。

度数をラジアンに変換してパラメータとして設定。という感じです。ここはちょこっと調べました。

テスト的に動かしてみるととりあえずそれっぽく動きますね。まあ、画面外に出ていきますが・・・とりあえず今回はここまで。マトを動かしてみましたが、簡単だと思っていましたが、意外と少し調べました。

動かし方にも色々あるので、あくまでも一例ですね。

タイトルとURLをコピーしました