FPSキャラクターのカメラと定点カメラをスクリプトで切り替える

投稿者: | 2019-12-20

シーンビューの視点を良いところにもってきて、定点のメインカメラを選択します。

GameObject -> Align With View をクリックするとメインカメラからの視点がシーンビューの視点と同じになります。

メインカメラを非アクティブにします。

スタンダードアセットのFPSコントローラをシーンに配置します。

FPSコントローラはアクティブです。

空のゲームオブジェクトを作ってスクリプトを追加します。

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

public class gameScript2 : MonoBehaviour
{
    public GameObject mainCamera;
    public GameObject player;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.F))
        {
            mainCamera.SetActive(!mainCamera.activeSelf);
            player.SetActive(!player.activeSelf);
        }
    }
}

メインカメラとFPSコントローラをアタッチします。

Fキーを押すと、カメラが切り替わります。

定点カメラがアクティブのときは、FPSコントローラを動かせません。

定点カメラの映像を見ながらFPSキャラクターを動かせるようにする

ヒエラルキーウィンドウのFPSコントローラの横の三角形のマークをクリックすると、FirstPersonCharacterが畳まれていることがわかります。

今度はFPSコントローラではなく、FirstPersonCharacterに付いたCameraコンポーネントだけをオンオフしてみます。

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

public class gameScript2 : MonoBehaviour
{
    public GameObject mainCamera;
    public GameObject player;
    public GameObject playerHead;
    Camera playerHeadCamera;


    // Start is called before the first frame update
    void Start()
    {
        playerHeadCamera = playerHead.GetComponent<Camera>();
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.F))
        {
            mainCamera.SetActive(!mainCamera.activeSelf);
           // player.SetActive(!player.activeSelf);
            playerHeadCamera.enabled = !playerHeadCamera.enabled;

        }
    }
}

定点カメラがアクティブのときも同じようにFPSキャラクターを動かせます。

コメントを残す

メールアドレスが公開されることはありません。