我正在使用Unity 3d中的android项目。 我想把球体滚到立方体的表面。 但是,当我单击播放按钮时,它会返回错误消息:
Assets/Scripts/Player.js(4,1): BCE0005: Unknown identifier: 'rigidBody'.
我的代码:
function Start () {
rigidBody.velocity.x=15;
}
刚体组件已添加到球体中。 我想寻求解决产生的错误。
答案 0 :(得分:2)
我不知道你是否在刚体上设置了一个GetComponent变量,但你可能不得不将其除去。
例如:
rigidBody.velocity.x=15;
将是:
rigidbody.velocity.x=15;
希望有所帮助。
答案 1 :(得分:2)
恢复,要原样使用“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)*
无论如何,不要忘记你的对手。脊状体不会自动与其他物体碰撞,但它们会受到重力的影响。有一次我终于明白了这一点,我只是把我的角色放在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;
}