您的位置:首页 > 移动开发 > Unity3D

unity3d 怪物的简单ai

2013-10-14 16:27 323 查看
我们想让怪物知道自己的攻击目标(当然指的是玩家)然后转向和移动来攻击玩家,因此我们先声明需要用到的变量,首先我们需要一个transform类型(transform组件决定了场景中所有物体的方位,旋转和缩放。每个物体都有一个变换组件)来记录目标的状态,然后定义两个int类型来设置移动速度跟旋转角度。

定义一个私有变量mytransform用来记录当前怪物的方位。然后在Awake函数中将transform赋给mytransform变量这样做的好处是通过建立缓存将他保存到mytransform变量里 这样就不用每次去取transform的值可以让运算变得更快捷。简单说明一下,Awake在MonoBehavior创建后就立刻调用,Start将在MonoBehavior创建后在该帧Update之前,在该Monobehavior.enabled
== true的情况下执行。

接着通过Gameobject的FindGameObjectWithTag得到目标对象 将transform赋值给target。

public class EnemyAI : MonoBehaviour {

public Transform target;
public int movespeed=0;
public int rotationspeed=0;

private Transform myTransform;

void Awake()
{
myTransform=transform;
}

// Use this for initialization
void Start () {

GameObject player=GameObject.FindGameObjectWithTag("Player");

target=player.transform;
}


现在已经获得了目标和自身的transform 我们可以试着在他们之间连条线 通过debug的drawline可以很轻松的做到

void Update () {
Debug.DrawLine(target.position,myTransform.position,Color.yellow);
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity3d