如何在统一方向沿特定方向施加力



我正在使用Unity来开发游戏。我通过计算触摸的起始位置和结束位置来定制滑动手势。我通过减去两个位置并成功调试了矢量方向。

但是,当涉及到我的游戏对象时,尝试了很多东西,我没有获得任何成功。

这是我在做的:

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

球只是一个游戏对象。每当我在iPhone上运行它时,游戏就会被卡住,在第一次刷新之后给予exc_bad_access代码。

,所以我刚刚测试了您的代码。而且有效。您可能会遇到的这个问题是这些数字很可能很小,您需要大量的力量才能明显移动它。尝试将您的5更改为1000或大型东西,以便您肯定可以看到更改。这是我的代码,刚刚添加到带有刚体的球中。

void Start ()
    {
            Vector3 dir = new Vector3 (100f, 0f, 0f);
            dir.Normalize ();
            this.gameObject.rigidbody.AddForce (dir * 100);
    }

几乎相同。您只需要使乘数足够大才能看到。祝你好运。

最新更新