Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 移动游戏对象以单击unity 2d中的位置_C#_Unity3d_Unity3d 2dtools - Fatal编程技术网

C# 移动游戏对象以单击unity 2d中的位置

C# 移动游戏对象以单击unity 2d中的位置,c#,unity3d,unity3d-2dtools,C#,Unity3d,Unity3d 2dtools,在unity 2D中,当游戏对象是具有重力的刚体2D时,是否可以将游戏对象移动到单击位置,并且移动看起来像从游戏对象的位置跳到单击位置。任何帮助参考都会非常有用:)像这样的东西 Transform projectile; float speed = 5f; void Update() { if(Input.GetMouseButtonDown(0)) { Vector3 target = Camera.main.ScreenToWorldPoint(Input.

在unity 2D中,当游戏对象是具有重力的刚体2D时,是否可以将游戏对象移动到单击位置,并且移动看起来像从游戏对象的位置跳到单击位置。任何帮助参考都会非常有用:)

像这样的东西

Transform projectile;
float speed = 5f;

void Update()
{
    if(Input.GetMouseButtonDown(0))
    {
        Vector3 target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        target.z = projectile.position.z;

        Vector3 offset = target - projectile.position;
        Vector3 direction = offset.normalized;
        float power = offset.magnitude;
        projectile.GetComponent<RigidBody2D>().AddForce(direction * power * speed);
    }
}
变换射弹;
浮动速度=5f;
无效更新()
{
if(Input.GetMouseButtonDown(0))
{
Vector3 target=Camera.main.ScreenToWorldPoint(Input.mousePosition);
target.z=射弹.position.z;
矢量3偏移=目标-射弹位置;
矢量3方向=偏移量。归一化;
浮动功率=偏移量;
projection.GetComponent().AddForce(方向*功率*速度);
}
}

我尝试了2-3种方法1。跟随点击,但在这里它看起来不像是跳跃。2.计算单击和玩家之间的距离,然后添加力。有时它能起作用,有时却不行。3.移动玩家到点击位置。我想跳到点击位置,这可能需要一些物理计算。这可能会有帮助:谢谢@Andrew,这真的很有帮助