『Unity5ゲーム開発レシピ』「Part01 基本編 Chapter04 敵キャラクターを登場させる」 学習記録

Unity5ゲーム開発レシピ ハマるゲーム制作のノウハウ

Unity5ゲーム開発レシピ ハマるゲーム制作のノウハウ

序文

『Unity5ゲーム開発レシピ』6日目。

最近クリエイティブな作業をしていないのでモチベーション下がり気味。

GitHub

github.com

進捗

  • Part01 基本編
    • Chapter04 敵キャラクターを登場させる(途中)

(学習時間:2時間)

コード実装部分

\Chapter1\Assets\Scripts\Enemy.cs

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

public class Enemy : MonoBehaviour
{
  GameObject target;

  public GameObject shot;

  float shotInterval = 0;
  float shotIntervalMax = 1.0f;

  public GameObject explosion;

  void Start()
  {
    // ターゲットを取得
    target = GameObject.Find("PlayerTarget");
  }

  void Update()
  {
    // プレイヤーとの距離が近づくと攻撃してくる
    if (Vector3.Distance(target.transform.position, transform.position) <= 30)
    {
      // スムーズにターゲットの方向を向く
      // エネミーの向くべき方向を算出する
      Quaternion targetRotation = Quaternion.LookRotation(target.transform.position - transform.position);
      // スムーズに方向を変える。第三引数はスピード
      transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 10);

      shotInterval += Time.deltaTime;

      if (shotInterval > shotIntervalMax)
      {
        Instantiate(shot, transform.position, transform.rotation);
        shotInterval = 0;
      }
    }
  }

  private void OnCollisionEnter(Collision collider)
  {
    // プレイヤーの弾と衝突したら消滅する
    if(collider.gameObject.tag == "Shot")
    {
      Destroy(gameObject);
      Instantiate(explosion, transform.position, transform.rotation);
    }
  }
}
  • その他実装部分

github.com

実行結果

www.youtube.com カメラの操作が覚えられない人の図

感想

やったこと。

  • 敵が一定距離まで近づくと攻撃してくるように実装
  • 敵に弾が当たるように実装

Unityの操作ってオブジェクト指向プログラミングをGUIでやっているような感覚だと思った。

それぞれのオブジェクトやスクリプトが明確に分離されていて、それらを組み合わせてゲームを作っていく感覚が心地よい。

なるほどC#とは相性が良さそうだ。

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

BGM

初恋とはなんぞや / パブリック娘。

www.youtube.com ネタがなくなった