1

我正在使用 Unity 3d 中的一个 android 项目。我会在立方体的表面滚动球体。但是,当我单击播放按钮时,它会返回错误消息:

Assets/Scripts/Player.js(4,1): BCE0005: Unknown identifier: 'rigidBody'.

我的代码:

function Start () {
  rigidBody.velocity.x=15;
 }

刚体组件已添加到球体中。我想为产生的错误寻求解决方案。

4

7 回答 7

2

我不知道你是否在刚体上设置了一个 GetComponent 变量,但你可能需要去掉这个案例。

例如:

rigidBody.velocity.x=15;

将会:

rigidbody.velocity.x=15;

希望有帮助。

于 2012-08-16T08:23:39.703 回答
2
  1. 首先,它是“刚体”而不是“刚体”
  2. 其次,从 Unity 5 + 开始,你不能再使用“刚体”了,所以你必须使用 GetComponent

恢复,要按原样使用“rigidBody”,你必须先初始化它,就像其他人已经回答你的那样:

//link you rigidbody here:
public Rigidbody rigidBody; 

 function Start() {
  //Or if the script is on the GameObject that has the rigidbody component:
  //rigidBody = GetComponent<Rigidbody>();
    rigidBody.velocity=new Vector2(15,0);
}
于 2016-10-22T22:30:28.660 回答
1

我想你忘了初始化刚体。您也不能像这样分配速度,因为rigidBody.velocity.x 是一个只读值。此代码可能会帮助您:

public Rigidbody rigidBody;

function Start(){
    rigidBody.velocity=new Vector2(15,0);
}
于 2016-04-17T22:27:42.703 回答
0

您尚未初始化变量“rigidBody”。我不认为这是你的目标。如果您将脚本作为组件添加到球体中,则不必使用 getComponent。相反,它将只是:

“刚体.速度.x=15;”

您可能必须使用“new Vector3(x,y,z);” 传递新的速度。在这种情况下,代码将如下所示:

Rigidbody.velocity = new Vector3(15,Rigidbody.velocity.y, Rigidbody.velocity.z)*

  • 我现在在 2D 中工作,所以我的 Vector3 参数可能已关闭。
  • 我认为 Rigedbody 是正确的,但它可能是刚体 - 见上文。

无论如何,不​​要忘记你的对撞机。脊状物体不会自动与其他物体碰撞,但它们会受到重力的影响。一旦我终于弄明白了,我高兴地把我的角色扔到了 20 英尺的人行道上。如果您不那么挑剔,那么渲染血液非常容易。

于 2015-01-17T19:14:41.890 回答
0

对于 c#

您可能想先缓存它。

    private Rigidbody rigidbodyCached;

    //cache
    void Start(){
    rigidbodyCached = this.GetComponent<Rigidbody>();
    }

    //for velocity movements use FixedUpdate instead of Update
    void FixedUpdate(){
    rigidbodyCached.velocity = new Vector3(15,0,0);
    }
于 2017-02-08T04:41:12.857 回答
0

如果您使用小于 5 的单位(我猜),您可以使用游戏对象的组件,如刚体或音频源,但在单位 5 及更高版本中,您需要在唤醒或启动功能中添加对它的引用,如此代码

private Rigidbody rb;

void Start() {
     rb = GetComponent<Rigidbody>();
     // AND AFTER YOU ADDED THE REFERENCE FOR RIGIDBODY 
     // THEN CHANGE THE VELOCITY LIKE THIS
     rb.velocity.x = 20; 

}
于 2017-08-25T06:01:03.337 回答
0

您需要先在检查器中添加刚体组件,然后:

Rigidbody sphereRigidbody;
function Awake(){
sphereRigidbody = GetComponent<Rigidbody>();
sphereRigidbody.velocity = new  Vector3(15,0,0);
}
于 2016-08-24T13:13:31.590 回答