unity

unityで弾の発射位置をコントロールする方法

投稿日:

Pocket

うも、大石です。

あなたはunityで弾の発射位置を自由に

コントロールしたいですか?

 

この記事を読めばあなたの好きな位置から

弾を発射できるようになりますよ。

 

スポンサードサーチ

unityで弾の発射位置をコントロールする方法

 

ということで早速本題です。

 

弾の発射位置を自由にいじるには、

以下をしましょう。

 

 

空のオブジェクトを作成しそれに、スクリプトをつけ、

弾prefab用の変数名宣言と、

Instantiate(変数名,transform.position,Quaternion.identity);

 

と書きましょう。

 

上記のコードの例としては以下です。


public class launcher : MonoBehaviour
{
	public GameObject bullet;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetKeyDown("space")){
        	Instantiate(bullet,transform.position,Quaternion.identity);
        }
    }
}

 

あとは変数に弾prefabをセットするのを

忘れずに。

 

 

またif文のとこは発射位置に関係ないですが、

spaceを押せば弾が発射されるので、

発射位置の確認用に記述しておくといいです。

 

このように書いておけば、

最初に作った空オブジェクトの座標(x,y,zのやつ)が

弾の発射位置になります。

 

 

なので空オブジェクトを大砲の先に持ってきたり、

銃の先に持ってきたりすると、

ちゃんと意図したところから弾が発射されます。

 

これで発射位置を自由にできるので、

もうそれ以上を気にしない方はここで読むのを

やめられてもokですが、

 

一応これの仕組みを説明しておきます。

 

 

知っておくとあなた自身で応用が効くように

なるので読むといいかなと思います。

 

スポンサードサーチ

弾の発射位置をコントロールする仕組み説明

 

で、発射位置を自由にいじるために

今回キーになってるのは、

Instantiate()の中の引数です。

 

Instantiateは弾にしたprefabなど

選んだオブジェクトをスクリプトから

複製できる関数ですが、

 

実はオブジェクトを生成する座標を、

引数を追加すれば指定できます。

 

 

今回、Instantiateの引数の中に、

Instantiate(変数名,transform.position,Quaternion.identity);

と書いてますが、

 

これが弾オブジェクトを生成する座標を表してます。

(つまり発射位置です)

 

で、そのオブジェクトの生成位置にあたるのが、

Instantiate()の変数名の隣のtransform.position

の部分です。

 

 

この記述を書いておくと、

このスクリプトがついてるオブジェクトの

座標と同じ場所にオブジェクトを生成する、

 

という意味になるのです。

 

 

なので例えば、

鉄砲があって鉄砲の銃口の座標が、

(4,10,9)とかだとします。

 

すると,Instantiateの引数にtransform.positionと

書いておけば、そこと全く同じ座標(4,10,9)に

弾オブジェクトを生成してくれるわけです。

 

 

Instantiate()は生成したいゲームオブジェクトの

変数名だけしか引数に書いてない場合、

 

生成したいオブジェクトが存在してる座標に

オブジェクトを生成します。

 

 

例えば、銃口の座標が(4,10,9)で

弾オブジェクトが(2,20,1)とかにあると、

 

Instantiateしても弾は銃口の座標からでず、

(2,20,1)の座標に生成されるのです。

 

これだと発射位置として具合が悪いですよね。

 

 

ですが、

Instantiate(変数名,transform.position,Quaternion.identity);

のようにtransform.positionと書いとくと、

 

スクリプトをはっつけたオブジェクトの座標に

オブジェクトが生成されるので、

オブジェクトを動かすだけで発射位置を変更できるわけです。

 

またInstantiateは座標の他にも引数が取れまして、

回転も指定できます。

 

 

でコードに書いてるQuaternion.identityというのは、

 

無回転のことを表してまして、

生成するオブジェクトに対してなんの回転も加えず

生成するという意味です。

 

Instantiateではtransform.positionを書いて

座標指定すると、このQuaternion.identityも

一緒に合わせて書かないとエラーになるので、書きましょう。

 

スポンサードサーチ

まとめ

 

はい、ということで仕組みの説明をしてきましたが、

要はInstantiate()では引数を加えることで、

発射位置(オブジェクトの生成位置)をいじれるのです。

 

なので、弾の発射位置を自由にコントロール

したければ、空オブジェクトにスクリプトつけて、

Instantiate(変数名,transform.position,Quaternion.identity);

 

と書いときましょう。

 

 

ということでunityで弾の発射位置

を自由にいじる方法でした。

 

それでは読んでもらってありがとうございました。

 

大石

 

-unity

==========

Unity用の3Dモデルを探してる方、欲しい方ご注目!

自作のUnity用3Dモデルを販売(基本的に無料版あり)してますので、
以下のリンクより一度ご覧ください。

Unity用3Dモデルを見てみる

==========


スポンサードサーチ

関連記事

no image

unityでオブジェクトの色をスクリプトから変更する方法

どうも大石です。   この記事ではunityでオブジェクトの色を スクリプトから変更する方法を書いてますので、   この記事を読めばあなたはスクリプトから オブジェクトの色を変更で …

no image

unityで敵に近づくと追いかけてくるコードとコードの解説記事

どうも、チャーさんです。   あなたはunityで敵に近づくと、 プレイヤーを追いかけてくるという機能を つけたいと思っていませんか?   この記事ではそれを実現するコードと方法や …

no image

unityでoculus questの開発をしたい方必見!手順まとめました

どうも、チャーさんです。   あなたはunityでoculus questの 開発をしたい、そう思ってませんか?     この記事ではunityでoculus quest …

no image

unityでキー入力で攻撃する方法(3分以内にできます)

どうも、チャーさんです。   あなたはunityでキー入力による攻撃を したいですか?   この記事ではunityでキー入力で攻撃を する方法を書いてますので、あなたがこれを読めば …

no image

Unityでオブジェクトに重力を1分以内につける方法

  どうも、チャーさん(@chaa___san)です。   あなたはUnityでオブジェクトに重力をつけたいですか?   この記事ではUnityでオブジェクトに、 重力を …

no image

unityでオブジェクトをスクリプトで削除する方法

どうも、チャーさんです。   あなたはunityでゲームオブジェクトを、 スクリプトなどから削除したいですか?   この記事では、関数を使い、 ゲームオブジェクトを削除する方法を書 …

no image

[unity]foreach内でget componentを使う方法

どうも、チャーさんです。   この記事ではunityのforeachループで get componentする方法を書きます。     なのでこの記事を読めば、 &nbsp …

no image

unityで敵を索敵する方法

どうも、大石です。   あなたはunityでプレイヤーが敵を索敵する 機能をつけたいですか?   この記事を読めば、敵を索敵する 機能を簡単に作れますよ。   ということ …

no image

unityで敵を移動させる方法(詳細にわかりやすく説明します)

どうも、チャーさんです。   あなたはunityで敵を移動させたい、 そう思っていませんか?   コライダーなどでもできるが、他の方法が ないかと探してませんか?   & …

no image

unityでターン制のゲームを作るにはコレを使いましょう

どうも、チャーさんです。 あなたはunityでターン制ゲームを作りたい そう思っていませんか?   この記事ではunityでターン制のゲームを 作る方法を書いています。   なので …

no image

unity上でblender作成モデルが透ける時の解決法

どうも、チャーさんです。   あなたはunityにblenderで作ったモデルを 持ってきたものの、面が透ける現象が起こって 困っていませんか?     この記事は、透け …

no image

unityで弾を発射する方法(簡単3ステップ)

どうも、大石です。   あなたは、unityで弾を発射したいですか? この記事を読めば、あなたはunityで弾を発射 できるようになります。   なので、弾を発射したければ、 この …

no image

unityで他のオブジェクトを取得する方法

どうもチャーさんです。   あなたはunityで他のオブジェクトを 取得したいがわからず困ってますか?   この記事では、unityで他のオブジェクトを 取得する方法を書いてます。 …

no image

unityで地形を作る方法「初心者でもできるように丁寧に説明してます」

どうも、チャーさんです。   あなたはunityでいい感じの地形を作りたい。 でも、やり方がわからない。と悩んでいませんか?   この記事では、unityで地形を作る方法を、 ステ …

no image

unityでのダンジョンの簡単な作り方(コードコピペで作れます)

どうも、チャーさんです。   あなたは、unityでダンジョンを作りたいと 思っていませんか?   この記事ではunityでのダンジョンの作り方を 説明してまして、本記事を読めば …

最新記事

チャーさん

プログラミング・筋トレ・unity系の記事などを書いてます。

大学卒業後→開業→個人事業主7年目ぐらいです。webサイト制作したり、unityでゲーム開発しております。

youtubeもやってまして、主にプログラミング動画とかunity系の動画をあげてるので見てください。