2013-10-07 1 views
2

lineRenderer 등의 일부 함수가 있지만 두 점 (Vector3 형식)을 사용하여 장면에서 직선을 만들고 싶습니다. 어떤 키를 사용하거나 마우스를 사용하여 선을 그 으려하지 않고 일부 이벤트를 트리거 할 때 또는 재생 버튼을 클릭 한 직후에 선을보고 싶습니다.2 개의 Vector3 점을 사용하여 선을 만드는 방법은 무엇입니까?

아무도 도와 줄 수 있습니까? 당신은 3D 공간에서 선을 원하는 경우

답변

0

좋아,이 같은 LineRenderer를 사용하여 알아 냈어요 : 당신이 당신의 장면에서 선을 표현하기 위해 GUI를 사용하고자하는 경우

0

하는 LineRenderer를 만들어보십시오, 여기에 샘플 : 여기 http://rockonflash.wordpress.com/2010/04/17/how-to-do-lasers-in-unity3d/

문서 : 차원 라인 (onGUI)에 대한 http://docs.unity3d.com/Documentation//Components/class-LineRenderer.html

는 시도 :

function OnGUI() { 
    GUIUtility.ScaleAroundPivot (Vector2(0.5, 0.5), Vector2(328.0, 328.0)); 
    GUI.Label (Rect (200, 200, 256, 256), textureToDisplay); 
} 

이 토론에 다른 옵션이 있습니다. http://forum.unity3d.com/threads/17066-How-to-draw-a-GUI-2D-quot-line-quot

+0

위의 답변의 모든

var line: GameObject=GameObject.Find("/LineRenderer"); fence = Instantiate(line,Pos,Rotation); fence.setPosition(0,p1); fence.setPosition(1,p2); 

감사합니다 당신 항상 [guiRect.x = Camera.main.WorldToScreenPoint (positionA) .x;를 사용할 수 있습니다. ] –

0

필요에 따라 작동하는 또 다른 옵션은 장면에서 기즈모 (gizmo)를 사용하는 것입니다. Gizmos는 별도의 매트릭스에 적용되므로 많은 즐거움을 줄 수 있습니다.

기본

:

void OnDrawGizmos() 
{ 
    Gizmos.color = new Color(1f, 0f, 0f, 0.5f); 
    Gizmos.DrawLine(positionA, positionB); 
} 

가 당신을 얻을 것이다. 요즘 내가 꽤 많이 사용하고있는 것은 기즈모 행렬을 대신 상쇄 한 다음 모든 것을 단위 공간에 렌더링하는 것입니다.

void OnDrawGizmos() 
{ 
     Matrix4x4 rotationMatrix = Matrix4x4.TRS(transform.position, transform.rotation, positionA - positionB); 
     Gizmos.matrix = rotationMatrix; 
     Gizmos.DrawWriteCube(Vector3.zero, Vector3.one); 
} 

두 가지 모두 재미 있지만 두 번째 인스턴스는 나중에 회전되거나 다른 방식으로 상쇄되어야하는 콘텐츠를 나타 내기 시작할 때 도움이됩니다.

+0

Gizmoz는 실제 출시 된 게임에서는 볼 수 없다고 생각합니다. –