(Unity)スペースキーで弾を発射する

(1)下準備(弾の設定)

  • Sphereオブジェクトを1つ作成
  • 名前を「Shell」に変更
  • 大きさ、色は自由に設定
  • 「Rigidbody」を追加(重要)
  • 「Use Gravity」のチェックを外す(これでゆっくりでもまっすぐ飛ぶようになります)
  • Shellを「プレハブ化」したら、HierarchyにあるShellオブジェクトは削除

 

(2)下準備(発射台の設定)

  • 新規にCreate Emptyオブジェクトを作成
  • 名前を「ShotShell」に変更
  • 場所は自由に設定
  • これが発射台で弾はここから発射されます。

 

(3)スクリプトの作成

  • 新規にC#スクリプトを作成
  • 名前を「ShotShell」に変更
  • 下記のコードを書いてチェック

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

public class ShotShell : MonoBehaviour
{
    public GameObject shellPrefab;

    void Update()
    {
        if(Input.GetKeyDown(KeyCode.Space))
        {
            GameObject shell = Instantiate(shellPrefab, transform.position, Quaternion.identity);
            Rigidbody shellRb = shell.GetComponent<Rigidbody>();
            shellRb.AddForce(transform.forward * 500);
            Destroy(shell, 5);
        }
    }
}

(4)設定

  • コードのチェックが完了したらスクリプトをShotShellオブジェクト(発射台)に追加
  • 空欄にShellプレハブを設定

  • 設定が完了したらゲームを再生
  • スペースキーをおすごとに弾が発射されてまっすぐ飛べば成功です。