项目: 在一个平面上有四个角落有四个cube,中间有一个Sphere,让Sphere依次到达这四个cube的位置,实现巡逻的机制,并且让它在每个cube的位置等待2秒钟
问题: 1.小球如何在每个立方体上停留2秒
答:用计时器
2.小球到达第一个立方体之后如何移动到下一个
答:循环机制,用数组实现
3.如何让小球一直巡逻下去.
答:数组里添加循环的条件
解析:
1.创建一下几个物体,给四个cube加上Cube1的标签,创建一个脚本,把脚本挂在Sphere上面,实现小球的巡逻机制
//创建一个cube数组
GameObject[]cube;
//数组下标
inti=0;
//计时
floattimer;
voidStart()
{
//查找含有标签Cube1的所有物体,给数组cube
cube=GameObject.FindGameObjectsWithTag("Cube1");
//查看小球Sphere巡逻的顺序
//Debug.Log(cube[0].name);
//Debug.Log(cube[1].name);
//Debug.Log(cube[2].name);
//Debug.Log(cube[3].name);
}
voidUpdate()
{
//当Sphere和cube的距离dis小于0.08f时,认为Sphere已经到了cube的位置
floatdis=Vector3.Distance(transform.position,cube[i].transform.position);
if(dis<=0.08f){
timer+=Time.deltaTime;
//当timer的时间大于等于2秒时,让它归0,且让Sphere去下一个cube那里
if(timer>=2f){
i++;
timer=0;
}
//实现循环的机制,当数组下标到4以后,重新从0开始
if(i==4){
i=0;
}
}
//当当Sphere和cube的距离dis大于0.08f时,让Sphere向cube移动
else{
transform.position=Vector3.Lerp(transform.position,cube[i].transform.position,0.01f);
}
}