チャムコード

チャーさんのUnityゲームラボです。Unityでゲーム制作する時に使うコードやノウハウをメインに発信しています。Unityでゲーム制作したいと思っているなら読んでください。

カメラ関連

Unityでカメラの切り替え機能の作り方はこちら

投稿日:2023年11月25日 更新日:

うも、チャーさんです。

あなたは、Unityでカメラを切り替えたいと思っていませんか?

 

この記事では、ゲームの再生中にキーボードの好きな

キーを押したらカメラを切り替えることができる

方法についてお話しします。

 

なのであなたがこの記事を読めば、キーボード操作で

カメラの切り替えができます。ですが、この記事を読まなければ、

どうやってやるんや?と頭をひねる事になるでしょう。

 

ということで、Unityでカメラの切り替え機能

を作りたい場合、このままスクロールして読んでください。

 

動画による説明はこちら

 

Unityでカメラを切り替える方法

 

ということでまずは結論です。

 

1、カメラを複数用意しよう。

(最初は2つがオススメ!)

 

2、スクリプトにカメラ切り替え用のコードを書こう。

 

ということで説明していきます。

 

 

カメラを複数用意しよう

 

まずは1、カメラを複数用意しようですが、

これはもう説明いらないと思いますが、切り替えるには

カメラが複数必要です。

 

ということで、

Main Cameraが最初シーン上にあるので、

カメラを1個追加して、

 

シーン上にカメラが2つ以上ある状態にしてください。

(最初は慣れるためにカメラが合計2つの状態がいいです)

 

 

カメラの出し方は、

Hierarchyの+をクリックして、

Cameraというのがあるので、

 

それをクリックしてください。

 

するとカメラが出ます。

で、カメラを出したら、位置を好きな場所に変えて

ください。

 

 

こんな風に、正面と横にカメラを置くと、

カメラを切り替えたときに、切り替わったのかを

確かめやすいです。

 

で、それが終わったら次はコードを書いていきましょう。

 

 

Unityでカメラを切り替えるスクリプト

 

ということでスクリプトを書くのですが、

スクリプトを貼り付ける用のオブジェクトを用意しましょう。

 

ということで、Hierarchyの+ボタンを

押して、Create Emptyをクリックしましょう。

 

 

すると何も表示されないオブジェクトができるので

そのオブジェクトにSwitchCameraとでも名前をつけて

置いてください。

 

(スイッチカメラー>カメラ切り替えという意味の名前です、

わかりやすくするため)

 

で、そのオブジェクトのAdd Componentをクリックし、

New Scriptでスクリプトを出しましょう。

スクリプトの名前もswitchCameraとかにしましょう。

 

 

 

で、それができたら、スクリプトをダブルクリックして、

エディターが自動で開くので、その中に以下の

ようなコードを書きましょう。

 

public class クラス名(スクリプト名がここに入ります) : MonoBehaviour
{
 
Camera mainCamera;
public Camera subCamera;
 
    // Start is called before the first frame update
    void Start()
    {
        mainCamera = Camera.main;
    }
 
    // Update is called once per frame
    void Update()
    {
    if(Input.GetKeyDown(KeyCode.A)){
     mainCamera.enabled = true;
     subCamera.enabled = false;
    }else if(Input.GetKeyDown(KeyCode.B)){
     subCamera.enabled = true;
     mainCamera.enabled = false;
    }
        
    }
}
 

ということで、説明します。

 

まず上2つ、

Camera mainCamera;
public Camera subCamera;

 

ですが、

これらは変数宣言で、カメラコンポーネントを

取得するようです。

 

 

何に使うかというと、スクリプトでカメラを

操作できるようにするためです。

 

で、このように書くと、インスペクターに

スロットができるので、

最初に追加した2つ目にあたるカメラを

ドラッグアンドドロップしましょう。

 

 

 

で、

mainCamera = Camera.main;

ですが、

 

これで最初にシーンに追加されてる

MainCameraって名前がついてるカメラオブジェクトを

取得でき操作できるようになります。

 

で続きの、

  void Update()
    {
    if(Input.GetKeyDown(KeyCode.A)){
     mainCamera.enabled = true;
     subCamera.enabled = false;
    }else if(Input.GetKeyDown(KeyCode.B)){
     subCamera.enabled = true;
     mainCamera.enabled = false;
    }
        
    }

 

ですが、この

if(Input.GetKeyDown(KeyCode.A)){
     mainCamera.enabled = true;
     subCamera.enabled = false;

 

が、パソコンキーボードのAを押したときに、

最初に追加されてるMain Cameraをオンの状態にし、

2台目のカメラをオフにするという記述です。

 

 

この.enabledっていうのが、カメラのオンオフに

関係してるプロパティでして、

trueでオンの状態、falseでオフの状態になります。

 

そこをキーボードを押したときにオンオフして、

カメラの切り替えがなされてる

というわけです。

 

 

で、続きの

else if(Input.GetKeyDown(KeyCode.B)){
     subCamera.enabled = true;
     mainCamera.enabled = false;
    }

 

も同様です。

 

こっちはキーボードのBを押したときに、

2台目に追加した方のカメラがオンになってて

Main Camera(最初からあるカメラ)がオフになる仕組みです。

 

 

キーボードを自由に設定したい場合

 

でどのキーボードを押したらとか判定してるのは、

if文の中のKeyCodeっていう部分ありますね、

そこで好きなキーボードを設定できます。

 

なのでカメラA、カメラBみたいな感じにして、

キーボードごとにカメラを対応させて、

切り替えるとわかりやすいですね。

 

で、このコードを書いたらあとは保存して、

ゲームの再生ボタンを押して、

キーボードのAやBを押しましょう。

 

 

それでカメラが切り替わって画面が切り替わってれば

成功です。

 

 

まとめ

 

ということでまとめです。

 

Unityでカメラを切り替えたいなら、以下の

ステップでいきましょう。

 

 

1、カメラを複数用意しよう。

(最初は2つがオススメ!)

 

2、スクリプトに切り替え用のコードを書こう。

 

そうすればキーボード操作でカメラを切り替える機能

が手に入りますので、是非ともやってみてください。

 

ということでUnityでカメラを切り替える方法の記事でした。

読んでいただきありがとうございました。

 

それではまた別の記事でお会いしましょう。

でわ。

 

チャーさん

 

カメラ関連記事はこちら

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

-カメラ関連

関連記事

Unityでカメラを回転させる方法(マウスの操作でカメラも回転します)

どうも、チャーさんです。 あなたはUnityでカメラを回転させたいですか?この記事では、 カメラをマウスで回転させる方法を書いてますので、   この記事を読めば、あなたはUnityでゲーム再 …

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

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

最新記事

チャーさん

Unityに関する記事を書いてます。

 

[簡単な経歴]

 

2018年-プログラムを始めUnityの存在を知りハマる。

2019年-エンジニアとして仕事開始(web系)

2021年-UnityでVR開発等にも手を出し始める。

現在-エンジニアとして活動しながらUnityも続行中。

 

youtubeでは、Unityに関する動画をあげてるので、

あなたのUnityスキルアップにどうぞ。