2016-11-11 1 views
3

Linerenderer가있는 두 UI GameObjects 사이에 선을 그리려합니다. 장면 모드에서는 모든 것이 잘 작동하지만 게임 모드에서는 선이 보이지 않습니다. 개체의 Z 위치를 변경하려고했으나 선이 여전히 보이지 않습니다. 누구든지 나를 도울 수 있습니까? 사전Unity3d Linerenderer가 보이지 않습니다.

private LineRenderer lineRenderer; 
private float counter; 
private float dist; 
private Vector3 aPos; 
private Vector3 bPos; 
public Transform origin; 
public Transform destination; 
public float lineDrawSpeed = 6f; 

// Use this for initialization 
void Start() 
{ 
    lineRenderer = GetComponent<LineRenderer>(); 
    aPos = new Vector3(origin.position.x, origin.position.y, origin.position.z); // Using these to move the lines back 
    bPos = new Vector3(destination.position.x, destination.position.y, destination.position.z); 

    lineRenderer.SetPosition(0, aPos); 
    lineRenderer.SetWidth(3f, 3f); 

    dist = Vector3.Distance(origin.position, destination.position); 
} 

// Update is called once per frame 
void Update() 
{ 

    if (counter < dist) 
    { 
     counter += .1f/lineDrawSpeed; 

     float x = Mathf.Lerp(0, dist, counter); 

     Vector3 pointA = aPos; 
     Vector3 pointB = bPos; 

     Vector3 pointAloneLine = x * Vector3.Normalize(pointB - pointA) + pointA; 

     lineRenderer.SetPosition(1, pointAloneLine); 
    } 

} 
+0

멍청한 질문이지만 배경색은 무엇입니까? 한 번 lineRenderer를 같은 색상으로 만들었 는데도 보이지 않았다고 생각했습니다. – code11

+0

배경이 녹색이고 선이 흰색 인 경우 –

답변

0

난 당신이 게시 한 코드에서 몇 가지 논리 오류가 내려다 보이는거야하지 않는 한 감사, 나는 문제가 물질 것 같아요. 라인

일반 디버깅 도움이 렌더러 : 문제가 해결되지 않으면, 아마도 당신의 번호를 지정해야

lineRenderer.sortingOrder = 1; 
lineRenderer.material = new Material (Shader.Find ("Sprites/Default")); 
lineRenderer.material.color = Color.red; 

:

라인 렌더러의 색상/자료를 설정하십시오 수동으로 정점?

mineLaser.SetVertexCount (2); 

마지막으로, 둘 다 작동하지 않으면 논리 오류 일 수 있습니다. lineRenderer의 위치가 미리 정의 된 값이되도록 변환을 설정하고 표시되는지 확인하십시오. 이 특정 질문에 대한

:

아, 그래서 그 캔버스에. UI 캔버스를 의미한다고 가정 할 때 linerenderer는이 상황에서 사용하는 잘못된 도구라고 생각합니다. this question을 확인하십시오. 답변의

하나는 거기에 제안 :

단지 길이와 라인

+0

불행히도 게임 모드에서는 표시되지 않는 선을 사용했지만 시도했습니다. Canvas에 선을 그려려고하기 때문일 수 있습니까? –

+0

@AlexRED 캔버스가 실제로 문제 일 수 있습니다. 업데이트 된 답변. – code11

0

이을의 폭을 설정할 수있는 당신이 원하는 색상과 사용의 높이 및 너비 가득 패널을 사용하여 "화면 공간 - 오버레이"캔버스 모드에서는 불가능합니다. 그 모드에서 UI 오버레이는 Scene의 모든 요소 (UI 요소가 아닌 LineRenderer 포함) 위에 그립니다.

Canvas에 "Screen Space - Camera"옵션을 사용하고 Line Renderer에 "Use World Space"옵션을 사용해보십시오.

관련 문제