TPSモードとFPSモードの切替
モードの切り替え1
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 追加
using Cinemachine;
public class CameraControllerX : MonoBehaviour
{
public CinemachineVirtualCamera tpsCMVC;
public CinemachineVirtualCamera fpsCMVC;
public GameObject aim;
public TurretController turretController;
private int num = -1;
void Start()
{
// ゲームスタート時はTPSモード
tpsCMVC.Priority = 100;
// TPSモード時はAim(照準器)をオフにする。
aim.SetActive(false);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.C))
{
// numの初期値は「-1」なので、Priorityは「-100」になる。
// fpsのPriorityは「10」なので、今度はfpsモードになる。
tpsCMVC.Priority = 100 * num;
// Cボタンを押すごとにnumの値が「1」と「-1」に変化する。
num *= -1;
if (tpsCMVC.Priority == -100) // FPSモードの時
{
// Aim(照準器)をオンにする
aim.SetActive(true);
// 砲塔の上下機能(Qボタン/Eボタン)を「オフ」にする
turretController.enabled = false;
}
else // TPSモードの時
{
// Aim(照準器)をオフにする
aim.SetActive(false);
// 砲塔の上下機能(Qボタン/Eボタン)を「オン」にする
turretController.enabled = true;
}
}
}
}
モードの切り替え2
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// ★追加
using Cinemachine;
public class HeadController : MonoBehaviour
{
public GameObject turret;
// ★追加
public CinemachineVirtualCamera tpsCMVC;
void Update()
{
transform.rotation = Quaternion.Euler(0, Camera.main.transform.eulerAngles.y, 0);
// ★追加
// 「カメラの回転に合わせて砲塔を上下できる機能」は「FPSモード」の時だけ可能にする(ポイント)
if(tpsCMVC.Priority == -100)
{
turret.transform.rotation = Quaternion.Euler(Camera.main.transform.eulerAngles.x, transform.eulerAngles.y, 0);
}
}
}
モードの切り替え3(改良)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Cinemachine;
public class CameraControllerX : MonoBehaviour
{
public CinemachineVirtualCamera tpsCMVC;
public CinemachineVirtualCamera fpsCMVC;
public GameObject aim;
public TurretController turretController;
private int num = -1;
// ★改良
public Camera tpsCam;
public Camera fpsCam;
void Start()
{
tpsCMVC.Priority = 100;
aim.SetActive(false);
// ★改良
// ゲーム開始時はFPSカメラをOFFにする
fpsCam.enabled = false;
}
void Update()
{
if(Input.GetKeyDown(KeyCode.C))
{
tpsCMVC.Priority = 100 * num;
num *= -1;
if(tpsCMVC.Priority == -100) // FPSモードの時
{
aim.SetActive(true);
turretController.enabled = false;
// ★改良
tpsCam.enabled = false; // TPSカメラをOFFにする
fpsCam.enabled = true; // FPSカメラをONにする
}
else // TPSモードの時
{
aim.SetActive(false);
turretController.enabled = true;
// ★改良
tpsCam.enabled = true; // TPSカメラをONにする
fpsCam.enabled = false; // FPSカメラをOFFにする
}
}
}
}
モードの切り替え1
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 追加
using Cinemachine;
public class CameraControllerX : MonoBehaviour
{
public CinemachineVirtualCamera tpsCMVC;
public CinemachineVirtualCamera fpsCMVC;
public GameObject aim;
public TurretController turretController;
private int num = -1;
void Start()
{
// ゲームスタート時はTPSモード
tpsCMVC.Priority = 100;
// TPSモード時はAim(照準器)をオフにする。
aim.SetActive(false);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.C))
{
// numの初期値は「-1」なので、Priorityは「-100」になる。
// fpsのPriorityは「10」なので、今度はfpsモードになる。
tpsCMVC.Priority = 100 * num;
// Cボタンを押すごとにnumの値が「1」と「-1」に変化する。
num *= -1;
if (tpsCMVC.Priority == -100) // FPSモードの時
{
// Aim(照準器)をオンにする
aim.SetActive(true);
// 砲塔の上下機能(Qボタン/Eボタン)を「オフ」にする
turretController.enabled = false;
}
else // TPSモードの時
{
// Aim(照準器)をオフにする
aim.SetActive(false);
// 砲塔の上下機能(Qボタン/Eボタン)を「オン」にする
turretController.enabled = true;
}
}
}
}
モードの切り替え2
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// ★追加
using Cinemachine;
public class HeadController : MonoBehaviour
{
public GameObject turret;
// ★追加
public CinemachineVirtualCamera tpsCMVC;
void Update()
{
transform.rotation = Quaternion.Euler(0, Camera.main.transform.eulerAngles.y, 0);
// ★追加
// 「カメラの回転に合わせて砲塔を上下できる機能」は「FPSモード」の時だけ可能にする(ポイント)
if(tpsCMVC.Priority == -100)
{
turret.transform.rotation = Quaternion.Euler(Camera.main.transform.eulerAngles.x, transform.eulerAngles.y, 0);
}
}
}
モードの切り替え3(改良)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Cinemachine;
public class CameraControllerX : MonoBehaviour
{
public CinemachineVirtualCamera tpsCMVC;
public CinemachineVirtualCamera fpsCMVC;
public GameObject aim;
public TurretController turretController;
private int num = -1;
// ★改良
public Camera tpsCam;
public Camera fpsCam;
void Start()
{
tpsCMVC.Priority = 100;
aim.SetActive(false);
// ★改良
// ゲーム開始時はFPSカメラをOFFにする
fpsCam.enabled = false;
}
void Update()
{
if(Input.GetKeyDown(KeyCode.C))
{
tpsCMVC.Priority = 100 * num;
num *= -1;
if(tpsCMVC.Priority == -100) // FPSモードの時
{
aim.SetActive(true);
turretController.enabled = false;
// ★改良
tpsCam.enabled = false; // TPSカメラをOFFにする
fpsCam.enabled = true; // FPSカメラをONにする
}
else // TPSモードの時
{
aim.SetActive(false);
turretController.enabled = true;
// ★改良
tpsCam.enabled = true; // TPSカメラをONにする
fpsCam.enabled = false; // FPSカメラをOFFにする
}
}
}
}
TPSモードとFPSモードの切替