You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用三元运算符实现Unity动画Float值的同一触发器开关控制

解决同一触发器切换动画Bool值的问题

你的代码问题出在SetBool是无返回值的void方法,没法把它的调用结果赋值给变量TiltingL,而且逻辑上也没必要这么写。要实现同一触发器切换动画状态,核心是先反转TiltL的布尔值,再把新状态传给动画控制器。

正确写法(两种方式)

  • 分步清晰版:
// 先反转状态
TiltL = !TiltL;
// 把新状态传给动画控制器
player.camera.camAnim.SetBool("TiltL", TiltL);
  • 用三元运算符简化版(本质是利用赋值表达式的返回值):
player.camera.camAnim.SetBool("TiltL", TiltL = TiltL ? false : true);
// 更简洁的等价写法
player.camera.camAnim.SetBool("TiltL", TiltL = !TiltL);

原代码的问题点

SetBool("TiltL", true)和SetBool("TiltL", false)都是执行动作的void方法,没有返回值,所以不能用它们作为三元运算符的结果去赋值给变量。你需要的是先切换状态变量,再把变量值传给SetBool。

内容的提问来源于stack exchange,提问作者JaysonJean Channel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 07:57:21