Unity Android:Rigidbody

时间:2012-08-16 06:26:16

标签: unity3d rigid-bodies

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

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

我的代码:

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

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

7 个答案:

答案 0 :(得分:2)

我不知道你是否在刚体上设置了一个GetComponent变量,但你可能不得不将其除去。

例如:

rigidBody.velocity.x=15;

将是:

rigidbody.velocity.x=15;

希望有所帮助。

答案 1 :(得分: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);
}

答案 2 :(得分:1)

我想你忘了初始化一个刚体。此外,你不能指定这样的速度,因为rigidBody.velocity.x是一个只读值。这段代码可能会帮助你:

public Rigidbody rigidBody;

function Start(){
    rigidBody.velocity=new Vector2(15,0);
}

答案 3 :(得分:0)

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

“Rigidbody.velocity.x = 15;”

您可能必须使用“new Vector3(x,y,z);”传递新的速度。在这种情况下,代码看起来像这样:

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

  • 我现在正在使用2D,因此我的Vector3参数可能已关闭。
  • 我认为Rigedbody是正确的,但它可能是僵硬的 - 见上文。

无论如何,不​​要忘记你的对手。脊状体不会自动与其他物体碰撞,但它们会受到重力的影响。有一次我终于明白了这一点,我只是把我的角色放在20英尺高的路面上。如果你不那么挑剔的话,渲染血液是非常容易的。

答案 4 :(得分:0)

首先需要在检查员中添加刚体组件:

Rigidbody sphereRigidbody;
function Awake(){
sphereRigidbody = GetComponent<Rigidbody>();
sphereRigidbody.velocity = new  Vector3(15,0,0);
}

答案 5 :(得分: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);
    }

答案 6 :(得分: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; 

}