Unity3D:根据对象面向的方向添加力

时间:2015-06-09 20:57:02

标签: c# unity3d transform

我正在尝试制作类似“蠕虫”的游戏,玩家可以选择对象的位置(玩家可以将对象移动180度左右),然后将力添加到对象的方向面对。我尝试使用transform.right和transform.forward,但是力量没有被驱动到对象指向的位置。我环顾四周,仍然没有找到/理解我能做什么。下面是用于拍摄物体的代码:

    void shootIt(){
       transform.parent = null;
        isPlaying = true;
        A.isKinematic = false;
        A.AddForce(transform.up*varSpeed*_multiplier);
} //"A" stands for the RigidBody2D component I got by using GetComponent<Rigidbody2D>();

总是非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

试试这个:

void shootIt()
{
    Vector2 direction = transform.localPosition.normalized;
    transform.parent = null;
    isPlaying = true;
    A.isKinematic = false;
    A.AddForce(direction*varSpeed*_multiplier);
} 

还要考虑强迫自己为变量写好名字。 A不是很具描述性。