在我的2D游戏中,我需要拖动一个对象并将其移动到另一个对象。我通过向移动物体添加刚体和两者的碰撞器来检测两个物体之间的碰撞。我还在另一个对象前面的排序层中有移动对象:
void OnMouseDown() {
print( transform.name + "Clicked");
screenPoint = Camera.main.WorldToScreenPoint(transform.position);
offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
}
void OnMouseDrag() {
Vector3 mousePoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(mousePoint) + offset;
transform.position = mousePosition;
}
void OnTriggerEnter2D(Collider2D other) {
isInsideObject = true;
}
void OnTriggerExit2D(Collider2D other) {
isInsideObject = false;
}
代码工作正常,但是一旦移动的对象与另一个对象发生碰撞并释放鼠标,我就无法点击它并再次拖动它。这一行没有执行:
print( transform.name + " Clicked");
编辑: 这个问题不是另一个问题的“完全重复”。你的答案不适用于我的案例。