Unityでゲーム、アプリ開発

Unityで初めてゲームやアプリを作る人のための支援ブログです。

Unity FPS、アクションで武器の切り替えをする方法。FPSゲーム作り③ Unity学習

今回はFPSやアクションゲームなどで使われそうな武器の
切り替え方法についての紹介です


FPS,アクションで武器の切り替えをする方法。 FPSゲーム作り③

f:id:Phoenix9056:20200529002741p:plain

FPSやアクションゲームで武器の切り替えって出来ると
楽しいですし、欲しくなるかと思います。

なので、今回は簡単に切り替える方法を紹介していきたいと思います。

※一応プログラムは前回の続きからやっていて、知らなくてもコードだけ
コピペすればいいと思いますが、リンクを貼っておきます。

www.unityprogram.info
www.unityprogram.info


アセットストアから武器をインポートしよう!

f:id:Phoenix9056:20200529003653p:plain

エディタ画面上部にある、Window⇨Asset Storeをクリックしてアセットストアを
開いて、Machine Gunsと検索してインポートしてください。
※ブラウザからのインポートは下記リンクより。
assetstore.unity.com

この銃のアセットですが中身はマシンガン仕様の銃になっていて、
アニメーションやパーティクルも入っていたのでコレから
色んなアニメーションもつけていきたい人にはおすすめです!



武器を設置していきましょう!

f:id:Phoenix9056:20200529012249p:plain

Assets内にある先程インポートした①FreeMachineGunsの▶︎をクリックして、
Prefabsを選択します。

②のMachineGun_00Scene画面にドラッグ&ドロップして
配置していきましょう。
今回は分かりやすく③のように反対に設置しましたが、同じ場所でも大丈夫です。



次にスクリプトを作って武器を切り替えるようにします。

f:id:Phoenix9056:20200529013151p:plain

Project⇨Assets内で右クリック⇨Create⇨C# Scriptを選択して
名前をWeaponChangeに変更して作成してください。
次のコードをコピー&ペーストするか同じ記述にしましょう。

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

public class WeaponChange : MonoBehaviour
{
   //GameObjectを[]で配列でわけます。
    public GameObject[] gun;
    //int型を変数numberで取得。
    private int number;
    
    void Start()
    {
       //Lengthで変数gunの要素数を取得してiで数を増やします。
        for (int i = 0; i < gun.Length; i++)
        {
            //もしiと変数numberの数が同じだったら。
            if (i == number)
            {
                //正しければ配列欄をSetActiveで表示させます。
                gun[i].SetActive(true);
            }
            else
            {
                //違った場合は表示させません。
                gun[i].SetActive(false);
            }
        }
    }

    void Update()
    {
       //もしマウスボタンの右クリックが押された時の処理。
        if (Input.GetMouseButtonDown(1))
        {
            //変数numberの数はnumber+1割る変数gunの要素数になる。
            number = (number + 1) % gun.Length;
            //for文で条件を付け足し、変数gunの要素数を取得して。
            for (int i = 0; i < gun.Length; i++)
            {
                //変数numberの数とiの数が同じだったら
                if (i == number)
                {
                    //セットされたオブジェクトを表示して
                    gun[i].SetActive(true);
                }
                else
                {
                    //セットされたオブジェクトを非表示にします。
                    gun[i].SetActive(false);
                }
            }
        }
    }
}

出来上がった①のスクリプトHierarchy内にある
②のキャラクターにドラッグ&ドロップしてアタッチします。

Inspectorに追加された④のスクリプトSizeに変更して
2つ欄を増やします。
最後にHierarchy内にある③の入れ替えたい武器を
それぞれドラッグ&ドロップして完成です。

入れ替わるか再生してみましょう!

f:id:Phoenix9056:20200529032803g:plain

上手く武器が切り替わったでしょうか?

今日はこんな感じで終わりたいと思います!
ご視聴ありがとうございました!

今日のゆうきさんの動画はコチラ!笑笑

youtu.be

※Unityを学習していきたい人は下記カテゴリからご覧ください。少々めんどくさい感じです。
www.unityprogram.info

※オススメのアセットの紹介は下記カテゴリから見てみてください。気に入るアセットがあるはずです。
www.unityprogram.info

※本格的に3Dゲームを作っていきたい方は下記カテゴリを参考にしてください。
www.unityprogram.info

※実際に使って学習した学習本の紹介は下記カテゴリをご覧ください。
www.unityprogram.info

※初心者に向けた簡単な記事は下記カテゴリをみってね!
www.unityprogram.info