【发布时间】:2019-07-21 12:25:07
【问题描述】:
我正在开发一款手机游戏。我在光线投射和事件方面遇到了一些问题。
我有一个屏幕空间叠加画布,其中有一个覆盖区域 A 的 UI 图像。此图像设置为透明。它的目的是接收用户输入。
然后我还有一个世界游戏对象,一个 位于 A 区域内的 2d 精灵。这个精灵附有一个 2d 盒子碰撞器。这个精灵充当用户可以按下的世界对象(如建筑物)。
我已经设置了一个物理 2d 光线投射器来检测 2d 精灵上的输入。我遇到的问题是 UI 图像显然阻挡了 2d 物理射线投射 到 2d 精灵。只有当我关闭 UI Image 时,我才能接收到物理 raycast 事件。
帮助。难道我做错了什么?我认为物理 2d 射线投射仅与 2d 物理组件反应?
这是附加到 2d 精灵的脚本。
using UnityEngine.EventSystems;
public class SpriteSelector : MonoBehaviour, IPointerDownHandler
{
public void OnPointerDown(PointerEventData eventData)
{
Debug.Log("Sprite selected");
}
}
这是附加到 UI 图像的脚本。
using UnityEngine.EventSystems;
public class UIImageSelector : MonoBehaviour, IPointerDownHandler
{
public void OnPointerDown(PointerEventData eventData)
{
Debug.Log("UI Image selected");
}
}
【问题讨论】:
标签: c# unity3d raycasting