클릭 할 수 있도록 설계된 collider2d가있는 gameobject가 있으며 플레이어가 움직이는 동안 카메라를 따라갈 UI 버튼이 있습니다. 가끔씩 겹칠 수 있습니다. 중복되는 부분이있을 때 사용자가 겹침 영역을 클릭하면 사용자가 해당 객체 (raycast2d 히트)를 클릭하여 버튼을 클릭하지 못하게해야합니다.raycast2d가
이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();
}
}
}
}
제 질문은 당신이 참조하는 코드가 UI 버튼을 클릭 할 경우 경우, 감지하는 방법은, 클릭 할 수있는 UI 버튼을 방지하는 방법입니다 내가 맞췄 니? – armnotstrong