实例化后,Unity GameObjects不会呈现

时间:2016-04-14 13:25:31

标签: c# unity3d

我正在为我的一个大学模块制作一个简单的游戏。 当我用鼠标左键单击时,我需要一个拳击手套出现。

我遇到的问题是手套没有渲染,出现在层次结构中但没有显示在屏幕上,请参阅图片

图片1:

enter image description here

图片2:

enter image description here

我的代码如下:

public class script_CreateBoxingGlove : MonoBehaviour {
    public GameObject BoxingGlove;

    void Start () {

    }   

    void Update () {
        if (Input.GetMouseButtonDown (0)) {
            var position = Input.mousePosition;
            Instantiate (BoxingGlove, position, Quaternion.identity);
        }
    }
}

非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:1)

Input.mousePosition是鼠标的位置,而不是世界坐标(记录为here)。

因此,在将其用作位置之前,必须将其转换为世界坐标。实例化语句应该是这样的

Vector2 position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Instantiate (BoxingGlove, position, Quaternion.identity);

这使用标记为" MainCamera"的层次结构中的摄像头。转换。因此,要使此代码正常工作,您必须确保在您的层次结构中标记了类似的相机。