一个实列在生成时与另一个实列重叠,如何删除这个生成实列
-
如题,我的修建建筑功能是使用的是拖拽实列后移动到建筑框锚点,
那么已有建筑的位置是不需要建筑框的,
而我的建筑框是每次点开建筑列表时才生成,
所以我需要每次生成建筑框时判断是否与实列重叠,若重叠则销毁,
而我写的碰撞和重叠每次都只能在移动时销毁,不能销毁已有
-
生成的时候判断偏移重叠,重叠时销毁吧
-
@怜以风痕 我写的不就是判定偏移重叠么。。。。
-
@怜以风痕 你说的这个方法刚刚实操过 ,不行
-
你的意思是当生成建筑框时判断这个位置是否有建筑框,有的话就销毁是吗
-
@甜咖啡 判断这个位置是否有其他实列,有就销毁,建筑框,
-
@风泣雪 那你可以在生成前就判断是否存在,不存在才生成
-
@风泣雪 注意一下实例的筛选,图上的情况来看的话,是先选中了实例变量-[判定]的值等于0的【建筑框】实例,然后在这个基础上去进行子事件的条件判定,你截图的内容的话,也就是【建筑框】的判定等于0,且与【建筑类】重叠(或与【资源】重叠)的【建筑框】实例才会被销毁,由于不太清楚你这个实例变量-[判定]的值在什么情况下有怎样的变化、分别是什么值,所以不清楚你目前的写法具体有什么点导致你想要的效果没法实现。
回到你想要实现的功能上,利用重叠来判断对应位置是否已创建过建筑的思路是行得通的,所以目前需要理解的是这个思路的实现过程哪里出了差错导致没成功,所以就需要排查相关的流程:
1、你的【建筑框】的实例变量-[判定]的初始值是多少?
2、你目前的【建筑框】生成事件是怎样的?触发该生成事件的条件是怎样的?
3、【建筑框】等对象是否关闭了碰撞,导致重叠没被判定成功?
以上等等,需要把流程整理清楚了才好定位问题所在。
-
@甜咖啡 判断某个位置是否有实例?这个条件改怎么写,没写过
-
@风泣雪 那要看这个实例在哪,假如跟某个对象重叠了,就可以用偏移重叠时来判断
-
@甜咖啡 问题是我写的偏移重叠就是没对呀,只执行了实例移动到位置销毁建筑框,不执行已有实例位置销毁建筑框
-
这三个都没有问题 ,现在测试下来,只对正在创建的实例进行销毁建筑框,
不对已创建的实例销毁建筑框
-
@风泣雪 或许我还没完全了解你的问题,能把全部相关事件都贴一下吗
-
-
@甜咖啡 不好意思 忘记调顺序了
-
单纯这个重叠判定的思路我试了一下,确实是没问题的,剩下的问题在于你的事件或者你的其他设置里,可能有你没发现的细节,但是坛友目前能看到的内容很有限,所以没法断定具体的问题是啥,如果不介意的话也可以把项目文件传上来大家帮忙分析一下,问题解决后你再把上传的文件编辑掉。
-
@欧拉欧拉 谢谢,你这个让我排除了偏移重叠这个条件是没有问题的。。。问题出在别的地方,
-
看了你的事件,你是想要销毁与“建筑类”、“资源”重叠的“建筑框”是吧,有个简单粗暴的做法,你做个动作组,在所有“建筑类”、“资源”上生成一个透明精灵,然后所有与透明精灵碰撞的“建筑框”都销毁,然后把所有透明精灵也销毁。记得调整好透明精灵的尺寸。
而且这个条件也不妥,上面没有父事件了吧,这样的话当判定=0时会一直执行哦
-
@欧拉欧拉 问题会不会出现在这里,这里的建筑类和资源是同类组,,,我没有做精确选定?
-
@甜咖啡 所以 问题就出现在,这个建筑类和资源是同类组的原因?没有精确选中?
-
@风泣雪 如果你怀疑是这个问题的话,可以试试遍历【建筑类】和【资源】去判定它们跟【建筑框】的重叠,不过我个人感觉应该不是这个问题,毕竟我测试的结果里,没有精准选中红块实例,也是生效了
感觉你可以逐步排查看看,例如预览的时候,通过查看各个对象实例的实时属性,来验明你这条事件的执行情况,如果是没执行,就去排查条件是否符合,毕竟实时属性是最准确的,单凭我们自身的推断难免陷入一些盲区看不到真正的问题所在。