1

私はUIToolkitで遊んでいます、そしてそれは素晴らしいです。クリックはボタンを通過するので、UIをクリックするとレイキャストも開始します。クリック/タッチがGUI上にあるかどうかを確認する方法はありますか?

編集:Prime31のUIToolkitを使用しています

解決済み:

foreach (var touchable in _gui.touchableSprites) {
    if ( !touchable.hidden && touchable.hitTest(new Vector2(clickPos.x, Screen.height - clickPos.y)) ) return;
}

ありがとう。

4

1 に答える 1

2

prime31のUIToolkitを使用していると仮定して、UIToolkit.cs(81〜95行目)スクリプトを見てください。作成 者は、TouchableSpritesの強調表示を処理する方法を示す例を作成します。同じ機能をMouseOverイベントの実行に適合させることができます。作者が2011年以降にこの機能を追加したかどうかはわかりませんが、しばらくの間UIToolkitを使用していません。

または、最初のレイヤーヒットが「UILayer」(UIToolkitのレイヤー)である場合に戻るように、すべてのレイトレーシングを変更できます。

私が使用する3番目の方法は、すべてのGUIrectのリストを格納するグローバルGUI要素マネージャーを作成することです。新しいレイトレーシング関数を追加するときは、マネージャークラスを呼び出して、マウスカーソルがGUI rectに含まれているかどうかを確認します(重複するrectをマージする洗練された機能が少しあります)。含まれている場合は、レイトレースはスキップされます。

于 2012-11-25T21:20:39.330 に答える