小编Mar*_*ger的帖子

Unity - 检查鼠标单击是否在矩形变换内

我试图弄清楚鼠标单击是否在矩形变换内部。

每次用户点击屏幕时,就会抛出一个球。但如果用户单击暂停按钮,则不应扔球。

我尝试用这段代码来解决,但似乎只识别了矩形变换的右上四分之一。这是一个简短的视频来展示实际问题:https ://youtu.be/gdyDBK6ubgo

这是代码片段:

void Update() {
     //Check if user touch on display / click mouse button 
     Vector2 mousePos = new Vector3(Screen.width - Input.mousePosition.x,Screen.height - Input.mousePosition.y, 0); 
     if (Input.GetMouseButtonDown(0) && props.throwable && !checkCollisionWithPauseButton(mousePos) && props.remainingBalls > 0)
     {
         fireBall(Input.mousePosition);
     }
 }

 bool checkCollisionWithPauseButton(Vector3 mousePos){
     //TODO: This does not work very well
     return pauseButton.GetComponent<RectTransform>().rect.Contains (mousePos); 
 }
Run Code Online (Sandbox Code Playgroud)

这是显示矩形变换的屏幕截图。

c# user-interface unity-game-engine

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

unity-game-engine ×1

user-interface ×1