Unity二维平面上物体的移动(十七)

上一节中实现了圆形机器人认识周围环境中物体的数量和名称。圆形机器人应该具备巡逻能力,了解环境中物体所在位置后,逐个到达物体前面进行巡逻。在环境中需要从近到远巡逻。到达目标物体时,和目标物体打个招呼。这就需要机器人具备自动感知目标物并且能够到达目标物的能力。
在这里插入图片描述

我们以圆形机器人感知大木头为例,在public class AutoKnowObject : MonoBehaviour增加如下内容:

GameObject go;
GameObject will;

void Update()
{
go = this.gameObject;
will = GameObject.Find(“wood_big”);
Debug.Log("Myname is " + go.name);
Debug.Log("goalname is " + will.name);
Debug.Log("go to will is " + A2B(go, will));
AutoMoveToObjects(go, A2B(will, go), (float)0.1, will);

}

//6.两点之间直线矢量
Vector2 A2B(GameObject a, GameObject b)
{
Vector2 a2b;
a2b = (Vector2)a.transform.position - (Vector2)b.transform.position;
return a2b;
}

//7.向目标物移动
void AutoMoveToObjects(GameObject begin,Vector2 a2b,float speed,GameObject goal)
{
    GameObject my = begin;
   // float num = 1;
    my.transform.Translate(a2b*speed*Time.deltaTime,Space.World);
    Vector2 dis = A2B(my, goal);
    if( dis.sqrMagnitude < 1)
        {
        my.transform.Translate(a2b*0);
     //   num = 0;
    } 
}

初始状态下
在这里插入图片描述
圆形机器人逐步向大木头移动
在这里插入图片描述
越来越近
在这里插入图片描述
逐步靠近
在这里插入图片描述
到达目标物大木头处。速度减为0.
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值