中継地点を巡回させる;その2
中継地点を巡回させる
using UnityEngine;
using System.Collections;
public class EnemyMovement : MonoBehaviour {
public Transform[] wayPoints;
int cur = 0;
public float speed = 0.5f;
void FixedUpdate(){
// 現在位置が中継ポイントの位置と異なるならば(条件)
if(transform.position != wayPoints[cur].position){
Vector3 p = Vector3.MoveTowards(transform.position, wayPoints[cur].position, speed);
GetComponent<Rigidbody>().MovePosition(p);
// 顔の向き
transform.LookAt(wayPoints[cur].position);
} else {
// ★(重要テクニック)
// 配列の中の順序を1つずつ繰り上げていくテクニック(最後はまた0に戻る。)
cur = (cur + 1) % wayPoints.Length;
}
}
}
Unity Code Memo
他のコースを見る中継地点を巡回させる
using UnityEngine;
using System.Collections;
public class EnemyMovement : MonoBehaviour {
public Transform[] wayPoints;
int cur = 0;
public float speed = 0.5f;
void FixedUpdate(){
// 現在位置が中継ポイントの位置と異なるならば(条件)
if(transform.position != wayPoints[cur].position){
Vector3 p = Vector3.MoveTowards(transform.position, wayPoints[cur].position, speed);
GetComponent<Rigidbody>().MovePosition(p);
// 顔の向き
transform.LookAt(wayPoints[cur].position);
} else {
// ★(重要テクニック)
// 配列の中の順序を1つずつ繰り上げていくテクニック(最後はまた0に戻る。)
cur = (cur + 1) % wayPoints.Length;
}
}
}
中継地点を巡回させる;その2