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

Unity中如何获取立方体掉落瞬间的z轴float值,用于重启界面得分统计

实现方案

核心逻辑:你需要在立方体 第一次 超出边界的瞬间记录z轴数值,之后不管物体怎么移动都用这个已存储的数值作为得分计算依据,不要实时读取立方体位置。

具体实现步骤

  • 首先给立方体挂载自定义控制脚本,可命名为CubeController
  • 脚本内声明三个变量:float类型的fallZValue用来存储掉落瞬间的z轴值,bool类型的hasFallen用来标记是否已经掉出过边界(避免重复赋值),public float boundaryZ用来设置你的游戏边界z轴阈值,根据实际场景调整数值即可
  • 在Update()方法中加入如下判断逻辑:
void Update()
{
    // 仅在未触发掉落时做边界检测
    if (!hasFallen)
    {
        if (transform.position.z < boundaryZ)
        {
            // 第一次触发边界条件的瞬间记录当前z轴数值
            fallZValue = transform.position.z;
            hasFallen = true;
            // 需要同步到得分管理模块的话,在这里调用对应传值方法即可
            ScoreManager.Instance.UpdateFinalScore(fallZValue);
        }
    }
}
  • 后续重启界面调取得分数据时,直接从全局得分管理类中取预存的fallZValue即可,完全不受立方体掉落后续移动的影响

拓展说明

  • 如果你的边界判定用的是碰撞体/触发器,把上述判断逻辑放到OnTriggerEnter或者OnCollisionEnter方法中即可,触发瞬间取位置值的逻辑完全一致
  • 要是边界判定是其他轴向,把判断条件里的z轴替换为对应轴向即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:09:03