Unity3D制作简单的巡逻机制

项目:  在一个平面上有四个角落有四个cube,中间有一个Sphere,让Sphere依次到达这四个cube的位置,实现巡逻的机制,并且让它在每个cube的位置等待2秒钟


问题: 1.小球如何在每个立方体上停留2秒

答:用计时器

2.小球到达第一个立方体之后如何移动到下一个

答:循环机制,用数组实现

3.如何让小球一直巡逻下去.

答:数组里添加循环的条件


解析:

1.创建一下几个物体,给四个cube加上Cube1的标签,创建一个脚本,把脚本挂在Sphere上面,实现小球的巡逻机制


Unity3D制作简单的巡逻机制_第1张图片


Unity3D制作简单的巡逻机制_第2张图片

//创建一个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);

}

}

你可能感兴趣的:(Unity3D制作简单的巡逻机制)