TPSモードとFPSモードの切替
![9ec67f3e a169 498c bacb fdcdf5c75154](https://codegenius.org/uploads/slide/image/7313/9ec67f3e-a169-498c-bacb-fdcdf5c75154.jpeg)
![F7891028 9f7e 4e44 8443 81414869e8bf](https://codegenius.org/uploads/slide/image/7314/f7891028-9f7e-4e44-8443-81414869e8bf.jpeg)
![D40fae32 a96e 4746 8c2e 89d2fdbefa01](https://codegenius.org/uploads/slide/image/7315/d40fae32-a96e-4746-8c2e-89d2fdbefa01.jpeg)
![Eb621ecf a29a 43c8 84ae a3dcc78ba9db](https://codegenius.org/uploads/slide/image/7316/eb621ecf-a29a-43c8-84ae-a3dcc78ba9db.jpeg)
![5eecf590 5e91 4168 9fe2 0aa6046f5835](https://codegenius.org/uploads/slide/image/7317/5eecf590-5e91-4168-9fe2-0aa6046f5835.jpeg)
モードの切り替え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;
}
}
}
}
![D4d57069 65dd 4270 9c2b 7dac0c956102](https://codegenius.org/uploads/slide/image/7318/d4d57069-65dd-4270-9c2b-7dac0c956102.jpeg)
![A03534d5 d483 4258 bbc0 16393668d978](https://codegenius.org/uploads/slide/image/7319/a03534d5-d483-4258-bbc0-16393668d978.jpeg)
モードの切り替え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);
}
}
}
![11849946 93c9 4b3c 8217 3805765da33d](https://codegenius.org/uploads/slide/image/7320/11849946-93c9-4b3c-8217-3805765da33d.jpeg)
![F3e3f8be 7588 4b4b b214 31e42a61766b](https://codegenius.org/uploads/slide/image/7321/f3e3f8be-7588-4b4b-b214-31e42a61766b.jpeg)
![46ee5242 6134 451c ae97 9b01edcf18f1](https://codegenius.org/uploads/slide/image/7322/46ee5242-6134-451c-ae97-9b01edcf18f1.jpeg)
![A8d20383 5d36 4e46 96c4 1bf8f9683966](https://codegenius.org/uploads/slide/image/7323/a8d20383-5d36-4e46-96c4-1bf8f9683966.jpeg)
![6f26126b 4fc4 400a 9818 2e04bbd261bf](https://codegenius.org/uploads/slide/image/7324/6f26126b-4fc4-400a-9818-2e04bbd261bf.jpeg)
![B3370353 5808 4af9 a822 5b54ddb2219d](https://codegenius.org/uploads/slide/image/7325/b3370353-5808-4af9-a822-5b54ddb2219d.jpeg)
モードの切り替え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にする
}
}
}
}
![47ceaaf7 1e5c 41f9 9104 540e98934fbe](https://codegenius.org/uploads/slide/image/7326/47ceaaf7-1e5c-41f9-9104-540e98934fbe.jpeg)
![49488782 743e 414a 9ed2 ce672e072e1a](https://codegenius.org/uploads/slide/image/7327/49488782-743e-414a-9ed2-ce672e072e1a.jpeg)
![9ec67f3e a169 498c bacb fdcdf5c75154](https://codegenius.org/uploads/slide/image/7313/9ec67f3e-a169-498c-bacb-fdcdf5c75154.jpeg)
![F7891028 9f7e 4e44 8443 81414869e8bf](https://codegenius.org/uploads/slide/image/7314/f7891028-9f7e-4e44-8443-81414869e8bf.jpeg)
![D40fae32 a96e 4746 8c2e 89d2fdbefa01](https://codegenius.org/uploads/slide/image/7315/d40fae32-a96e-4746-8c2e-89d2fdbefa01.jpeg)
![Eb621ecf a29a 43c8 84ae a3dcc78ba9db](https://codegenius.org/uploads/slide/image/7316/eb621ecf-a29a-43c8-84ae-a3dcc78ba9db.jpeg)
![5eecf590 5e91 4168 9fe2 0aa6046f5835](https://codegenius.org/uploads/slide/image/7317/5eecf590-5e91-4168-9fe2-0aa6046f5835.jpeg)
モードの切り替え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;
}
}
}
}
![D4d57069 65dd 4270 9c2b 7dac0c956102](https://codegenius.org/uploads/slide/image/7318/d4d57069-65dd-4270-9c2b-7dac0c956102.jpeg)
![A03534d5 d483 4258 bbc0 16393668d978](https://codegenius.org/uploads/slide/image/7319/a03534d5-d483-4258-bbc0-16393668d978.jpeg)
モードの切り替え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);
}
}
}
![11849946 93c9 4b3c 8217 3805765da33d](https://codegenius.org/uploads/slide/image/7320/11849946-93c9-4b3c-8217-3805765da33d.jpeg)
![F3e3f8be 7588 4b4b b214 31e42a61766b](https://codegenius.org/uploads/slide/image/7321/f3e3f8be-7588-4b4b-b214-31e42a61766b.jpeg)
![46ee5242 6134 451c ae97 9b01edcf18f1](https://codegenius.org/uploads/slide/image/7322/46ee5242-6134-451c-ae97-9b01edcf18f1.jpeg)
![A8d20383 5d36 4e46 96c4 1bf8f9683966](https://codegenius.org/uploads/slide/image/7323/a8d20383-5d36-4e46-96c4-1bf8f9683966.jpeg)
![6f26126b 4fc4 400a 9818 2e04bbd261bf](https://codegenius.org/uploads/slide/image/7324/6f26126b-4fc4-400a-9818-2e04bbd261bf.jpeg)
![B3370353 5808 4af9 a822 5b54ddb2219d](https://codegenius.org/uploads/slide/image/7325/b3370353-5808-4af9-a822-5b54ddb2219d.jpeg)
モードの切り替え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にする
}
}
}
}
![47ceaaf7 1e5c 41f9 9104 540e98934fbe](https://codegenius.org/uploads/slide/image/7326/47ceaaf7-1e5c-41f9-9104-540e98934fbe.jpeg)
![49488782 743e 414a 9ed2 ce672e072e1a](https://codegenius.org/uploads/slide/image/7327/49488782-743e-414a-9ed2-ce672e072e1a.jpeg)
TPSモードとFPSモードの切替