Unity 3D 自动寻路(简单)

这是一段控制僵尸向玩家移动的脚本,AI很sb但很有效。我将对Unity3d引擎和UDK引擎的AI脚本编写做一个简单的编程介绍。
}

  接着介绍Unity3d引擎下的脚本编写。需要改几个变量,首先是玩家坐标(thePlayer.Location),在Unity3D里面没有这个现成的变量,但是你也可以做一步转化获得玩家坐标thePlayer.Location=GameObject.FindWithTag("Player").transform.position
MoveTo函数的具体形式在Unity3D引擎中可以这样写
function MoveTo(position : Vector3)
 {
  var direction = position - transform.position;
  direction.y = 0;
  //(transform.rotation与Quaternion.LookRotation(direction) 之间的差值,可令游戏对象缓慢转动)
  transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.LookRotation(direction),     rotationSpeed * Time.deltaTime);
  //定义物体的旋转只在Y轴 ,X与Y轴为0,不进行旋转  
  transform.eulerAngles = Vector3(0, transform.eulerAngles.y, 0);
  var forward = transform.TransformDirection(Vector3.forward);
  var speedModifier = Vector3.Dot(forward, direction.normalized);
  speedModifier = Mathf.Clamp01(speedModifier);
  direction = forward * speed * speedModifier;
  GetComponent (CharacterController).SimpleMove(direction);
 }
 如果你要跑动有声音,那么把这段插到MoveTo函数里面就可以
 if (Time.time > SoundReloadTime +lastSound)
  {
       if (Sound)
              AudioSource.PlayClipAtPoint(Sound, transform.position);
             lastSound = Time.time;
  }
 这样就有脚步声了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值