我为我的角色扮演游戏制作了一个跳跃系统。--> 检测球员何时接地存在问题。我试图让系统返回布尔值,并用 if 方法将其添加到跳转方法中,不幸的是我卡住了bool isGrounded () { return Physics.Raycast(transform.position, Vector3.down, distToGround);}//jump Forceif(Input.GetButton("Jump")){ if(isGrounded == true) { GetComponent<Rigidbody>().AddForce (Vector3.up * 100); }}这里有错误消息。bool isGrounded()运算符“==”不能应用于“方法组”和“bool”类型的操作数 (CS0019) [Assembly-CSharp]
1 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
将此添加为答案,以便在时间结束之前不会出现在未回答的问题列表中
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。由于是 一种方法,而不是布尔属性或字段,因此您基本上要求编译器比较toisGrounded的地址,这完全是零意义(即使在 C# 中允许,但事实并非如此)。isGrounded()true
如果你把这个改成,
if(isGrounded() == true)
或者,更简洁地说,
if(isGrounded())
它将调用isGrounded()并测试返回值。
括号很重要。
- 1 回答
- 0 关注
- 83 浏览
添加回答
举报
0/150
提交
取消