NewN_UAVPlane/Assets/Zion/Scripts/Adam/WRJController.cs

85 lines
2.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WRJController : MonoBehaviour
{
public List<Vector3> wayPoints = new List<Vector3>();
public int index1 = 0;
public float speed;
public HuoPaoController[] huoPaoControllerList;
public bool isMove = false;
public float dis;
public float limitDis;
public Transform firePos;
public GameObject firePrefab;
public bool isGoToPlace = false;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (wayPoints.Count == 0) return;
if (isMove)
{
MoveToway1();
}
if (isGoToPlace)
{
InvokeRepeating("OnFire", 1, 1);
isGoToPlace = false;
}
}
public void MoveToway1()
{
if (index1 > wayPoints.Count - 1) { return; }
transform.localPosition = Vector3.MoveTowards(transform.localPosition, wayPoints[index1], speed * Time.deltaTime);
if (Vector3.Distance(wayPoints[index1], transform.localPosition) < 0.01f)
{
index1++;
if (index1 == wayPoints.Count)
{
transform.localPosition = wayPoints[index1 - 1];
isGoToPlace = true;
isMove = false;
}
}
}
public int currentHuoPaoIndex = 0;
private void OnFire()
{
//for (int i = 0; i < huoPaoControllerList.Length; i++)
//{
if (currentHuoPaoIndex > huoPaoControllerList.Length - 1)
{
CancelInvoke("OnFire");
return;
}
if (huoPaoControllerList[currentHuoPaoIndex] == null)
{
currentHuoPaoIndex++;
}
if (firePos != null)
{
firePos.LookAt(huoPaoControllerList[currentHuoPaoIndex].transform.position);
GameObject fire = Instantiate(firePrefab);
fire.transform.eulerAngles = firePos.eulerAngles;
fire.transform.position = firePos.position;
fire.GetComponent<BulletController>().SetBoolIsMove();
}
//}
//fire.transform.LookAt(wrj.transform.localPosition);
}
}