using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy : MonoBehaviour {
//当前路点
public PathNode m_currentNode;
//敌人生命
public float E_life = 15.0f;
//敌人最大生命
public float max_life = 15.0f;
//敌人速度
public float speed = 12.0f;
//敌人实例
public Enemy inst;
// Use this for initialization
void Start () {
inst = this;
}
// Update is called once per frame
void Update () {
RotateTo();
MoveTo();
}
//转向
public void RotateTo()
{
//记录敌人在Y轴方向的角度
float current = transform.eulerAngles.y;
//敌人面向当前路点的位置
this.transform.LookAt(m_currentNode.transform);
//保存敌人的角度
Vector3 target = this.transform.eulerAngles;
//由当前角度面向目标角度的变化速度
float next = Mathf.MoveTowardsAngle(current, target.y, 120 * Time.deltaTime);
//设置敌人的欧拉角
this.transform.eulerAngles = new Vector3(0, next, 0);
}
//移动
public void MoveTo()
{
//敌人当前位置
Vector3 pos1 = transform.position;
//当前路点的位置
Vector3 pos2 = m_currentNode.transform.position;
//计算两点之间距离
float dist = Vector2.Distance(new Vector2(pos1.x, pos1.z), new Vector2(pos2.x, pos2.z));
if(dist<1.0f)
{
if(m_currentNode.m_next==null)
{
Destroy(this.gameObject);
}
else
{
m_currentNode = m_currentNode.m_next;
}
}
transform.Translate(new Vector3(0, 0, speed * Time.deltaTime));
}
}
塔防游戏--敌人移动脚本
最新推荐文章于 2023-11-29 06:34:00 发布