好吧,我正在制作这个游戏,用户可以在屏幕上拖动一个球,但它不应该离开游戏区域。虽然我将推向了碰撞体,但它会反弹回来,如果我推得太紧,它就会脱离屏幕(我需要使它不会脱离屏幕,用户可以自由拖动它当然,但在屏幕内)。当使用rigidbody2D拖动一个物体时,它会穿过碰撞体(墙壁)
有关如何解决此问题的任何提示?
这里是我使用这对于拖动代码:
using UnityEngine;
using System.Collections;
public class CircleManager : MonoBehaviour {
private bool dragging = false;
private Vector3 screenPoint;
private Vector3 offset;
// Pressionando
void OnMouseDown()
{
dragging = true;
screenPoint = Camera.main.WorldToScreenPoint(gameObject.transform.position);
offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
}
// Arrastando
void OnMouseDrag()
{
Vector3 cursorPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
Vector3 cursorPosition = Camera.main.ScreenToWorldPoint(cursorPoint) + offset;
//i tried with both below.
//transform.position = cursorPosition;
transform.GetComponent<Rigidbody2D>().MovePosition(cursorPosition);
}
// Soltando
void OnMouseUp()
{
dragging = false;
}
}
谢谢!
*“当我将它推向碰撞体时,它会反弹回来”*您究竟期待它做什么? – maksymiuk
我期待它不会穿过墙壁,对于缺乏清晰度感到抱歉!我需要它碰撞并停留在那里,不允许玩家将它从屏幕上拖出。 – PossessWithin