希望不与地形碰撞,同时检测与地形的重叠

有没有一种方法可以创建在碰到地形时触发动作,但不会撞到墙壁的对象?

您可以使用我的 Gimmick Tile 插件生成一个对象来更改动作。将其作为插件本身的默认设置会很有趣,但目前除了视觉脚本外,没有 API 可以运行动作或条件。

这是通过检测与图块的接触来判断的吗?例如,能否实现一个能穿墙而过的幽灵角色,仅在穿透过程中变为半透明?

我认为在瓷砖效果的判定模式中,使用“重叠”和“区域变量”是不错的方案。

在“重叠”的情况下,即使碰撞检测处于禁用状态,理论上也能检测到,因此似乎也可以用于该用途。

  1. 为“墙壁”瓷砖设置瓷砖效果 > 区域变量。
  2. 将幽灵 GameObject 的“接收瓷砖效果”设置为“开启”。
  3. 当幽灵对象的变量“当前区域 ID”变为 1 中指定的值时,通过动作过滤器应用透明效果,或者在精灵的颜色属性中将 Alpha 值设置为半透明。
  4. 当“当前区域 ID”变为 1 中指定的值以外的值时,解除步骤 3 中应用的效果。

我认为这样可以实现。

另外,在对象的墙壁判定中也能实现同样的操作吗?

对于对象,如果禁用碰撞就无法触碰,因此可能会采用使用“攻击判定”和“碰撞判定”的方式。

  1. 将墙壁对象的攻击力设为0,并设置攻击判定
  2. 当幽灵与墙壁对象的攻击判定接触时,使其变为半透明

是这样吗?

原来如此……看起来不太好用,那就省略吧……。谢谢。

我突然想到一个点子。

虽然这并非真正的半透明,且也需要调整对象的颜色,但简单地叠加一个半透明的矩形怎么样呢?

  1. 将 ColorRect 设置为对象子节点(此时需设置 Z 坐标,使其位于玩家前方。顺序应为:ColorRect > 幽灵 > Sprite)。
  2. 将 ColorRect 的颜色设置为半透明。
  3. 幽灵会位于半透明矩形后方,从而呈现出半透明的效果。

啊,这只是一个例子,实际上并不是用来实现半透明效果的。
我觉得用这种方法也不行,所以没关系……。