猿问

如何在“jump”方法中使用布尔值?

我为我的角色扮演游戏制作了一个跳跃系统。--> 检测球员何时接地存在问题。


我试图让系统返回布尔值,并用 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()

运算符“==”不能应用于“方法组”和“bool”类型的操作数 (CS0019) [Assembly-CSharp]


慕盖茨4494581
浏览 84回答 1
1回答

慕村9548890

将此添加为答案,以便在时间结束之前不会出现在未回答的问题列表中bool isGrounded ()&nbsp;{&nbsp; &nbsp; return Physics.Raycast(transform.position, Vector3.down, distToGround);}//jump Forceif(Input.GetButton("Jump")){&nbsp; &nbsp; if(isGrounded == true)&nbsp;&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; GetComponent<Rigidbody>().AddForce (Vector3.up * 100);&nbsp; &nbsp; }}线路if(isGrounded == true)告诉编译器查找名为 的符号isGrounded并将其值与 进行比较true。由于是 一种方法,而不是布尔属性或字段,因此您基本上要求编译器比较toisGrounded的地址,这完全是零意义(即使在 C# 中允许,但事实并非如此)。isGrounded()true如果你把这个改成,if(isGrounded() == true)&nbsp;或者,更简洁地说,if(isGrounded())&nbsp;它将调用isGrounded()并测试返回值。括号很重要。
随时随地看视频慕课网APP
我要回答