2013-10-07 23 views
2

我知道存在一些像lineRenderer等功能,但我想在場景中使用兩個點(以Vector3形式)創建一條直線。我不想通過使用任何按鍵或使用鼠標來畫線,我只想在觸發某個事件時或在點擊播放按鈕之後看到場景中的線條。如何在統一中使用兩個Vector3點創建一條線?

任何人都可以幫助我嗎?

回答

0

好吧,我想通了,通過使用LineRenderer這樣的:

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

感謝您的回答上述

0

如果你想在3D空間中的線,嘗試創建一個LineRenderer,樣品在這裏:這裏http://rockonflash.wordpress.com/2010/04/17/how-to-do-lasers-in-unity3d/

文檔: http://docs.unity3d.com/Documentation//Components/class-LineRenderer.html

對於2D線(onGUI),嘗試:

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

的如果你想使用GUI來代表在場景中你行總是可以使用[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); 
} 

請問你那裏。然而,我最近使用的東西不過是抵消了Gizmo矩陣,然後將所有內容渲染到單位空間中。

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

兩個很有趣,但二審後可以幫助你,當你開始嘗試表示旋轉或者需要以其他方式彌補內容上。

+0

我認爲Gizmoz在實際發佈的遊戲中不可見。 –

相關問題