我从未使用过isKinematic属性,该对象具有8个车轮碰撞器,并且对象的质量为20000。

我尝试了所有组合;我用x y z加力
 Obj.GetComponent.<Rigidbody>().AddRelativeTorque( V*(spd)*1000, 0,0);
但他们都不起作用!飞机停了下来。

可能是什么问题呢?

这是我的代码:

var Obj : Rigidbody;
var zrotForce : int = 1;
var MaxRot : int = 90;
var MinRot : int = -90;
var rotupForce : int = 1;
var speed : float;
var speedincrease : float;
var speeddecrease : float;
var Maxspeed : int;
var Minspeed : int;
var takeoffspeed : int;
var lift : int;
var minlift : int;
var hit = false;
function Start () {

    InvokeRepeating("Speed", .1, .1);
}

function Speed(){

if (Input.GetKey(KeyCode.Space)){
Mathf.Repeat(1,Time.time);
    speed=speed+speedincrease;
    }
if (Input.GetKey(KeyCode.LeftAlt)){
Mathf.Repeat(1,Time.time);
    speed=speed-speeddecrease;
    }
}

function Update () {
var spd = Obj.velocity.magnitude;
    //Obj.GetComponent.<Rigidbody>().AddRelativeForce(0,0,-speed);
    H=(Input.GetAxis ("Horizontal"))*zrotForce;
    if (H){
    Obj.GetComponent.<Rigidbody>().AddRelativeTorque(H*(spd/100), 0, 0);
    }
    V=(Input.GetAxis ("Vertical"))*rotupForce;
    if (V){

    Obj.GetComponent.<Rigidbody>().AddRelativeTorque( V*(spd)*1000, 0,0);
    }

    if(Maxspeed<=speed){
    speed=Maxspeed;
    }else{
    speed=speed;
    }
    if(Minspeed>=speed){
    speed=Minspeed;
    }else{
    speed=speed;
    }
        if (speed<takeoffspeed){
    Obj.GetComponent.<Rigidbody>().AddForce(0,minlift,0);

    }
    if(speed>takeoffspeed){
    Obj.GetComponent.<Rigidbody>().AddForce(0,lift,0);
    }
    if (Obj.GetComponent.<Rigidbody>().rotation.z>MaxRot){
    Obj.GetComponent.<Rigidbody>().rotation.z=MaxRot;
    }
    if (Obj.GetComponent.<Rigidbody>().rotation.z<MinRot){
    Obj.GetComponent.<Rigidbody>().rotation.z=MinRot;
    }
}

最佳答案

有两种原因导致力或转矩不起作用:-

1)刚体的质量太高。所以你要么
改变其质量或增加力量。例如,根据需要,移动质量为1单位的对象所需的力必须介于100-200之间或更大。

2)宣布刚体为运动学时,则只能使用脚本或动画更改其变形。如果您不希望刚体受重力影响并保持浮动,则只需取消选中isGravity和isKinematic(这将使物体保持在空气中,还可以根据需要使用力或转矩来影响它)。

关于javascript - AddForce无法在Unity中工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34885092/

10-11 01:23