[Unity]检测何时点击用户界面元素。

この記事は約2分で読めます。
スポンサーリンク

我想做的事情

这段代码用于检测 Unity 中何时点击 UI 元素(更准确地说,是带有 RectTransform 组件的 GameObject)。

通常情况下,您只需继承 Button 即可,但当无法做到这一点时(例如,当您需要将事件传递到底部时),您需要自己检测何时发生了点击事件。

スポンサーリンク

执行

请使用以下函数。

bool RectangleContainsScreenPoint (RectTransform rect, Vector2 screenPoint, Camera cam);

此函数检查屏幕点是否在矩形区域内。如果在,则返回 true。

在用户界面上进行测试时,无需配置摄像头。

具体示例

下面展示一个示例实现。

该类继承自 MonoBehaviour,并对子名称为GameObjectName的对象执行验证。

if (Input.GetMouseButtonUp(0)) {
    var obj = tramsform.Find("GameObjectName");
    if (RectTransformUtility.RectangleContainsScreenPoint(obj.GetComponent<RectTransform>(), Input.mousePosition))
    { 
            Debug.Log ("GameObject is clicked");
    }
}
スポンサーリンク

我用作参考的网站

RectTransformUtility-RectangleContainsScreenPoint - Unity スクリプトリファレンス
RectTransform は指定されたカメラから見たスクリーンポイントを含むか。

コメント

タイトルとURLをコピーしました