カロリーメイトください

Barbaroi Ware(バルバロイ・ウェア)という名前でアプリ開発してます

『Unity チュートリアル』「2Dシューティング」 学習記録1

unity3d.com

序文

Unityの入門本の学習が終わったので、今日からは公式のUnityチュートリアルに少しずつ挑戦していこうと思います。
やっぱり3Dより2Dに興味があるかなー。

まずは日本語版でも提供されている「2Dシューティング」に挑戦。
やってみたけど、先に進めなくなった!というようなブログを見たような気がするので慎重に…。

ちなみに管理人が普段やるゲームは「天鳳」のみです。

オンライン対戦麻雀 天鳳 | 国内最高峰の対戦麻雀サイト

GitHub

github.com

進捗

  • イントロダクション
  • ゲーム制作編
    • スプライトとスプライトアニメーションの作成
    • プレイヤーの移動
    • プレイヤーから弾を撃つ

(学習時間:3時間)

コード実装部分

2d-shooting-game\assets\scripts\player.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
  // 移動スピード
  public float speed = 5;

  // PlayerBulletプレハブ
  public GameObject bullet;

  private IEnumerator Start()
  {
    while (true)
    {
      // たまをプレイヤーと同じ位置/角度で作成
      Instantiate(bullet, transform.position, transform.rotation);
      // 0.05秒待つ
      yield return new WaitForSeconds(0.05f);
    }
  }

  void Update()
  {
    // GetAxisRawはキーボードでの移動のときに使える
    // ← で x = -1、→ で x = 1、何も押してない時 x = 0
    float x = Input.GetAxisRaw("Horizontal");
    // ↓ で y = -1、↑ で y = 1、何も押してない時 x = 0
    float y = Input.GetAxisRaw("Vertical");

    // 単位ベクトル化
    Vector2 direction = new Vector2(x, y).normalized;

    // 移動する向きとスピードを代入する
    GetComponent<Rigidbody2D>().velocity = direction * speed;
  }
}
  • その他実装部分

github.com

実行結果

www.youtube.com

感想

Unity2Dのチュートリアルとしてはおそらくこれが一番入門編だと思うのだけど、プログラミング初心者にとってはなかなか理解が難しいかも。
いきなりInput.GetAxisRaw("Horizontal")とか言われてもねぇ。

実際、私は以前もこのチュートリアルに取り組んだことがあるのだけれど、コルーチンとかさっぱり理解できなかったもの。
ある程度、いろいろなことに手を出していると「よく分からないこと」が増えてきて「まぁ、こういうもんだろうな」って割り切れるようになったりするんだけどね。

ということで、Unityってヤツを使えば簡単にゲームが作れるらしいぞ!ぐらいのノリで挑戦しようとしている人は公式チュートリアルの前に「Unityの教科書」など入門者向け参考書から始めることをおすすめします。

Unityの教科書 Unity 2017完全対応版

Unityの教科書 Unity 2017完全対応版

カロリーメイトください。

BGM

暗闇 / STU48

www.youtube.com