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));
}
有了这个代码,我可以触摸屏幕上的点,但当我抓住我的球在屏幕上有时我不能,因为他们太快。
我能把点击点放大吗?
2条答案
按热度按时间dfty9e191#
你可以使用一个2D或3D的球体碰撞器,并将其附加到空的游戏对象上,将该游戏对象移向屏幕上的触摸点,并使用OnCollisionEnter2D()或OnCollisionEnter3D()事件来检测下落球的检测。现在,球体碰撞器作为一个整体是一个点,它的半径可以在检查器中改变以放大点
有关碰撞事件的更多信息:https://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html
alen0pnh2#
以下是对我有效的方法:
之前(检查器视图):
之后(检查器视图):
基本上,添加一个没有材质的子对象,这样它就看不见了,它自己的Circle Collider +OnMouse监听器。使子对象比父对象大。没有其他更改,现在我可以点击我的球,即使我的触摸有点偏了。