这是一段控制僵尸向玩家移动的脚本,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;
}
这样就有脚步声了。
本文详细介绍了如何使用Unity3D引擎编写AI脚本来控制僵尸向玩家移动,并实现行走声音效果。通过修改变量获取玩家坐标,自定义MoveTo函数实现移动逻辑,同时加入声音元素提升游戏体验。
&spm=1001.2101.3001.5002&articleId=8275386&d=1&t=3&u=c404f25373d443d0ad1bceec1cdaa0c2)
2325

被折叠的 条评论
为什么被折叠?



