Unity - 检查播放器是否接地不起作用

2023-12-01

我希望玩家在落地时跳跃。

private void OnTriggerStay(Collider other)
{
    if(other.gameObject.layer == 8)
    {
        isGrounded = true;
    }else { isGrounded = false; }
}

玩家在生成时正在直播。玩家跌落到具有标签的地形后Ground, isGrounded仍然是假的。当我手动设置isGrounded为true并再次跳转时,碰撞后仍然为true。我也不希望玩家在空中进行双跳,我可能已经编码了,但由于出现问题而无法正常工作。

改变OnTriggerStay to OnTriggerEnter并没有改变什么。我希望你可以帮助我。


Do not use OnTriggerStay去做这个。这并不能保证每次都是正确的。

将 isGrounded 标志设置为 true 时OnCollisionEnter叫做。设置为 false 时OnCollisionExit叫做。

bool isGrounded = true;

private float jumpForce = 2f;
private Rigidbody pRigidBody;

void Start()
{
    pRigidBody = GetComponent<Rigidbody>();
}

private void Update()
{
    if (Input.GetButtonDown("Jump") && isGrounded)
    {
        pRigidBody.AddForce(new Vector3(0, jumpForce, 0));
    }
}

void OnCollisionEnter(Collision collision)
{
    Debug.Log("Entered");
    if (collision.gameObject.CompareTag("Ground"))
    {
        isGrounded = true;
    }
}

void OnCollisionExit(Collision collision)
{
    Debug.Log("Exited");
    if (collision.gameObject.CompareTag("Ground"))
    {
        isGrounded = false;
    }
}

在您说它不起作用之前,请检查以下内容:

  • 你必须有Rigidbody or Rigidbody2D附加到播放器。

  • If this Rigidbody2D,你必须使用OnCollisionEnter2D and OnCollisionExit2D.

  • 您必须使用 IsTrigger 将 Collider 连接到玩家 禁用。

  • 确保您没有移动Rigidbody与这样的变换 作为transform.position and transform.Translate。你必须移动RigidbodyMovePosition功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity - 检查播放器是否接地不起作用 的相关文章

  • C# 打印问题(RichTextBox)

    我想打印我的 RichTextBox eintragRichTextBox 的内容 我现在有这个代码 private void druckenPictureBox Click object sender EventArgs e PrintD
  • CMake 找不到请求的 Boost 库

    既然我已经浏览了其他人的解决方案几个小时 但找不到适合我的问题的正确答案 我想将我的具体问题带给您 我正在尝试使用 CMake 构建 vsomeip 为此 我之前构建了 boost 1 55 但是 我在 CMake 中收到以下错误 The
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • 有没有办法在 xcode 上使用 c++0x ?我想使用 gcc 4.4 或更高版本

    我想使用 gcc 4 4 或更高版本进行 iphone 开发 有人知道怎么做吗 不 你不知道 相信我 你不会 Apple 仍保留 gcc 4 2 1 因为 4 2 2 及更高版本使用 GPLv3 这意味着他们必须放弃对其平台的控制 对于 i
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • 获取 boost Spirit 语法中的当前行

    我正在尝试使用 boostspirit 获取正在解析的文件的当前行 我创建了一个语法类和结构来解析我的命令 我还想跟踪在哪一行找到命令并将其解析到我的结构中 我将 istream 文件迭代器包装在 multi pass 迭代器中 然后将其包
  • 将接口转换为其具体实现对象,反之亦然?

    在 C 中 当我有一个接口和几个具体实现时 我可以将接口强制转换为具体类型 还是将具体类型强制转换为接口 这种情况下的规则是什么 Java 和 C 中都允许这两个方向 向下转型需要显式转型 如果对象类型不正确 可能会抛出异常 然而 向上转换
  • 根据对象变量搜索对象列表

    我有一个对象列表 这些对象具有三个变量 ID 名称和值 这个列表中可能有很多对象 我需要根据ID或Name找到一个对象 并更改值 例子 class objec public string Name public int UID public
  • C#6 中的长字符串插值行

    我发现 虽然字符串插值在应用于现有代码库的字符串 Format 调用时非常好 但考虑到通常首选的列限制 字符串对于单行来说很快就会变得太长 特别是当被插值的表达式很复杂时 使用格式字符串 您将获得一个可以拆分为多行的变量列表 var str
  • Project Euler #8,我不明白我哪里出了问题[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在做项目欧拉第八题 https projecteuler net problem 8 其中我得到了这个大得离谱的数字 7316
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • 在 OpenGL 中渲染纹理 1 到 1

    所以我想做的是使用 OpenGL 和 C 将纹理渲染到平面上 作为显示图像的一种方式 但是我需要确保在渲染纹理时没有对纹理进行任何处理 抗锯齿 插值 平滑 模糊等 这是 OpenGL 处理渲染纹理的默认方式吗 或者是否需要设置一些标志才能禁
  • ASP.NET MVC 路由:如何从 URL 中省略“索引”

    我有一个名为 StuffController 的控制器 具有无参数索引操作 我希望从表单中的 URL 调用此操作mysite com stuff 我的控制器定义为 public class StuffController BaseContr
  • 如何停止无限循环?

    我正在编写一个程序 该程序将计算三角形或正方形的面积 然后提示用户是否希望计算另一个 我的代码已经运行到可以计算任一形状的面积的程度 但随后不再继续执行代码的其余部分 例如 如果选择了正方形 则计算面积 然后返回到正方形边长的提示 我假设这
  • 在 C#.NET 中安全删除文件

    在我正在做的一个项目中 我想为用户提供 安全 删除文件的选项 例如 用随机位或 0 覆盖它 在 C NET 中是否有一种简单的方法可以做到这一点 效果如何 你可以调用系统内部删除 http technet microsoft com en
  • C++ 中 void(*)() 和 void(&)() 之间的区别[重复]

    这个问题在这里已经有答案了 在此示例代码中 func1是类型void int double and funky是类型void int double include
  • 需要提取字符串中点后的最后一个数字,如“7.8.9.1.5.1.100”

    我需要提取 C 字符串中最后一个点后面的最后一个数字 例如 7 8 9 1 5 1 100 并将其存储在整数中 Added 该字符串也可以是 7 8 9 1 5 1 1 或 7 8 9 1 5 1 0 我还想验证它在最后一个点之前恰好是 7
  • 通过 Tab 键浏览 XML 文档字段

    In VB NET you can move through the fields in the XML member documentation with the Tab key 这在 C 中不起作用 还有其他方法吗 除了用鼠标将光标放在
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您

随机推荐

  • 用于计算像素数的着色器

    我正在寻找一个着色器 CG 或 HLSL 它可以计算红色像素或我想要的任何其他颜色的数量 你可以这样做原子计数器在片段着色器中 只需测试输出颜色 看看它是否在一定的红色容差范围内 如果是 则增加计数器 绘制调用之后 您应该能够读取 CPU
  • CSS 清除修复不起作用

    This http jsfiddle net 77RRA 1 正在工作 而这个 http jsfiddle net 77RRA 不是 ClearFix 不应该替代该行吗 div div ClearFix 不应该替代该行吗 div div 是
  • xcode 3.2.4(sdk 4.1)无法安装到设备

    我最近在我的机器上安装了 XCode 3 2 4 它附带 iOS SDK 4 1 令人烦恼的是 我无法再将我的应用程序安装到任何 iPhone 上 存在在下拉列表中勾选 设备 以选择安装位置的选项 但是当我单击它时 它不会被勾选 奇怪的是
  • 为什么非交互式 Bash shell 中的别名不起作用

    我正在尝试在非交互式 bash shell 中使用别名 我已经定义了我的别名 bashrc我已经设置了变量BASH ENV startUpFile 启动文件的内容是source bashrc 当我执行以下命令时 我可以看到我的别名被识别al
  • 安装 respinned/定制 centos 时出错

    我关注此链接的目的是使用从互联网下载的一些额外软件包 例如 ABCD rpm 创建自定义 CentOS ISO https wikis uit tufts edu confluence display TUSKpub Build Custo
  • Android Studio Gradle 升级到版本 0.5.0 时出现问题 - Gradle 从 0.8 迁移到 0.9 - Android Studio 也升级到 0.8.1

    升级后消息指出 Failed to refresh Gradle project XXX The project is using an unsupported version of the Android Gradle plug in 0
  • 彻底删除Javascript

    我有一个网站 它有固定的菜单 标题等 并根据菜单点击通过 AJAX 加载主要内容区域 这些 页面 依赖于大量的 Javascript 和 CSS 每个页面都是单独的 由于用户可能会访问许多页面 因此我想卸载特定于页面的 JS 和 CSS C
  • 定义自定义系统类加载器

    我试图告诉 JVM 使用我的自定义类加载器作为默认类加载器 这是我用来选择班级的 VM 参数 Djava system class loader JarClassLoader 这是我得到的错误 Error occurred during i
  • Pandas 在多列上左外连接多个数据帧

    我是使用 DataFrame 的新手 我想知道如何对一系列表的多个列执行相当于左外连接的 SQL Example df1 Year Week Colour Val1 2014 A Red 50 2014 B Red 60 2014 B Bl
  • 使用 HTTP Post 将数据从 Excel 发送到服务器

    如何使用 HTTP Post 将数据从 Excel 发送到服务器 假设 URL 是 http testingHttpPost 我想从单元 A2 和 B2 发送数据 我该如何在 VBA 中完成这个工作 提前致谢 Sub XMLPost Dim
  • 如何在 Android Studio 中创建使用 Google Maps Api v2 的 Android 应用程序?

    我在 Android Studio 尝试使用 GoogleMap 创建应用程序时遇到了很多麻烦 我之前按照以下指南使用 Eclipse 作为 IDE 几乎 没有出现任何问题 https developers google com maps
  • JavaScript 异步生成器

    是否可以编写如下所示的异步生成器 function gen return async function yield await yield await yield await 所以人们可以像这样使用它 例如 for let val of a
  • BCryptHelper.CheckPassword 始终返回 false

    我正在使用 BCrypt 实现密码哈希 这应该非常简单易用 但是 当使用哈希密码检查密码时 BCryptHelper CheckPassword Password hashedDBPassword 这总是返回 false 这是我的哈希类 p
  • docker postgres pgadmin 本地连​​接

    我用 nginx php 和 postgres 创建了一个 ubuntu 镜像 我想连接当前图像中的 postgres 数据库pgadmin位于我的本地计算机上 我尝试使用 docker Inspector 尝试使用图像 ip 与本地 pg
  • 是否可以使用 Java 在 Intellij 运行时清除控制台选项卡?

    我试图在 Java 运行时清除 Intellij 中的控制台选项卡 有任何想法吗 这是我尝试过的 System out print 033 143 public static void clrscr Clears Screen in jav
  • 矢量迭代器与 const vector& 不兼容

    我正在编写图表程序 在这个程序中 我有一个方法 它必须返回源自顶点的弱组件内的顶点 我收到 错误 向量迭代器不兼容 struct graph std vector
  • 如何将流转换为生成器而不泄漏承诺的解析

    我有一个流 我需要将其转换为生成器 以便上传者可以使用通用生成器 这意味着转动 stream on data chunk gt to generator streamGenerator stream chunk await generato
  • 带两个提交按钮的 Laravel 表单

    我的更新表单需要两个提交按钮 当前设置 目前 当我点击提交时 它会保存我的数据并将我重定向到另一个页面 我可以在其中编辑多个图像 所以我的表单就像两步函数 我想添加什么 我想添加另一个按钮以便保存我的数据并将我返回到索引页面 跳过第二步 最
  • 我可以将自定义字体上传到大卡特尔吗

    我在名片上使用了某种字体 为了保持一致性 我想在我的网站上使用它们 我找不到上传字体的方法 并且在自定义菜单中找不到它 帮助将不胜感激 是的 您可以使用 CSS 中的 fontface 功能上传自定义字体 但您需要有权访问服务器来存储和上传
  • Unity - 检查播放器是否接地不起作用

    我希望玩家在落地时跳跃 private void OnTriggerStay Collider other if other gameObject layer 8 isGrounded true else isGrounded false