unity3d 增加触摸区域的大小- Unity

ovfsdjhp  于 2022-12-13  发布在  其他
关注(0)|答案(2)|浏览(253)
private void OnMouseDown()
    {
        screenPoint = Camera.main.WorldToScreenPoint(gameObject.transform.position);
        offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));        
    }

有了这个代码,我可以触摸屏幕上的点,但当我抓住我的球在屏幕上有时我不能,因为他们太快。
我能把点击点放大吗?

dfty9e19

dfty9e191#

你可以使用一个2D或3D的球体碰撞器,并将其附加到空的游戏对象上,将该游戏对象移向屏幕上的触摸点,并使用OnCollisionEnter2D()或OnCollisionEnter3D()事件来检测下落球的检测。现在,球体碰撞器作为一个整体是一个点,它的半径可以在检查器中改变以放大点
有关碰撞事件的更多信息:https://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html

alen0pnh

alen0pnh2#

以下是对我有效的方法:
之前(检查器视图):

BallGameObject
- Rigidbody
- Script that listens to OnMouseDown

之后(检查器视图):

BallGameObject
 - Rigidbody
 - TouchDetectGameObject
   - Circle Collider 2d (**Use a Sphere collider if you're in 3d!)
     - Radius: 5
   - Script that listens to OnMouseDown

基本上,添加一个没有材质的子对象,这样它就看不见了,它自己的Circle Collider +OnMouse监听器。使子对象比父对象大。没有其他更改,现在我可以点击我的球,即使我的触摸有点偏了。

相关问题