c#使用Unity粒子實(shí)現(xiàn)炮塔發(fā)射系統(tǒng)
一、進(jìn)行粒子效果生成練習(xí)
1、生成一個(gè)空項(xiàng)目
Assets->Import Package->Custom Package->SceneShot.unitypackage
2、創(chuàng)建一個(gè)粒子系統(tǒng)
GameObject->Effects->Particle System
在場(chǎng)景中創(chuàng)建一個(gè)粒子系統(tǒng),并將其移動(dòng)到場(chǎng)景中的Turret炮塔對(duì)象的發(fā)射管前
3、更改粒子系統(tǒng)參數(shù)
Duration:3.32
Start Delay:1
Start Lifetime:1 - 10
Start Speed:Curve
Start Size:0.87
Start Rotation:180
Start Color:Gradent(#2EFE2E - #FFFFFF)
Simulation Space:Custom
Custom Simulation Space:Cube(Transform)
Max Particles:500
4、Emission屬性更改參數(shù)
Rate over Time
:0Rate over Distance:0
Brusts
:
Time | Count | Cycles | Interval | Probability |
---|---|---|---|---|
0 | 1482 | infinite | 0.01 | 1 |
5、Shape屬性更改參數(shù)
Shape:Sphere
Radius:3.52
Radius Thickness:0
6、發(fā)射管相關(guān)參數(shù)
Inspector->Position: 通過(guò)鼠標(biāo)移到兩個(gè)發(fā)射管之一
Inspector->Ratation: x=0, y=0, z=0
Inspector->Particle System->Start Lifetime:0.5,
Max Particles:100
Inspector->Particle System->Emission->Rate:500
Inspector->Particle System->Shape:Cone, Angle:0.5
Inspector->Particle System->Velocity over Lifetime->打勾,Z: 10
Inspector->Particle System->Color over Lifetime->打勾,選紅色
Inspector->Particle System->Renderer->打勾,
Render Mode:Stretched Billboard, Length Scale: 0.5,
7、發(fā)射管粒子對(duì)象
(1)Hierarchy-〉Particle System-〉Edit-〉Duplicate,復(fù)制另一個(gè)粒子對(duì)象,并拖到另一個(gè)發(fā)射管前
(2)運(yùn)行,察看粒子運(yùn)行效果
(3)再次單擊Play按鈕,結(jié)束游戲。
(4)按Ctrl+S,保存場(chǎng)景
(5)將另一個(gè)發(fā)射管前的粒子參數(shù)做一個(gè)更改,觀察二者的區(qū)別。如修改shape->shape,將值由Cone改為Sprte。
二、粒子系統(tǒng)參數(shù)總結(jié)
1、主面板Particle System
Duration
:粒子發(fā)射周期,意思就是在發(fā)射3.32秒以后進(jìn)入下一個(gè)粒子發(fā)射周期。如果沒有勾選looping的話,3.32秒之后粒子會(huì)停止發(fā)射。
Looping
:粒子按照周期循環(huán)發(fā)射。
Prewarm
:預(yù)熱系統(tǒng),比如說(shuō)我有一個(gè)空間大小的粒子系統(tǒng),但是粒子發(fā)射速度有限,我想在最開始的時(shí)候讓粒子充滿空間,此時(shí)就應(yīng)該勾選Prewarm。
StartDelay
:粒子延時(shí)發(fā)射,勾選后,延長(zhǎng)一段時(shí)間才開始發(fā)射。
StartLifeTime
:粒子從發(fā)生到消失的時(shí)間長(zhǎng)短。
StartSpeed
:粒子初始發(fā)生時(shí)候的速度。
3DStartSize
:這個(gè)屬性是當(dāng)你需要把粒子在某一個(gè)方向上擴(kuò)大的時(shí)候使用。
StartSize
:粒子初始的大小。
3DStartRotation
:需要在一個(gè)方向旋轉(zhuǎn)了子的時(shí)候可以使用。
StartRotation
:粒子初始旋轉(zhuǎn)。
RandomizeRotation
:隨機(jī)旋轉(zhuǎn)粒子方向,感覺在3D粒子的情況下,尤其是圓形的沒什么用。
StartColor
:粒子初始顏色,可以調(diào)整加上漸變色。
GravityModifier
:重力修正。
SimulationSpace
:a.Local,此時(shí)粒子會(huì)跟隨父級(jí)物體移動(dòng)。b.World,此時(shí)粒子不會(huì)跟隨父級(jí)移動(dòng)。c.Custom,粒子會(huì)跟著指定的物體移動(dòng)。
SimulationSpeed
:根據(jù)Update模擬的速度。
DeltaTime
:一版的DeltaTime都是1,如果需要用到Sacled是在游戲需要暫停的時(shí)候,根據(jù)TimeManager來(lái)定。如果選擇UnScale的話,就會(huì)忽略時(shí)間的影響。
ScalingMode
:Local:粒子系統(tǒng)的縮放和自己Transform的一樣會(huì)忽略父級(jí)的縮放。Hierarchy:粒子縮放跟隨父級(jí)。Shape:將粒子系統(tǒng)跟隨初始位置,但是不會(huì)影響粒子系統(tǒng)的大小。
MaxParticles
:粒子系統(tǒng)可以同時(shí)存在的最大粒子數(shù)量。如果粒子書數(shù)量超過(guò)最大值粒子系統(tǒng)會(huì)銷毀一部分粒子。
AutonRandomSeed
:隨機(jī)種子,如果勾選會(huì)生成完全不同不重復(fù)的粒子效果,如果勾選即為可重復(fù)。
2、Emission模塊
RateOverTime
:隨單位時(shí)間生成粒子的數(shù)量。
RateOverDistance
:隨著移動(dòng)距離產(chǎn)生的粒子數(shù)量。只有當(dāng)粒子系統(tǒng)移動(dòng)時(shí),才發(fā)射粒子。
- Bursts:
Time
:從第幾秒開始。
Min
:最小粒子數(shù)量。
Max
:最大的粒子數(shù)量,粒子的數(shù)量會(huì)在Min和Max之間隨機(jī)。
Cycles
:在一個(gè)周期中循環(huán)的次數(shù)。
Interval
:兩次兩次Cycles的間隔時(shí)間。
3、Renderer模塊
(1)RenderMode
:
- Billboard:粒子總是面對(duì)相機(jī)。
- StretchedBillboard:伸展板,可以根據(jù)相機(jī)、速度、長(zhǎng)度來(lái)調(diào)節(jié)粒子的縮放。
- HorizontalBillboard:粒子平面平行于Floor平面。
- VerticalBillboard:粒子平面平行于世界坐標(biāo)的Y軸,但是面向相機(jī)。
- Mesh:將粒子渲染到網(wǎng)格上去。
(2)TrailMaterial
:需要使用拖尾效果的時(shí)候,才附材質(zhì)。
(3)Material
:用于渲染粒子的材質(zhì)。
(4)SortMode
:
- ByDistance:根據(jù)粒子離相機(jī)的距離渲染。
- OldestInFront:先渲染出來(lái)的在最上層。
- YoungestInFront:后渲染出來(lái)的在最上層。
(5)SortingFudge
:排序容差,僅影響整個(gè)系統(tǒng)在場(chǎng)景中出現(xiàn)的位置。Sorting值越小,就越容易粒子系統(tǒng)在其它透明的
(6)GameObjects
上繪制的機(jī)會(huì)。
(7)Pivot
:修改粒子渲染的軸點(diǎn)。
(8)VisualizePivot
:可視化軸點(diǎn)。
Masking:
- CustomVertexStreams:在材質(zhì)的頂點(diǎn)著色器中配置哪些粒子屬性可用
- CastShadows:使用陰影。
ReceiveShadows:規(guī)定陰影是否可以投射到粒子上,只有Opaque(不透明)的材質(zhì)可以接受陰影。
以上就是c#使用Unity粒子實(shí)現(xiàn)炮塔發(fā)射系統(tǒng)的詳細(xì)內(nèi)容,更多關(guān)于Unity粒子系統(tǒng)炮塔發(fā)射的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解如何通過(guò)C#/VB.NET調(diào)整PDF文檔頁(yè)邊距
PDF邊距是頁(yè)面主要內(nèi)容區(qū)域和頁(yè)面邊緣之間的距離。與Word頁(yè)邊距不同,PDF文檔的頁(yè)邊距很難更改。本文將介紹如何在不更改頁(yè)面大小的情況下使用C#/VB.NET?代碼調(diào)整PDF文檔的頁(yè)邊距,需要的可以參考一下2023-04-04WPF+ASP.NET?SignalR實(shí)現(xiàn)簡(jiǎn)易在線聊天功能的示例代碼
這篇文章將以一個(gè)簡(jiǎn)單的聊天示例,簡(jiǎn)述如何通過(guò)WPF+ASP.NET?SignalR實(shí)現(xiàn)消息后臺(tái)通知,僅供學(xué)習(xí)分享使用,如有不足之處,還請(qǐng)指正2022-09-09Unity代碼實(shí)現(xiàn)序列幀動(dòng)畫播放器
這篇文章主要為大家詳細(xì)介紹了Unity代碼實(shí)現(xiàn)序列幀動(dòng)畫播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02基于c# 類、接口、結(jié)構(gòu)的聯(lián)系與區(qū)別詳解
本篇文章是對(duì)c#中類與接口以及結(jié)構(gòu)的聯(lián)系與區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06C#中ftp檢測(cè)目錄是否存在和創(chuàng)建文件夾的實(shí)現(xiàn)
本文主要介紹了C#中ftp檢測(cè)目錄是否存在和創(chuàng)建文件夾的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07