我最近被問及如何激光器是在星球大戰海溝運行完成,我會說我博客上的和其他幾個項目,所以這里的第幾。這是同樣的材料我介紹了於2009年團結,所以如果你看過視頻或在那里,沒有什么新的;)
在這里,我們將介紹做激光與Unity3D的,看起來不錯,是友好的表現為iPhone的一種方式。這並不意味着是詳??盡的方式,它只是意味着是一個激光*是*在統一的基本概述,以及如何我在為iPhone游戲性能方面管理它。所以這一說法,讓我們在跳轉至設置它的一些步驟。
創建LineRenderer
0。首先,創建場景中的一個空游戲物體。
1。然后,將一條線渲染器組件到你的游戲物體和定位游戲物體在激光炮的尖端會火從。為什么不直接使用粒子發射器?這是因為橢球粒子發射器有一個bug。即使你設定的橢球的大小設置為0在所有3個軸或0.0001,你會看到,它開始於在z軸上的隨機位置。團結承認錯誤。因此,要解決這個問題,因為我們不能使用發射粒子發射器從大炮的提示,我們必須首先顯示一條線渲染器。下面是你可以使用的LineRenderer作為激光螺栓一些典型設置:
一般LineRenderer用於激光的特性
下面是它應該是什么樣子的統一IDE時,你會得到你的游戲物體的地方:

游戲物體與放置在大炮LineRenderes
我創建了一個類叫LaserControl,當我想讓它顯示,這簡直是我做的:
公共變種isShowingLaser:布爾= FALSE;功能showLaser(){如果(isShowingLaser)回報; isShowingLaser = *** E,thisRenderer.enabled = *** E,產量WaitForSeconds(.05); resetLaser(); isShowingLaser = FALSE; }
正如你所看到的,它顯示了它的0.05毫秒然后通過調用復位激光剛剛做這個隱藏它:
功能resetLaser(){this.renderer.enabled = FALSE;}
3。所以,后來創建自己的類,它擴展MonoBehaviour,並將它附加到您添加的LineRenderer到游戲物體。
創建粒子發射器
現在,我們有這個非常好的LineRenderer激光,看起來不錯從大炮的尖端來,我們確實需要發出一個激光“飛”在它自己的路徑,對不對?因此,概念是:創建空的游戲物體到服務器作為您的發射器的3D點“跳”到時候你當它是從一個特定的大炮發射激光。由於粒子發射器計數為1戰平呼吁所有的粒子,這使得它特別漂亮的iPhone版本。更妙的是,它是非常輕量級的基於Web的游戲。
0。建立每炮有1個新的游戲物體。在這種情況下,我有4的X翼,所以我創建了4游戲物體一無所有的他們。然后給他們喜歡的TL,TR,BL,BR(左上,topRight,bottomLeft,bottomRight)的名字。
下面是在編輯器中高亮顯示發射器的地點之一的截圖:

空游戲物體作為位置發射以后
1。在場景中的LineRenderer的最后定位這些新的游戲物體。這將是發射器跳轉到只是被告知要放出(1)之前的位置。
2。現在,創建一個游戲對象。然后,選定GameOject,添加:1)橢球粒子發射器,2)粒子動畫,3)粒子渲染。
3。在橢球粒子發射器,設置局部速度> Z = -500。這是速度本質上。如果你想更快的激光,增加數量。確保“模擬世界空間”被選中,因為這將允許發射的粒子進行其在世界空間路徑,一旦他們被解雇了。將橢球為0在所有3個軸。最后,設置最小發射器范圍= 0.0001,以確保它從最近的位置射擊的游戲物體盡可能的中心。就像我說的,用的bug,它是在z軸有點亂,但你永遠不會看到在游戲中。離開粒子動畫原樣。
4。現在的魔法使激光另一位是粒子渲染。你要設置“拉伸Patricles”=拉伸,用7左右的長度比例。你可以用這個號碼打,因為這將決定如何好你看起來螺栓的長度。然后設置“最大粒徑”= .01。
這里有一個屏幕截圖的粒子發射器和渲染器的設置(動畫師是留下了它的默認值):

粒子發射器的設置
結論
在這一點上,你必須在你的場景中的物理對象來管理您的激光器。剩下的最后一步是編寫發射器移動到其中每個發射器4游戲物體的位置的,告訴LineRenderer顯示(),然后放出1顆粒類 - BAM!您現在有激光在Unity!