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
相关产品推荐
相关产品推荐

