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

Unity 2D点击生成物体不显示求助(层级面板存在克隆体)

问题解决:点击鼠标生成物体但场景不可见

核心问题是坐标转换方法用反了:

  • 你当前用的Camera.main.WorldToScreenPoint(Input.mousePosition)是把世界坐标转换成屏幕坐标,但实际需要的是将鼠标的屏幕坐标转换成世界坐标,应该用Camera.main.ScreenToWorldPoint(Input.mousePosition)。
  • 额外注意:2D项目中,鼠标位置的Z轴值为0,直接转换会导致生成位置不在相机可视范围内,需要给鼠标位置设置合适的Z值(等于相机到2D平面的距离,比如相机Z轴为-10时,就把鼠标位置的Z设为10)。

修正后的完整代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class gamecon : MonoBehaviour
{
    public GameObject square;
   
    public void Start()
    {
    }
        
    public void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            // 构造带正确Z值的鼠标位置
            Vector3 mousePos = Input.mousePosition;
            // 这里的Z值设为相机到2D物体所在平面的距离,根据你的相机实际Z轴调整
            mousePos.z = 10f; 
            Vector3 spawnpos = Camera.main.ScreenToWorldPoint(mousePos);
            
            GameObject g = Instantiate(square, (Vector2)spawnpos, Quaternion.identity);
        }
    }
}

另外可以检查两个额外点:

  • 确认square预制体的Sprite Renderer组件是启用状态,且Sprite不为空。
  • 确认生成的物体所在层级没有被相机的Culling Mask排除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 04:45:39