两个相同功能的触发器同时被玩家触发应该怎么控制只让其中一个生效?

[复制链接]
1229 |7
今天小雨转甜 发表于 2023-8-25 09:53:46 | 显示全部楼层 |阅读模式
       有两个物体,分别挂着一个触发器; 触发器的功能是相同的,对应的物体作为参数传回触发器的回调函数做逻辑 。但是当两个物体距离较近的时候,玩家通过两个物体之间会同时触发两个触发器,这时传回的物体参数有可能是混乱的。  这种问题有没有办法解决,只让其中一个触发器生效。

image.png

回复

使用道具 举报

叽里咕噜小胡桃 发表于 2023-8-25 09:57:43 | 显示全部楼层
1. 拉远一点,不要放这么近
2. public 一个全局变量,每次触发时,改变这个变量,之后使用参数时只从这个变量去读,而不是传回的参数读
回复

使用道具 举报

汽汽汽汽水 发表于 2023-8-25 09:59:08 | 显示全部楼层
不会混乱呀? 就是脚本会执行两次。 这就是正常逻辑呀。 能描述是哪里不对呢
回复

使用道具 举报

哭唧唧的细狗 发表于 2023-8-25 10:00:01 | 显示全部楼层
是否可以从设计上去避免呢,相同功能不同参数的触发器对象,是否让他们隔远一些(或触发器的范围小一些)更优质解一些呢?
回复

使用道具 举报

今天小雨转甜楼主 发表于 2023-8-25 10:04:45 | 显示全部楼层
哭唧唧的细狗 发表于 2023-8-25 10:00
是否可以从设计上去避免呢,相同功能不同参数的触发器对象,是否让他们隔远一些(或触发器的范围小一些)更 ...

位置不可控,触发器范围已经设置成可控的了。但是触发器范围还是解决不了根本问题,想看能否在编码上解决这个问题。
尝试过类似于范围检测查找第一个检测到的物体的思路,但是触发器添加和移除 触发回调似乎功能上做不到
回复

使用道具 举报

今天小雨转甜楼主 发表于 2023-8-25 10:08:04 | 显示全部楼层
汽汽汽汽水 发表于 2023-8-25 09:59
不会混乱呀? 就是脚本会执行两次。 这就是正常逻辑呀。 能描述是哪里不对呢 ...

因为触发器的出发回调是注册的同一个方法,只是传递的参数是对应的物体。这个问题在于脚本两次执行,但是两次执行都会对最后传递的那个参数起作用。
回复

使用道具 举报

哭唧唧的细狗 发表于 2023-8-25 10:08:47 | 显示全部楼层
今天小雨转甜 发表于 2023-8-25 10:04
位置不可控,触发器范围已经设置成可控的了。但是触发器范围还是解决不了根本问题,想看能否在编码上解决 ...

如果是这样的话,是否可以尝试自己做一个逻辑呢,比如有一个标志,当你进入第一个触发器后,这个标志设置为已进入,这时候再进入其他触发器则直接reture,不处理后续逻辑,只有当离开第一个触发器后,这个标志再还原为可进入,并且能够进入其他触发器了
回复

使用道具 举报

汽汽汽汽水 发表于 2023-8-25 10:09:44 | 显示全部楼层
今天小雨转甜 发表于 2023-8-25 10:08
因为触发器的出发回调是注册的同一个方法,只是传递的参数是对应的物体。这个问题在于脚本两次执行,但是 ...

是想做到只触发第一个进入?,那可以在脚本里记录一下,进入了一次,除非出去不再触发了。
回复

使用道具 举报

热门版块
快速回复 返回顶部 返回列表