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

Unity肉鸽游戏中,如何让传送门平移玩家时忽略其旋转?

Unity肉鸽游戏传送门移动问题解决办法

问题根源:你使用的Transform.Translate方法默认基于玩家自身局部坐标系计算位移,一旦玩家有旋转角度,上下移动就会跟着玩家朝向偏移,而非世界坐标系的固定上下方向。

直接修改代码,给Translate添加Space.World参数,强制使用世界坐标系进行位移:

public bool cantransfer = true;
private void OnCollisionEnter2D(Collision2D collision)
{
    if (cantransfer && collision.gameObject.name == "DoorDown")
    {
        Camera.main.transform.Translate(0, -14, 0, Space.World);
        transform.Translate(0, -3.5f, 0, Space.World);
    }
}

额外优化建议:

  • 合并嵌套的条件判断,让代码更简洁易读。
  • 尽量别用gameObject.name判断碰撞对象,改用Tag标签(比如给门设置专属标签)或给门编写专门的Door组件,后续新增传送门时更灵活,也能避免因名称拼写错误导致的bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 01:40:57