【Unity 3D】學習筆記四十二:粒子特效

來源:互聯網
上載者:User

標籤:unity   粒子特效   粒子執行個體   

粒子特效


粒子特效的原理是將若干粒子無規則的組合在一起,來類比火焰,爆炸,水滴,霧氣等效果。要使用粒子特效首先要建立,在hierarchy視圖中點擊create——particle system即可



粒子發射器

粒子發射器是用於設定粒子的發射屬性,比如說粒子的大小,數量和速度等。在建立完粒子物件後,在右側inspector視圖中便可以看到所有的粒子屬性:


emit:是否是使用粒子發射器。

min size:粒子最小尺寸。

max size:粒子最大尺寸。

min energy:粒子的最小生命週期,單位秒,表示N秒後粒子消失。

max energy:粒子的最大生命週期,單位秒,表示N秒後粒子消失。

min emission:粒子每秒產生的最小數量。

max emission:粒子每秒產生的最大數量。

world velocity:粒子在3D世界中各軸的速度。

local velocity:粒子自身座標系中各個軸的移動速度。

rnd velocity:各個軸粒子的隨機速度。

emitter velocity scale:粒子繼承發射的速度。

tangent velocity:粒子發射切線的速度。

angular velocity:粒子發射的角速度。

rnd angular velocity:粒子的隨機角速度。

rnd rotation:粒子是否隨機旋轉。

simulate in worldspace:是否在全局座標中類比粒子。

one shot:選擇後,粒子只發送一次,否則粒子將連續發送。

ellipsoid:粒子產生的所有軸的位置。

min emitter range:設定粒子之間的間隙。


粒子動畫

粒子動畫用於設定粒子渲染中的動畫效果,首先簡單的介紹粒子動畫中各個屬性:


does animate color:是否開啟粒子動畫的顏色,顏色將根據自身的生命週期改變。

color animation[ n ]:設定動畫漸層數組中的顏色,這個數組長5,也就是說粒子的顏色發生改變時,迴圈這5個顏色。

world rotation axis:粒子圍繞全局座標軸旋轉。

local rotation axis:粒子圍繞著本地空間軸旋轉。

size grow:粒子成長的生命週期。

rnd force:粒子運行時,每經過一幀就在粒子上加一個隨機的力。

force:粒子運行是,每經過一幀就在粒子上加一個固定的力。

damping:阻力,用於減慢粒子。

autodestruct:自動銷毀粒子動畫對象。



粒子渲染器

粒子渲染器主要用於粒子的渲染,如:渲染模式,粒子的縮放,粒子的尺寸等


cast shadows:是否投射粒子的陰影。

receive shadows:是否接受粒子的陰影。

materials:粒子顯示的材質。

camera velocity scale:相機縮放的速度。

stretch particles:粒子的顯示狀態,如橫向或縱向。

length scale:粒子縮放的長度。

velocity scale:粒子縮放的速度。

max particle size:粒子最大的尺寸。

uv animation:設定粒子動畫水平方向上的數量與垂直方向上的數量以及播放貼圖動畫。



粒子效果執行個體

unity為粒子提供了很不錯的標準包,在project視圖右鍵彈出import package——particles,匯入粒子標準包,裡面有很多現成的粒子材質。


using UnityEngine;using System.Collections;public class Script_06_11 : MonoBehaviour {//粒子物件GameObject particle = null;//粒子X軸方向速度float velocity_x = 0.0f;//粒子Y軸方向速度float velocity_y = 0.0f;//粒子Z軸方向速度float velocity_z = 0.0f;void Start () {//獲得粒子物件particle = GameObject.Find("ParticleSystem");}void OnGUI(){//拖動設定粒子的最大尺寸GUILayout.Label("粒子最大尺寸");particle.particleEmitter.maxSize = GUILayout.HorizontalSlider (particle.particleEmitter.maxSize, 0.0f, 10.0f,GUILayout.Width(150));//拖動設定粒子的最大消失時間GUILayout.Label("粒子消失時間");particle.particleEmitter.maxEnergy = GUILayout.HorizontalSlider (particle.particleEmitter.maxEnergy, 0.0f, 10.0f,GUILayout.Width(150));//拖動設定粒子的最大產生數量GUILayout.Label("粒子的最大產生數量");particle.particleEmitter.maxEmission = GUILayout.HorizontalSlider (particle.particleEmitter.maxEmission, 0.0f, 100.0f,GUILayout.Width(150));//拖動設定粒子X軸的移動速度GUILayout.Label("粒子x軸的移動速度");velocity_x= GUILayout.HorizontalSlider (velocity_x, 0.0f, 10.0f,GUILayout.Width(150));particle.particleEmitter.worldVelocity = new Vector3(velocity_x, particle.particleEmitter.worldVelocity.y, particle.particleEmitter.worldVelocity.z);//拖動設定粒子Y軸的移動速度GUILayout.Label("粒子y軸的移動速度");velocity_y= GUILayout.HorizontalSlider (velocity_y, 0.0f, 10.0f,GUILayout.Width(150));particle.particleEmitter.worldVelocity = new Vector3( particle.particleEmitter.worldVelocity.x,velocity_y, particle.particleEmitter.worldVelocity.z);//拖動設定粒子Z軸的移動速度GUILayout.Label("粒子z軸的移動速度");velocity_z= GUILayout.HorizontalSlider (velocity_z, 0.0f, 10.0f,GUILayout.Width(150));particle.particleEmitter.worldVelocity = new Vector3( particle.particleEmitter.worldVelocity.x, particle.particleEmitter.worldVelocity.y,velocity_z);}}
運行:




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.