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

Unity新手求助:玩家触碰食物后增大体积及调整相机的实现方法

玩家吃食物体积不增大+顶视角相机适配解决方案

1. 修复玩家体积缩放逻辑

你当前的代码仅累加了growth变量,但未将其应用到玩家的Scale属性上。直接修改Transform的Scale即可实现体积增长,建议等比例缩放避免模型变形:

// 可在Inspector面板调整的参数
public float baseScale = 1f;
public float growthPerFood = 0.1f;
private float growthCount = 0;

private void OnTriggerEnter(Collider collision)
{
    if (collision.tag == "Food Particle")
    {
        growthCount += 1;
        Debug.Log(growthCount);
        collision.gameObject.SetActive(false);

        // 计算等比例缩放后的数值
        float newScale = baseScale + (growthCount * growthPerFood);
        // 应用到玩家对象上
        transform.localScale = new Vector3(newScale, newScale, newScale);
    }
}
  • 若玩家使用独立碰撞体(如SphereCollider),无需额外调整——碰撞体会自动跟随Transform的Scale缩放,除非你手动锁定了碰撞体的Radius/Size参数。

2. 适配顶视角相机高度

玩家体积增大后,需要同步调整相机高度以完整显示玩家,两种实现方式可选:

方式一:触发食物时直接调整

// 在Inspector面板拖拽赋值你的顶视角相机
public Camera topDownCamera;
public float baseCameraHeight = 5f;
public float cameraHeightPerFood = 0.2f;

private void OnTriggerEnter(Collider collision)
{
    if (collision.tag == "Food Particle")
    {
        // 玩家缩放代码...

        // 更新相机高度
        Vector3 newCameraPos = topDownCamera.transform.position;
        newCameraPos.y = baseCameraHeight + (growthCount * cameraHeightPerFood);
        topDownCamera.transform.position = newCameraPos;
    }
}

方式二:实时平滑适配

如果希望相机高度随玩家大小动态平滑变化,在Update方法中添加逻辑:

private void Update()
{
    // 根据玩家当前缩放比例计算目标高度(系数可自行调整)
    float targetHeight = baseCameraHeight * transform.localScale.x;
    // 平滑过渡到目标高度
    Vector3 newPos = topDownCamera.transform.position;
    newPos.y = Mathf.Lerp(newPos.y, targetHeight, Time.deltaTime * 2f);
    topDownCamera.transform.position = newPos;
}

3. 常见问题排查

  • 确认玩家对象的Tag不是Food Particle,避免误触发逻辑
  • 检查Collider设置:玩家和食物中至少有一个勾选了Is Trigger,且双方都挂载了Rigidbody(玩家的Rigidbody可勾选Kinematic,如果不需要物理模拟)
  • 若缩放后模型变形,检查模型导入设置的Scale Factor是否为1,或右键Transform组件选择Reset清除非均匀缩放历史

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:30:35