(Unity)戦車から砲弾を発射する。

(1)砲弾(Shell)の準備

「Rigidbody」を設定。

「Use Gravity」はオフにする。(これでゆっくりでもまっすぐ飛ぶようになります)

Shellをプレハブ化しましょう。

 

(2)発射台(ShotShell)の準備

新規に「Create Empty」を作成

名前を「ShotShell」に変更

発射台の位置を調整(少し前に出すのがポイント)

位置が決まったら「親子関係」の設定

 

(3)スクリプトの作成

新規にC#スクリプトを作成

名前を「ShotShell」に変更

下記のコードを書いてチェック。

 

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

public class ShotShell : MonoBehaviour
{
    public GameObject shellPrefab;
    public AudioClip sound;
    public float speed;

    void Update()
    {
        if(Input.GetKeyDown(KeyCode.Space))
        {
            GameObject shell = Instantiate(shellPrefab, transform.position, Quaternion.Euler(90, transform.root.eulerAngles.y, 0));
            Rigidbody shellRb = shell.GetComponent<Rigidbody>();
            shellRb.AddForce(transform.forward * speed);
            AudioSource.PlayClipAtPoint(sound, transform.position);
        }
    }
}

チェックが完了したら「ShotShell」オブジェクトに設定

プレハブデータ、サウンド等を設定


設定が完了したらゲームを再生

スペースキーで砲弾発射。

戦車の向きに合わせて砲弾の向きも変化すれば成功です。

 


*キッズ・レギュラークラスでは、Unityを使った戦車ゲームを作成します。もし、もっと学んでみたい方はレギュラークラスに参加してみてください。


Unityで学ぶキッズ・プログラミングスクール