私はクリック可能に設計されたcollider2dでゲームオブジェクトを持っています。また、プレーヤーが動いている間にカメラに従うUIボタンがあります。オーバーラップエリアをクリックしたときに、ユーザーがオブジェクトをクリックしたいと思っています(これはraycast2dヒットによって行われました)ので、ボタンをクリックしないようにしてください。クリック可能なゲームオブジェクトのレイキャスト注入のunity2d raycast2dヒット時にUiボタンがクリックされるのを防ぐ
スクリプトは以下の通りである:
private void checkTouch()
{
if (Input.touchCount > 0 || Input.GetMouseButtonDown(0))
{
Vector2 rayPos = new Vector2(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y);
RaycastHit2D hit = Physics2D.Raycast(rayPos, Vector2.zero, 0f);
if (hit)
{
Debug.Log(hit.collider.gameObject + "is hit");
IInputBehavior inputBehavior = hit.collider.gameObject.GetComponent<IInputBehavior>();
//IInputVehavior was a self-desgined C# interface which has a `OnClick()` method.
if (inputBehavior != null)
{
//here we should prevent the UIButton to be clicked, but how?
inputBehavior.OnClick();
}
}
}
}
:それはこのようなものです、あなたのゲームオブジェクトで 私はあなたを得た? – armnotstrong