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

不使用Rigidbody实现2D克隆投射物移动失败问题求助

解决2D射击游戏投射物无法移动的问题

可能的问题及修复方案

1. 输入触发逻辑不匹配

你希望按Ctrl发射,但代码里用的是Input.GetButtonDown("Fire1"),默认Fire1绑定鼠标左键或Left Ctrl,但如果Input Manager设置被修改,就可能无法触发。直接改用明确的按键检测更可靠:

void Update()
{
    if (Input.GetKeyDown(KeyCode.LeftControl) || Input.GetKeyDown(KeyCode.RightControl))
    {  
        Instantiate(projectile, new Vector3(box.transform.position.x, box.transform.position.y + 1, box.transform.position.z), projectile.transform.rotation);
    }
}

2. 投射物的speed变量未正确赋值

检查投射物脚本里的speed变量:

  • 如果是public float speed;,确保在Inspector面板给预制体设置大于0的数值(比如5、10)。
  • 如果是private float speed;,要在脚本里初始化,比如private float speed = 5f;。

3. 投射物脚本未正确挂载

确认投射物预制体上已经挂载了移动脚本,并且脚本处于启用状态(脚本名称前的复选框为勾选状态)。

4. 2D场景下的坐标优化(可选)

在2D游戏中,用Vector2处理平面移动更贴合场景,修改投射物的移动代码:

void Update()
{
    this.transform.position += Vector2.right * speed * Time.deltaTime;
}

5. 检查层级遮挡问题

如果投射物实际在移动但被盒子挡住,调整投射物的Sorting Layer或Order in Layer,让它显示在盒子上方。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:42:37