照準器を作る
![75dc81dc 3437 4fba b7e3 3ffc88a71915](https://codegenius.org/uploads/slide/image/4260/75dc81dc-3437-4fba-b7e3-3ffc88a71915.jpeg)
![D9eb8fb9 bb6f 43b6 b364 3455ab0086a0](https://codegenius.org/uploads/slide/image/4261/d9eb8fb9-bb6f-43b6-b364-3455ab0086a0.jpeg)
![9fccffcd 10df 4d35 af6a 933f01a000ec](https://codegenius.org/uploads/slide/image/4262/9fccffcd-10df-4d35-af6a-933f01a000ec.jpeg)
![Bef63331 bd00 4ef2 b7eb cb0de7d4baa9](https://codegenius.org/uploads/slide/image/4263/bef63331-bd00-4ef2-b7eb-cb0de7d4baa9.jpeg)
![864ef895 e425 4799 af1b 4c8de60a26e8](https://codegenius.org/uploads/slide/image/4264/864ef895-e425-4799-af1b-4c8de60a26e8.jpeg)
![638a32a1 f1c4 4ba8 8ccc 2e4e3e2adfd2](https://codegenius.org/uploads/slide/image/4265/638a32a1-f1c4-4ba8-8ccc-2e4e3e2adfd2.jpeg)
![3d92fafe e662 40b3 8c25 8aaea3b89071](https://codegenius.org/uploads/slide/image/4266/3d92fafe-e662-40b3-8c25-8aaea3b89071.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);
}
}
}
![D010e88f 2fbd 43b9 87df f041637a9017](https://codegenius.org/uploads/slide/image/4267/d010e88f-2fbd-43b9-87df-f041637a9017.jpeg)
![Eac86014 b4f7 4274 8c5d f3090efe908f](https://codegenius.org/uploads/slide/image/4268/eac86014-b4f7-4274-8c5d-f3090efe908f.jpeg)
![52ce2bbd 9e51 4dff a0b3 fdd3ff8819fb](https://codegenius.org/uploads/slide/image/4269/52ce2bbd-9e51-4dff-a0b3-fdd3ff8819fb.jpeg)
![93dd8fd4 52b1 471f 904e 72fc021e81f4](https://codegenius.org/uploads/slide/image/4270/93dd8fd4-52b1-471f-904e-72fc021e81f4.jpeg)
![C34861b7 943b 4b6a a449 870408d08df1](https://codegenius.org/uploads/slide/image/4271/c34861b7-943b-4b6a-a449-870408d08df1.jpeg)
![51d97697 2e5d 47b3 a6f9 c3a1edf7c7f1](https://codegenius.org/uploads/slide/image/4272/51d97697-2e5d-47b3-a6f9-c3a1edf7c7f1.jpeg)
![Af978cda 7129 46f8 a878 706774f45032](https://codegenius.org/uploads/slide/image/4273/af978cda-7129-46f8-a878-706774f45032.jpeg)
![721829a2 437e 4020 874d 65e0ef1c2f79](https://codegenius.org/uploads/slide/image/4274/721829a2-437e-4020-874d-65e0ef1c2f79.jpeg)
![D4e364bb 0c12 40b9 bf6d b3f4d7f3ae3e](https://codegenius.org/uploads/slide/image/4275/d4e364bb-0c12-40b9-bf6d-b3f4d7f3ae3e.jpeg)
![B79add10 5394 4e79 988a d161748ead00](https://codegenius.org/uploads/slide/image/4276/b79add10-5394-4e79-988a-d161748ead00.jpeg)
![00ad65fb 5eeb 4a52 877d 61aa005188d0](https://codegenius.org/uploads/slide/image/4277/00ad65fb-5eeb-4a52-877d-61aa005188d0.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);
}
}
}
![1242e7e1 d8f7 462a b3b0 32c60b5ea846](https://codegenius.org/uploads/slide/image/4278/1242e7e1-d8f7-462a-b3b0-32c60b5ea846.jpeg)
![B40400c6 88ad 40c3 8911 ed33ce9a1567](https://codegenius.org/uploads/slide/image/4279/b40400c6-88ad-40c3-8911-ed33ce9a1567.jpeg)
![9433ff92 fa5d 4fe9 b97c 510f5813b2e7](https://codegenius.org/uploads/slide/image/4280/9433ff92-fa5d-4fe9-b97c-510f5813b2e7.jpeg)
![Da55b39f ae1b 44f5 bdbf 0c8fea2ef424](https://codegenius.org/uploads/slide/image/4281/da55b39f-ae1b-44f5-bdbf-0c8fea2ef424.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);
}
}
}
![2cf6016a 8ce2 495d 872a d896c882b2a0](https://codegenius.org/uploads/slide/image/4282/2cf6016a-8ce2-495d-872a-d896c882b2a0.jpeg)
![60c7bbf5 95ad 441e 8d19 7560650dec79](https://codegenius.org/uploads/slide/image/4283/60c7bbf5-95ad-441e-8d19-7560650dec79.jpeg)
![F50ef86e 315d 4fff 817d abf93933e4cd](https://codegenius.org/uploads/slide/image/4284/f50ef86e-315d-4fff-817d-abf93933e4cd.jpeg)
【2019版】BattleTank(基礎/全38回)
他のコースを見る![75dc81dc 3437 4fba b7e3 3ffc88a71915](https://codegenius.org/uploads/slide/image/4260/75dc81dc-3437-4fba-b7e3-3ffc88a71915.jpeg)
![D9eb8fb9 bb6f 43b6 b364 3455ab0086a0](https://codegenius.org/uploads/slide/image/4261/d9eb8fb9-bb6f-43b6-b364-3455ab0086a0.jpeg)
![9fccffcd 10df 4d35 af6a 933f01a000ec](https://codegenius.org/uploads/slide/image/4262/9fccffcd-10df-4d35-af6a-933f01a000ec.jpeg)
![Bef63331 bd00 4ef2 b7eb cb0de7d4baa9](https://codegenius.org/uploads/slide/image/4263/bef63331-bd00-4ef2-b7eb-cb0de7d4baa9.jpeg)
![864ef895 e425 4799 af1b 4c8de60a26e8](https://codegenius.org/uploads/slide/image/4264/864ef895-e425-4799-af1b-4c8de60a26e8.jpeg)
![638a32a1 f1c4 4ba8 8ccc 2e4e3e2adfd2](https://codegenius.org/uploads/slide/image/4265/638a32a1-f1c4-4ba8-8ccc-2e4e3e2adfd2.jpeg)
![3d92fafe e662 40b3 8c25 8aaea3b89071](https://codegenius.org/uploads/slide/image/4266/3d92fafe-e662-40b3-8c25-8aaea3b89071.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);
}
}
}
![D010e88f 2fbd 43b9 87df f041637a9017](https://codegenius.org/uploads/slide/image/4267/d010e88f-2fbd-43b9-87df-f041637a9017.jpeg)
![Eac86014 b4f7 4274 8c5d f3090efe908f](https://codegenius.org/uploads/slide/image/4268/eac86014-b4f7-4274-8c5d-f3090efe908f.jpeg)
![52ce2bbd 9e51 4dff a0b3 fdd3ff8819fb](https://codegenius.org/uploads/slide/image/4269/52ce2bbd-9e51-4dff-a0b3-fdd3ff8819fb.jpeg)
![93dd8fd4 52b1 471f 904e 72fc021e81f4](https://codegenius.org/uploads/slide/image/4270/93dd8fd4-52b1-471f-904e-72fc021e81f4.jpeg)
![C34861b7 943b 4b6a a449 870408d08df1](https://codegenius.org/uploads/slide/image/4271/c34861b7-943b-4b6a-a449-870408d08df1.jpeg)
![51d97697 2e5d 47b3 a6f9 c3a1edf7c7f1](https://codegenius.org/uploads/slide/image/4272/51d97697-2e5d-47b3-a6f9-c3a1edf7c7f1.jpeg)
![Af978cda 7129 46f8 a878 706774f45032](https://codegenius.org/uploads/slide/image/4273/af978cda-7129-46f8-a878-706774f45032.jpeg)
![721829a2 437e 4020 874d 65e0ef1c2f79](https://codegenius.org/uploads/slide/image/4274/721829a2-437e-4020-874d-65e0ef1c2f79.jpeg)
![D4e364bb 0c12 40b9 bf6d b3f4d7f3ae3e](https://codegenius.org/uploads/slide/image/4275/d4e364bb-0c12-40b9-bf6d-b3f4d7f3ae3e.jpeg)
![B79add10 5394 4e79 988a d161748ead00](https://codegenius.org/uploads/slide/image/4276/b79add10-5394-4e79-988a-d161748ead00.jpeg)
![00ad65fb 5eeb 4a52 877d 61aa005188d0](https://codegenius.org/uploads/slide/image/4277/00ad65fb-5eeb-4a52-877d-61aa005188d0.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);
}
}
}
![1242e7e1 d8f7 462a b3b0 32c60b5ea846](https://codegenius.org/uploads/slide/image/4278/1242e7e1-d8f7-462a-b3b0-32c60b5ea846.jpeg)
![B40400c6 88ad 40c3 8911 ed33ce9a1567](https://codegenius.org/uploads/slide/image/4279/b40400c6-88ad-40c3-8911-ed33ce9a1567.jpeg)
![9433ff92 fa5d 4fe9 b97c 510f5813b2e7](https://codegenius.org/uploads/slide/image/4280/9433ff92-fa5d-4fe9-b97c-510f5813b2e7.jpeg)
![Da55b39f ae1b 44f5 bdbf 0c8fea2ef424](https://codegenius.org/uploads/slide/image/4281/da55b39f-ae1b-44f5-bdbf-0c8fea2ef424.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);
}
}
}
![2cf6016a 8ce2 495d 872a d896c882b2a0](https://codegenius.org/uploads/slide/image/4282/2cf6016a-8ce2-495d-872a-d896c882b2a0.jpeg)
![60c7bbf5 95ad 441e 8d19 7560650dec79](https://codegenius.org/uploads/slide/image/4283/60c7bbf5-95ad-441e-8d19-7560650dec79.jpeg)
![F50ef86e 315d 4fff 817d abf93933e4cd](https://codegenius.org/uploads/slide/image/4284/f50ef86e-315d-4fff-817d-abf93933e4cd.jpeg)
照準器を作る