这是一段控制僵尸向玩家移动的脚本,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;
}
这样就有脚步声了。