Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!

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のアセットの使い方が、 わからず困ってませんか?   この記事ではunityのアセットの使い方を、 1から説明してます …

no image

unityでカメラを追従させる簡単なコードと方法の説明をする記事

  どうも、チャーさんです。   あなたはunityでカメラの追従をさせたい、 こう思ってませんか?   この記事ではオブジェクトをカメラで追従させる、 (カメラが追いか …

no image

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

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

no image

unityでprefabを複製する(スクリプトで)方法

どうも、大石です。 あなたはunityでprefabをスクリプトで複製 したいですか?   この記事を読めば、あなたはprefabをスクリプトで 複製できるようになります。   な …

no image

unityで矢印キーでオブジェクトを移動させるには(3d)

どうも、チャーさんです。 あなたはunityで矢印キーで3dオブジェクトを 移動させたいですか?   この記事では矢印キーによる3dオブジェクトの 移動を実現する方法を書いてるので、 読めば …

no image

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

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

no image

unityで攻撃に当たり判定をつける方法

どうも、チャーさんです。 あなたはunityで攻撃に当たり判定をつけたいですか?   この記事では、当たり判定をつける 方法を書いてるので、読めば当たり判定をつけれます。   とい …

no image

blenderで作ったモデルをunityにインポートする方法「簡単です」

どうも、チャーさんです。   あなたはblenderで作ったものを、 unityで表示(インポート)したいと、 思っていませんか?   この記事では、あなたが作ったblenderの …

no image

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

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

no image

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

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

no image

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

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

no image

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

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

no image

unityでコンポーネントを取得する方法を詳しく解説

どうも、チャーさんです。 あなたはunityでコンポーネントを取得する方法を 探していますか?   この記事ではコンポーネントを取得する方法、 その際の変数宣言の書き方や、 コンポーネント名 …

no image

unityでマウスの座標を取得する方法(超簡単です)

どうも、大石です。   あなたはunityでマウスの座標を取得したい ですか?   この記事を読めば、あなたはすぐに マウスの座標を取得できますよ。   スポンサードサー …

no image

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

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

最新記事

チャーさん

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

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

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