Unity Android Drag Aim版本

时间:2018-10-11 17:08:46

标签: android unity3d 2d-games

我需要帮助(我认为这很简单,但我不知道)(适用于android):我有一个2D球,在一个简单的方形桌子上(您可以从上方看到它,所以我不知道) (不需要重力),我想从该球上拖动并释放,释放后,如果您向“球”后方拖动,该球会朝该方向或相反方向前进。只需将手指放在球上,然后拖动并释放即可。我在论坛,YouTube和其他地方搜索了2天,但找不到所需的内容。我发现了一些东西,但是它确实过时了,对我没有帮助。谢谢您的帮助!很抱歉,如果您已经找到我找不到的答案,请您抽出宝贵的时间!

1 个答案:

答案 0 :(得分:1)

这是假定您已将Rigidbody2D和对撞机连接到球上,并将以与拖动相反的方向发射球。

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);
}