unity3d 怪物的简单ai

我们想让怪物知道自己的攻击目标(当然指的是玩家)然后转向和移动来攻击玩家,因此我们先声明需要用到的变量,首先我们需要一个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);
	}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值