如何在Unity中向特定方向的对象施加力

时间:2014-01-28 20:22:14

标签: c# ios unity3d unityscript

我正在使用团结来开发我的游戏。我通过计算触摸的startPosition和结束位置来制作自定义滑动手势。我通过减去两个位置得到了矢量方向并成功调试了它。

但是当我对我的游戏对象施加武力时,我在尝试之后并没有取得任何成功。

这就是我正在做的事情:

swipeDirection = new Vector3(endPos.x - startPos.x,0f, endPos.z - startPos.z);

swipeDirection.Normalize();

Debug.Log("The direction is "+ swipeDirection);

ball.rigidbody.AddForce(swipeDirection * 5);

其中ball只是一个GameObject。每当我在我的iPhone上运行它时,游戏就会卡住,在第一次滑动后给出一个EXC_BAD_ACCESS代码。

1 个答案:

答案 0 :(得分:0)

所以我刚刚测试了你的代码。它有效。你可能遇到的这个问题是这些数字很可能是非常小的,你需要很多力才能明显地移动它。尝试将5改为1000或大的东西,这样你就可以看到变化。这是我的代码,只是添加到刚体的球。

void Start ()
    {
            Vector3 dir = new Vector3 (100f, 0f, 0f);
            dir.Normalize ();
            this.gameObject.rigidbody.AddForce (dir * 100);
    }
几乎完全相同。你只需要使乘数大到足以看到。 祝你好运。