Unity Android 拖动瞄准释放

Unity Android Drag Aim Release

我需要一些帮助(我认为很简单但我不知道)(对于 android):我有一个二维球,它在一个简单的正方形上 table (你从上面看到它,所以我不需要重力),我想从那个球中拖动并释放,如果你拖动 "behind" 球,球会朝那个方向或相反的方向移动。只需将手指放在球上,然后拖动并松开。我在论坛和 youtube 上到处搜索了 2 天,但找不到我需要的东西。我找到了一些东西,但它真的已经过时了,对我没有帮助。谢谢您的帮助!如果已经有我没有找到的答案,我很抱歉占用您的时间!

这假设你有一个 Rigidbody2D 和 collider 连接到你的球,并且会在你拖动的相反方向发射球。

Rigidbody2D rbody;
Vector2 startpos;
Vector2 endpos;
float power = 5f; // power of shot

void Start()
{
    rbody = GetComponent<Rigidbody2D>();
}

void Update()
{
    if (Input.GetMouseButtonUp(0))
    {
        endpos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        LaunchBall();
    }
}

void OnMouseDown()
{
    startpos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
}

void LaunchBall()
{
    Vector2 direction = (startpos - endpos).normalized; // swap subtraction to switch direction of launch
    rbody.AddForce(direction * power, ForceMode2D.Impulse);
}