AddRelativeForce不增加相对力

问题描述

首先。我几乎是一个空白的初学者,正在尝试统一制作一个小游戏。 这是一根棍棒,可以同时抬起addforced并旋转。 现在的问题是,当我添加transform.up力时,它绑定到对象z旋转,而不是全局 有什么办法解决吗?

using UnityEngine;

public class LaunchCAR : MonoBehavIoUr
{
    public Rigidbody2D rb2D;
    public float thrust = 10.0f;
    public float torque = 1f;

    private void Start()
    {
      
       transform.position = new Vector3(0.0f,-2.0f,0.0f);
    }

    void FixedUpdate()
    {
        if (Input.GetMouseButtonDown(0))
        {
            rb2D.AddRelativeForce(-(transform.up) * thrust,ForceMode2D.Impulse);

            
           // float turn = Input.GetAxis("Horizontal");
            rb2D.AddTorque(torque,ForceMode2D.Impulse); 
        }
    }
}

解决方法

AddRelativeForce需要对象空间(局部)坐标,但是您传递的是世界空间坐标中的transform.up

请改用Vector3.upAddForce

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...