敵を巡回移動させる
![F082de78 601e 47c8 9308 d2b6cfa2c56b](https://codegenius.org/uploads/slide/image/5311/f082de78-601e-47c8-9308-d2b6cfa2c56b.jpeg)
![1ff5d222 719d 4af4 b281 525a30b7fc95](https://codegenius.org/uploads/slide/image/5312/1ff5d222-719d-4af4-b281-525a30b7fc95.jpeg)
![13dec7ae 5ddf 4a0b 8e87 3846115b8923](https://codegenius.org/uploads/slide/image/5313/13dec7ae-5ddf-4a0b-8e87-3846115b8923.jpeg)
敵を巡回させる
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(CharacterController))]
public class Patrol : MonoBehaviour
{
public Transform[] targets;
private int num = 0;
private CharacterController controller;
private Vector3 moveDirection = Vector3.zero;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
// 指定されたチェックポイントに向きを変える。
transform.LookAt(targets[num].transform);
// ベクトルの計算
moveDirection = targets[num].transform.position - transform.position;
controller.SimpleMove(moveDirection * 0.3f);
// 目的地に近づいたら、次のチェックポイントに切り替える。
if(Vector3.Distance(transform.position, targets[num].transform.position) < 1.5f)
{
// 順送りのテクニック
num = (num + 1) % targets.Length;
}
}
}
![F4e6d141 3197 42c6 b4d0 e24c0d04d411](https://codegenius.org/uploads/slide/image/5314/f4e6d141-3197-42c6-b4d0-e24c0d04d411.jpeg)
![7151938e 00fc 4b66 b1c4 dcd14b2946df](https://codegenius.org/uploads/slide/image/5315/7151938e-00fc-4b66-b1c4-dcd14b2946df.jpeg)
![73cdc9bc 9420 4ef6 b73e 2015e785bf90](https://codegenius.org/uploads/slide/image/5316/73cdc9bc-9420-4ef6-b73e-2015e785bf90.jpeg)
![01fc1a17 c2f1 4e17 8cca 2a66bff94b57](https://codegenius.org/uploads/slide/image/5317/01fc1a17-c2f1-4e17-8cca-2a66bff94b57.jpeg)
【2019版】X_Mission(基礎/全51回)
他のコースを見る![F082de78 601e 47c8 9308 d2b6cfa2c56b](https://codegenius.org/uploads/slide/image/5311/f082de78-601e-47c8-9308-d2b6cfa2c56b.jpeg)
![1ff5d222 719d 4af4 b281 525a30b7fc95](https://codegenius.org/uploads/slide/image/5312/1ff5d222-719d-4af4-b281-525a30b7fc95.jpeg)
![13dec7ae 5ddf 4a0b 8e87 3846115b8923](https://codegenius.org/uploads/slide/image/5313/13dec7ae-5ddf-4a0b-8e87-3846115b8923.jpeg)
敵を巡回させる
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(CharacterController))]
public class Patrol : MonoBehaviour
{
public Transform[] targets;
private int num = 0;
private CharacterController controller;
private Vector3 moveDirection = Vector3.zero;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
// 指定されたチェックポイントに向きを変える。
transform.LookAt(targets[num].transform);
// ベクトルの計算
moveDirection = targets[num].transform.position - transform.position;
controller.SimpleMove(moveDirection * 0.3f);
// 目的地に近づいたら、次のチェックポイントに切り替える。
if(Vector3.Distance(transform.position, targets[num].transform.position) < 1.5f)
{
// 順送りのテクニック
num = (num + 1) % targets.Length;
}
}
}
![F4e6d141 3197 42c6 b4d0 e24c0d04d411](https://codegenius.org/uploads/slide/image/5314/f4e6d141-3197-42c6-b4d0-e24c0d04d411.jpeg)
![7151938e 00fc 4b66 b1c4 dcd14b2946df](https://codegenius.org/uploads/slide/image/5315/7151938e-00fc-4b66-b1c4-dcd14b2946df.jpeg)
![73cdc9bc 9420 4ef6 b73e 2015e785bf90](https://codegenius.org/uploads/slide/image/5316/73cdc9bc-9420-4ef6-b73e-2015e785bf90.jpeg)
![01fc1a17 c2f1 4e17 8cca 2a66bff94b57](https://codegenius.org/uploads/slide/image/5317/01fc1a17-c2f1-4e17-8cca-2a66bff94b57.jpeg)
敵を巡回移動させる