我为rpg制作了一个跳跃系统。 ->检测播放器何时接地的问题。
我试图使系统返回布尔值,并将if方法添加到跳转方法中,不幸的是我被卡住了
bool isGrounded ()
{
return Physics.Raycast(transform.position, Vector3.down, distToGround);
}
//jump Force
if(Input.GetButton("Jump"))
{
if(isGrounded == true)
{
GetComponent<Rigidbody>().AddForce (Vector3.up * 100);
}
}
错误消息在这里。
bool isGrounded()
运算符'=='不适用于'方法组'和'布尔'类型的操作数(CS0019)[Assembly-CSharp]
答案 0 :(得分:2)
将其添加为答案,以便直到时间结束后才出现在未回答的问题列表上
bool isGrounded ()
{
return Physics.Raycast(transform.position, Vector3.down, distToGround);
}
//jump Force
if(Input.GetButton("Jump"))
{
if(isGrounded == true)
{
GetComponent<Rigidbody>().AddForce (Vector3.up * 100);
}
}
行
if(isGrounded == true)
告诉编译器找到一个名为isGrounded
的符号,并将其值与true
进行比较。由于isGrounded
是一种方法,而不是布尔属性或字段,因此,您基本上是在要求编译器将isGrounded()
与true
的地址进行比较,这完全是零的意义(即使它在C#中被允许,但事实并非如此)。
如果将其更改为
if(isGrounded() == true)
或更简洁地
if(isGrounded())
它将调用isGrounded()
并测试返回值。
身体感觉很重要。