Unity3d 动态添加的LineRenderer不';不能在游戏视图中显示

Unity3d 动态添加的LineRenderer不';不能在游戏视图中显示,unity3d,Unity3d,我动态添加了一些线条,它们完美地出现在场景视图中,但不在游戏视图中。z索引已正确设置,我仅为行使用不同的层。我试着改变相机剪裁平面的值,剔除遮罩是一切 void Update() { 矢量鼠标2; if(Input.GetMouseButtonDown(0)) { Vector3 closeToPoint=IsClickCloseToPoint(); 如果(闭合点z!=-10000f) { GameObject newObj=实例化(lineGenerator); startMousePos=

我动态添加了一些线条,它们完美地出现在场景视图中,但不在游戏视图中。z索引已正确设置,我仅为行使用不同的层。我试着改变相机剪裁平面的值,剔除遮罩是一切

void Update()
{
矢量鼠标2;
if(Input.GetMouseButtonDown(0))
{
Vector3 closeToPoint=IsClickCloseToPoint();
如果(闭合点z!=-10000f)
{
GameObject newObj=实例化(lineGenerator);
startMousePos=闭合点;
newLine=newObj.GetComponent();
newLine.transform.SetParent(parentObject.transform);
newLine.positionCount=2;
}
}
if(输入。GetMouseButton(0))
{
if(换行符!=null)
{
mousePos=Input.mousePosition;
换行设置位置(0,新向量3(startMousePos.x,startMousePos.y,-5f));
newLine.SetPosition(1,新向量3(mousePos.x,mousePos.y,-5f));
距离=(鼠标点-startMousePos).大小;
distanceText.text=distance.ToString(“F2”);
}
}
if(Input.GetMouseButtonUp(0))
{
if(换行符!=null)
{
换行符=null;
}
}
}

我认为您需要在lineRenderer上添加材质。您在场景视图中看到的是“非材质”纹理,它不会出现在游戏视图中:) 我希望这有助于:)
Raph

您正在画布上绘制所有内容。但是LineRenderer不是UI组件,因此不会显示在画布上


如果要使用LineRenderer nontheless,请签入Unity Answers。其基本思想是将画布设置为屏幕空间,并增加线条的宽度。别忘了分配摄像机。

问题在于场景视图和游戏视图中的坐标不同,或者至少你必须设计游戏视图,而不是场景视图。我的台词出现在游戏视图中,但它们不在画布上。我使用Camera.main.ScreenToWorldPoint(Vektor3)转换每个vektor

我看不到您的LinRenderer的Inspector设置,但我怀疑您有

着手

线面向变换组件的Z轴

如果你的正交相机在Z方向上看的话,这些东西就完全看不见了

尝试将
对齐方式更改为



还请注意,字面上的没有任何内容在屏幕空间覆盖画布上呈现。这是需要在一个帧中渲染的一个示例。

感谢您的回复!实际上,我以前没有听过这个建议,但不幸的是,这不是问题所在。在本例中,LineRenderer是一种资产,因此它不必是画布上的实际对象。我只是实例化了它。那么它是第三方UI组件吗?@KurdiBoti实例化一个对象会将它添加到场景中,我可以在你的屏幕截图的层次结构中看到它。它不会出现,因为它是一个世界空间对象,并且您的游戏使用屏幕空间画布。你可以试着用它来代替。