我有一个本质上是球体的字符,但是在y1,x1.2,z1(球体)上缩放。球员沿着错误的轴线旋转?
我可以对任何给定的'pushDirection'中的物体施加力,它是角色刚体位置减去主相机变换位置的产物(这可以很好地将角色移动到相机朝向的方向)向前移动“应该始终处于相机所面对的方向)。
但现在我试图让对象向前旋转向前 - 相机朝向的方向 - 而不是增加的力量。我正在增加扭矩。 [这里是我的目标粗略说明的截图与我的意图轴:
注意,只要摄像机周围的物体旋转,旋转轴将转移。
相反虽然,我得到的结果,其中的字符旋转,如该示出的屏幕截图中示出:
如所提到的,由于相机与相机沿着移动轴旋转位移。但我希望物体远离相机,而不是向左旋转。 (注意,在这两个屏幕截图中,我已将对象悬浮在无重力的情况下尝试调试其旋转)。我的脚本
相关位低于:
void Start()
{
rb = GetComponent<Rigidbody>();
pushForward = rb.transform.position -
Camera.main.transform.position;
}
void Update()
{
speed = rb.velocity.magnitude;
pushForward = rb.transform.position - Camera.main.transform.position;
if (Input.GetKey("w"))
{
isForward = true;
}
else
{
isForward = false;
}
}
void FixedUpdate()
{
// IF KEY IS DOWN, MOVE //
if (isForward == true)
{
float turn = Input.GetAxis("Vertical");
rb.AddTorque(pushForward * torque * turn);
Debug.Log("Moving Forward");
}
}
我这个玩耍了这么多,我只是不能让我的头周围。我也完全混淆了,就像我将Input.GetAxis更改为“Horizontal”一样,调试消息“Moving Forward”弹出良好,但我没有在对象中获得任何类型的旋转 - 完全没有。
如果任何人都可以指出我正确的方向,我真的很感激它,我让自己有点困惑。
什么是你的代码的扭矩? –
@DávidFlorek'torque'是一个'float',用于增加/减少每个输入单位的旋转量。 – Galandil