c# - Unity:如何创建陆地事件 c#
问题描述
每当我的角色降落在地面上时,我都想为它播放挤压动画。我有动画和地面检查。我想设置一个布尔值,当我从空中降落到地面时,它会保持一秒钟。当我在更新中使用调用方法时,它每帧都会改变 bool 的值。有人能帮我吗。代码看起来像这样:
void Update()
{
if (isGrounded)
{
justLanded = true;
Invoke("justLandedExit", 3f);
}
}
void justLandedExit()
{
justLanded = false;
}
解决方案
您可以拥有一个名为 wasLanded 的 bool,它可以像这样在固定更新中工作:
void Update()
{
isGrounded = DetectGround();
if(isGrounded && !wasGrounded)
{
PlayAnimation();
}
}
void LateUpdate()
{
wasGrounded = isGrounded;
}
推荐阅读
- r - data.frame() 参数中的错误意味着行数不同:1、0
- server - 如何知道哪个接口连接到特定机器?
- date - 如何在 Elixir 中使用 NaiveDateTime.local_now
- javascript - 如何实现类似节流阀的功能,但又不会浪费调用之间的时间
- java - 2 个非嵌套不同循环方法的大 O 表示法的时间复杂度
- azure - Azure AD B2C 中 Auth0 连接的等效项
- javascript - 找不到模块:安装 React Native Gesture Handler 时无法解析“@egjs/hammerjs”
- jquery - 使用 jQuery 动画对象。如何在 HTML 中使用淡入、动画和淡出三种技术
- azure - 应用程序 xxx 请求资源 xxx 上不存在的范围 Device.ReadWrite.All。联系供应商
- flutter - 如何返回10公里以下的距离颤振