照準器を作る
![Cf7b5e4c 05cb 4b6a 813b 53d1283cbe41](https://codegenius.org/uploads/slide/image/6091/cf7b5e4c-05cb-4b6a-813b-53d1283cbe41.jpeg)
![59209205 9861 4927 8032 f06aac21bda5](https://codegenius.org/uploads/slide/image/6092/59209205-9861-4927-8032-f06aac21bda5.jpeg)
![709bce9b b01a 4a06 a183 cd030dc7974f](https://codegenius.org/uploads/slide/image/6093/709bce9b-b01a-4a06-a183-cd030dc7974f.jpeg)
![3e26d625 efed 455d bebf 849992a677a5](https://codegenius.org/uploads/slide/image/6094/3e26d625-efed-455d-bebf-849992a677a5.jpeg)
![1db943e0 71bc 4590 a8c2 3d4e37614bfc](https://codegenius.org/uploads/slide/image/6095/1db943e0-71bc-4590-a8c2-3d4e37614bfc.jpeg)
![0ed95a3d 1d3f 4524 a8d4 dd82d8f840cf](https://codegenius.org/uploads/slide/image/6096/0ed95a3d-1d3f-4524-a8d4-dd82d8f840cf.jpeg)
![8e941938 8379 46c4 a255 414ead38c0ec](https://codegenius.org/uploads/slide/image/6097/8e941938-8379-46c4-a255-414ead38c0ec.jpeg)
![E3aba5e9 3025 4dd9 9be3 6e69d9a3f303](https://codegenius.org/uploads/slide/image/6098/e3aba5e9-3025-4dd9-9be3-6e69d9a3f303.jpeg)
Rayで照準器を作る
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 追加しましょう(ポイント)
using UnityEngine.UI;
public class Aim : MonoBehaviour
{
[SerializeField]
private Image aimImage;
void Update()
{
// レーザー(ray)を飛ばす「起点」と「方向」
Ray ray = new Ray(transform.position, transform.forward);
// rayのあたり判定の情報を入れる箱を作る。
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 60))
{
string hitName = hit.transform.gameObject.tag;
if (hitName == "Enemy")
{
// 照準器の色を「赤」に変える(色は自由に変更してください。)
aimImage.color = new Color(1.0f, 0.0f, 0.0f, 1.0f);
}
else
{
// 照準器の色を「水色」(色は自由に変更してください。)
aimImage.color = new Color(0.0f, 1.0f, 1.0f, 1.0f);
}
}
else
{
// 照準器の色を「水色」(色は自由に変更してください。)
aimImage.color = new Color(0.0f, 1.0f, 1.0f, 1.0f);
}
}
}
![D196e1f0 5b99 46d8 993a fdcf4ed3e387](https://codegenius.org/uploads/slide/image/6099/d196e1f0-5b99-46d8-993a-fdcf4ed3e387.jpeg)
![8e80bba2 12bd 42de 945e c5580f7b03ac](https://codegenius.org/uploads/slide/image/6100/8e80bba2-12bd-42de-945e-c5580f7b03ac.jpeg)
![1aaa8ad6 0e93 4550 985a c2450a57496c](https://codegenius.org/uploads/slide/image/6101/1aaa8ad6-0e93-4550-985a-c2450a57496c.jpeg)
![5c4d5b69 6bca 4e51 ac40 54d479954c78](https://codegenius.org/uploads/slide/image/6102/5c4d5b69-6bca-4e51-ac40-54d479954c78.jpeg)
![5e4a0a9f a00f 48d0 b33c cb0b7dad8651](https://codegenius.org/uploads/slide/image/6103/5e4a0a9f-a00f-48d0-b33c-cb0b7dad8651.jpeg)
![Cceaecd9 bc45 4d57 b085 3d0e65372f0e](https://codegenius.org/uploads/slide/image/6104/cceaecd9-bc45-4d57-b085-3d0e65372f0e.jpeg)
![85414b42 b5bd 4836 8497 1a1dc0c994e8](https://codegenius.org/uploads/slide/image/6105/85414b42-b5bd-4836-8497-1a1dc0c994e8.jpeg)
![64cd1518 0f75 4da8 b3bd 45aef00175de](https://codegenius.org/uploads/slide/image/6106/64cd1518-0f75-4da8-b3bd-45aef00175de.jpeg)
![03763570 654e 4137 b686 5a1e747bcd68](https://codegenius.org/uploads/slide/image/6107/03763570-654e-4137-b686-5a1e747bcd68.jpeg)
![5741052b 6381 458e ad44 d31d3bc9d6b9](https://codegenius.org/uploads/slide/image/6108/5741052b-6381-458e-ad44-d31d3bc9d6b9.jpeg)
![Bf9cbf24 74f5 4fe4 b42a 23c53749648c](https://codegenius.org/uploads/slide/image/6109/bf9cbf24-74f5-4fe4-b42a-23c53749648c.jpeg)
Rayを可視化する
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Aim : MonoBehaviour
{
[SerializeField]
private Image aimImage;
void Update()
{
Ray ray = new Ray(transform.position, transform.forward);
// ★★追加(レーザー光を可視化することができる)
Debug.DrawRay(transform.position, transform.forward * 60, Color.green);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 60))
{
string hitName = hit.transform.gameObject.tag;
if (hitName == "Enemy")
{
aimImage.color = new Color(1.0f, 0.0f, 0.0f, 1.0f);
}
else
{
aimImage.color = new Color(0.0f, 1.0f, 1.0f, 1.0f);
}
}
else
{
aimImage.color = new Color(0.0f, 1.0f, 1.0f, 1.0f);
}
}
}
![C1a85cce 93ef 4bd3 972d 8e6f2df3fdc2](https://codegenius.org/uploads/slide/image/6110/c1a85cce-93ef-4bd3-972d-8e6f2df3fdc2.jpeg)
![1d3a175b 33ec 4c57 ad34 5848008a109d](https://codegenius.org/uploads/slide/image/6111/1d3a175b-33ec-4c57-ad34-5848008a109d.jpeg)
![5c7f5f1c ae0c 4a72 968b 3b1b393c21cd](https://codegenius.org/uploads/slide/image/6112/5c7f5f1c-ae0c-4a72-968b-3b1b393c21cd.jpeg)
![19d2b553 2210 450a bd85 37798588d26d](https://codegenius.org/uploads/slide/image/6113/19d2b553-2210-450a-bd85-37798588d26d.jpeg)
照準器のオンオフを切り替える
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
[SerializeField]
private Camera mainCamera;
[SerializeField]
private Camera FPSCamera;
private bool mainCameraON = true;
[SerializeField]
private AudioListener mainListener;
[SerializeField]
private AudioListener FPSListener;
// ★追加
[SerializeField]
private GameObject aimImage;
void Start()
{
mainCamera.enabled = true;
FPSCamera.enabled = false;
mainListener.enabled = true;
FPSListener.enabled = false; // FPSカメラはオフ
// ★追加
// (発想)主観カメラ(FPSカメラ)がオンの時だけ、照準器もオンにする。
aimImage.SetActive(false);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.C) && mainCameraON == true)
{
mainCamera.enabled = false;
FPSCamera.enabled = true;
mainCameraON = false;
mainListener.enabled = false;
FPSListener.enabled = true; // FPSカメラはオン
// ★追加
aimImage.SetActive(true);
}
else if (Input.GetKeyDown(KeyCode.C) && mainCameraON == false)
{
mainCamera.enabled = true;
FPSCamera.enabled = false;
mainCameraON = true;
mainListener.enabled = true;
FPSListener.enabled = false; // FPSカメラはオフ
// ★追加
aimImage.SetActive(false);
}
}
}
![1763a8e1 20fa 4bc7 b241 6d11d7ce1568](https://codegenius.org/uploads/slide/image/6114/1763a8e1-20fa-4bc7-b241-6d11d7ce1568.jpeg)
![4d9f879c a59e 4299 82c3 fb9778fc8ded](https://codegenius.org/uploads/slide/image/6115/4d9f879c-a59e-4299-82c3-fb9778fc8ded.jpeg)
【2020版】BattleTank(基礎/全35回)
他のコースを見る![Cf7b5e4c 05cb 4b6a 813b 53d1283cbe41](https://codegenius.org/uploads/slide/image/6091/cf7b5e4c-05cb-4b6a-813b-53d1283cbe41.jpeg)
![59209205 9861 4927 8032 f06aac21bda5](https://codegenius.org/uploads/slide/image/6092/59209205-9861-4927-8032-f06aac21bda5.jpeg)
![709bce9b b01a 4a06 a183 cd030dc7974f](https://codegenius.org/uploads/slide/image/6093/709bce9b-b01a-4a06-a183-cd030dc7974f.jpeg)
![3e26d625 efed 455d bebf 849992a677a5](https://codegenius.org/uploads/slide/image/6094/3e26d625-efed-455d-bebf-849992a677a5.jpeg)
![1db943e0 71bc 4590 a8c2 3d4e37614bfc](https://codegenius.org/uploads/slide/image/6095/1db943e0-71bc-4590-a8c2-3d4e37614bfc.jpeg)
![0ed95a3d 1d3f 4524 a8d4 dd82d8f840cf](https://codegenius.org/uploads/slide/image/6096/0ed95a3d-1d3f-4524-a8d4-dd82d8f840cf.jpeg)
![8e941938 8379 46c4 a255 414ead38c0ec](https://codegenius.org/uploads/slide/image/6097/8e941938-8379-46c4-a255-414ead38c0ec.jpeg)
![E3aba5e9 3025 4dd9 9be3 6e69d9a3f303](https://codegenius.org/uploads/slide/image/6098/e3aba5e9-3025-4dd9-9be3-6e69d9a3f303.jpeg)
Rayで照準器を作る
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 追加しましょう(ポイント)
using UnityEngine.UI;
public class Aim : MonoBehaviour
{
[SerializeField]
private Image aimImage;
void Update()
{
// レーザー(ray)を飛ばす「起点」と「方向」
Ray ray = new Ray(transform.position, transform.forward);
// rayのあたり判定の情報を入れる箱を作る。
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 60))
{
string hitName = hit.transform.gameObject.tag;
if (hitName == "Enemy")
{
// 照準器の色を「赤」に変える(色は自由に変更してください。)
aimImage.color = new Color(1.0f, 0.0f, 0.0f, 1.0f);
}
else
{
// 照準器の色を「水色」(色は自由に変更してください。)
aimImage.color = new Color(0.0f, 1.0f, 1.0f, 1.0f);
}
}
else
{
// 照準器の色を「水色」(色は自由に変更してください。)
aimImage.color = new Color(0.0f, 1.0f, 1.0f, 1.0f);
}
}
}
![D196e1f0 5b99 46d8 993a fdcf4ed3e387](https://codegenius.org/uploads/slide/image/6099/d196e1f0-5b99-46d8-993a-fdcf4ed3e387.jpeg)
![8e80bba2 12bd 42de 945e c5580f7b03ac](https://codegenius.org/uploads/slide/image/6100/8e80bba2-12bd-42de-945e-c5580f7b03ac.jpeg)
![1aaa8ad6 0e93 4550 985a c2450a57496c](https://codegenius.org/uploads/slide/image/6101/1aaa8ad6-0e93-4550-985a-c2450a57496c.jpeg)
![5c4d5b69 6bca 4e51 ac40 54d479954c78](https://codegenius.org/uploads/slide/image/6102/5c4d5b69-6bca-4e51-ac40-54d479954c78.jpeg)
![5e4a0a9f a00f 48d0 b33c cb0b7dad8651](https://codegenius.org/uploads/slide/image/6103/5e4a0a9f-a00f-48d0-b33c-cb0b7dad8651.jpeg)
![Cceaecd9 bc45 4d57 b085 3d0e65372f0e](https://codegenius.org/uploads/slide/image/6104/cceaecd9-bc45-4d57-b085-3d0e65372f0e.jpeg)
![85414b42 b5bd 4836 8497 1a1dc0c994e8](https://codegenius.org/uploads/slide/image/6105/85414b42-b5bd-4836-8497-1a1dc0c994e8.jpeg)
![64cd1518 0f75 4da8 b3bd 45aef00175de](https://codegenius.org/uploads/slide/image/6106/64cd1518-0f75-4da8-b3bd-45aef00175de.jpeg)
![03763570 654e 4137 b686 5a1e747bcd68](https://codegenius.org/uploads/slide/image/6107/03763570-654e-4137-b686-5a1e747bcd68.jpeg)
![5741052b 6381 458e ad44 d31d3bc9d6b9](https://codegenius.org/uploads/slide/image/6108/5741052b-6381-458e-ad44-d31d3bc9d6b9.jpeg)
![Bf9cbf24 74f5 4fe4 b42a 23c53749648c](https://codegenius.org/uploads/slide/image/6109/bf9cbf24-74f5-4fe4-b42a-23c53749648c.jpeg)
Rayを可視化する
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Aim : MonoBehaviour
{
[SerializeField]
private Image aimImage;
void Update()
{
Ray ray = new Ray(transform.position, transform.forward);
// ★★追加(レーザー光を可視化することができる)
Debug.DrawRay(transform.position, transform.forward * 60, Color.green);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 60))
{
string hitName = hit.transform.gameObject.tag;
if (hitName == "Enemy")
{
aimImage.color = new Color(1.0f, 0.0f, 0.0f, 1.0f);
}
else
{
aimImage.color = new Color(0.0f, 1.0f, 1.0f, 1.0f);
}
}
else
{
aimImage.color = new Color(0.0f, 1.0f, 1.0f, 1.0f);
}
}
}
![C1a85cce 93ef 4bd3 972d 8e6f2df3fdc2](https://codegenius.org/uploads/slide/image/6110/c1a85cce-93ef-4bd3-972d-8e6f2df3fdc2.jpeg)
![1d3a175b 33ec 4c57 ad34 5848008a109d](https://codegenius.org/uploads/slide/image/6111/1d3a175b-33ec-4c57-ad34-5848008a109d.jpeg)
![5c7f5f1c ae0c 4a72 968b 3b1b393c21cd](https://codegenius.org/uploads/slide/image/6112/5c7f5f1c-ae0c-4a72-968b-3b1b393c21cd.jpeg)
![19d2b553 2210 450a bd85 37798588d26d](https://codegenius.org/uploads/slide/image/6113/19d2b553-2210-450a-bd85-37798588d26d.jpeg)
照準器のオンオフを切り替える
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
[SerializeField]
private Camera mainCamera;
[SerializeField]
private Camera FPSCamera;
private bool mainCameraON = true;
[SerializeField]
private AudioListener mainListener;
[SerializeField]
private AudioListener FPSListener;
// ★追加
[SerializeField]
private GameObject aimImage;
void Start()
{
mainCamera.enabled = true;
FPSCamera.enabled = false;
mainListener.enabled = true;
FPSListener.enabled = false; // FPSカメラはオフ
// ★追加
// (発想)主観カメラ(FPSカメラ)がオンの時だけ、照準器もオンにする。
aimImage.SetActive(false);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.C) && mainCameraON == true)
{
mainCamera.enabled = false;
FPSCamera.enabled = true;
mainCameraON = false;
mainListener.enabled = false;
FPSListener.enabled = true; // FPSカメラはオン
// ★追加
aimImage.SetActive(true);
}
else if (Input.GetKeyDown(KeyCode.C) && mainCameraON == false)
{
mainCamera.enabled = true;
FPSCamera.enabled = false;
mainCameraON = true;
mainListener.enabled = true;
FPSListener.enabled = false; // FPSカメラはオフ
// ★追加
aimImage.SetActive(false);
}
}
}
![1763a8e1 20fa 4bc7 b241 6d11d7ce1568](https://codegenius.org/uploads/slide/image/6114/1763a8e1-20fa-4bc7-b241-6d11d7ce1568.jpeg)
![4d9f879c a59e 4299 82c3 fb9778fc8ded](https://codegenius.org/uploads/slide/image/6115/4d9f879c-a59e-4299-82c3-fb9778fc8ded.jpeg)
照準器を作る