unity2D让游戏物体在不规则范围内随机移动

整体思路是,利用polygon collider 2D做了一个边缘的触发器,但是如果只是让游戏物体触碰到边缘后,随机改变方向,或者仅仅只是方向取反,会造成下列一些极限情况。
比如随机取一个方向,就直接从边缘朝外面移动了,这里如果说给一个随机方向的范围,但因为是不规则边缘,那么很有可能一开始游戏物体的运动方向和边缘的切线就只有10°,或者更小,那么无论怎样都会有个极限情况,让游戏物体飞到了外界。
如果取反的话,会看着游戏物体非常的僵硬。
下面我要做的就是让鸡在鸡圈中随机移动,并且不会移动到鸡圈外。
在这里插入图片描述
第一步,加一个polygon检测器
在这里插入图片描述
按照你想要的区域,把它勾出来即可

第二步,加几个随机点,这在后面,判断碰到碰撞器的时候有用。
注意随机点最好几个方向都有一个,并且要放在边缘碰撞检测的里面。
在这里插入图片描述

第三步,给挂有边缘检测的gameobject加一个脚本
用来判断,当游戏物体从检测器中离开的时候,该怎么做。

  private void OnTriggerExit2D(Collider2D collision)
    {
        int temp= Random.Range(0, ChickenPenManage.instance.spawns.Length);//在第二步的随机点中随机选一个出来
      
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值