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

使用脚本重定位后Sprite对象在Unity Game标签页消失问题求助

Unity Sprite触摸移动后消失问题修复

核心原因

你代码里使用ScreenToWorldPoint时仅传入了二维屏幕坐标,该方法要求输入参数携带Z轴深度信息,默认会沿用主相机自身的Z轴坐标作为深度值,最终转换出的世界坐标会和相机处于同一平面,超出相机近剪裁面范围,因此在Game视图和真机上无法渲染。而Scene视图使用自由操作视角,剪裁范围远大于Game相机,所以能正常看到Sprite。

修复方法

修改MoveToRandomePosition方法,手动指定转换后的Z轴数值和你原有Sprite的Z轴值保持一致即可,参考代码如下:

// Random Movement
void MoveToRandomePosition()
{
    var position = cam.ScreenToWorldPoint(new Vector2(Random.Range(0, Screen.width), Random.Range(0, Screen.height)));
    // 手动锁定Z轴为你原本Sprite使用的数值,2D项目通常默认用0即可
    position.z = 0f;
    transform.position = position;
}

可选检查项

  • 确认主相机的正交大小设置合理,避免随机生成的坐标超出相机视野范围
  • 若测试时使用鼠标模拟触摸,可额外添加鼠标点击触发逻辑方便本地测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:06:01