(五) 巡逻逻辑

0. 界面操作设置

 

1. 设置一个左点和右点, 根据检测list中识别到的物体,切换当前target,向target移动

transform.position = Vector2.MoveTowards(transform.position, targetPoint.position, speed * Time.deltaTime);

2. 判断那边远向哪边

if (Mathf.Abs(pointA.position.x - transform.position.x) > Mathf.Abs(pointB.position.x - transform.position.x))

        {

            targetPoint = pointA;

        }

        else

        {

            targetPoint = pointB;

        }

3. 使用rotation或者scale进行翻转, 同时翻转组件

if (transform.position.x < targetPoint.position.x)

        {

            transform.rotation = Quaternion.Euler(0f, 0f, 0f);

        }

        else

        {

            transform.rotation = Quaternion.Euler(0f, 180f, 0f);

        }

4. 距离边界,一般取0.01f

if (Mathf.Abs(transform.position.x - targetPoint.position.x) < 0.01f)

{

SwitchPoint();

}

5. 添加trriger的list

private void OnTriggerStay2D(Collider2D other)

    {

        if (!attackList.Contains(other.transform))

        {

            attackList.Add(other.transform);

        }

    }

    private void OnTriggerExit2D(Collider2D other)

    {

        attackList.Remove(other.transform);

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值