【Unity 3D】学习笔记四十二:粒子特效

粒子特效

粒子特效的原理是将若干粒子无规则的组合在一起,来模拟火焰,爆炸,水滴,雾气等效果。要使用粒子特效首先要创建,在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);

	}
}

运行:

【Unity 3D】学习笔记四十二:粒子特效,布布扣,bubuko.com

时间: 2024-10-11 12:51:23

【Unity 3D】学习笔记四十二:粒子特效的相关文章

JAVA学习笔记(四十二)-生产者消费者模型

wait().notify() /* * wait().notify() * * 1.两个方法都只能在synchronized代码块中执行,因为要对持有锁的线程操作,只有同步中才有锁 * 2.两个方法在操作同步中的线程时,必须要标识所操作线程持有的对象锁 * 3.等待和唤醒必须是同一个对象锁 */ public class Test05 { public static void main(String[] args) { MyThread3 mt=new MyThread3(); Thread

【Unity 3D】学习笔记三十二:游戏元素——游戏光源

游戏光源 在3D游戏中,光源是一个非常具有特色的游戏组件.用来提升游戏画面质感的.如果没有加入光源,游戏场景可能就会显得很昏暗.在unity中提供了三种不同的光源类型:点光源,聚光灯,平行光. 点光源 顾名思义,点光源是从一个点向周围散发出光的光源,就像电灯一样.创建点光源在hierarchy视图中点击create--point light: 创建完以后,点击点光源对象,在右侧inspector视图中可以看到点光源的所有信息: type:光源的类型.有point(点光源),directional

【Unity 3D】学习笔记四十五:游戏实例——击垮围墙

用这个游戏实例来总结之前我们复习的所有关于物理引擎的知识.在游戏中,发送一个球形的炮弹来击垮前面的墙.给炮弹与墙都添加了刚体组件,给炮弹绑定了粒子系统,并且在炮弹的粒子动画中添加了5组不同的颜色,显示移动轨迹. using UnityEngine; using System.Collections; public class Script_06_14 : MonoBehaviour { //炮弹对象 private GameObject obj; //准心贴图 public Texture te

【Unity 3D】学习笔记四十六:输入与控制——键盘事件

在游戏中,玩家控制主角移动,按键攻击,选择行走.都需要在程序中监听玩家的输入.unity为开发者提供了input库,来支持键盘事件,鼠标事件以及触摸事件.本文主要回顾键盘事件,以后会逐文复习鼠标以及触摸事件. 键盘事件 一般的PC键盘有104个不同的按键,在程序中通过监听这些按键事件,从而进一步执行逻辑操作.如:射击游戏中,W表示前进,S表示后退,A表示左移,D表示右移. 按下事件 在脚本中,用input.GetKeyDown( )方法将按键值作为参数,监听此按键是否被按下.按下返回true,否

【Unity 3D】学习笔记四十四:路径渲染

路径渲染 路径渲染属于特效渲染组件,用于跟随运动中的游戏对象.首先在hierarchy视图中,创建一个球体.然后在菜单导航栏中选择component--effects--trial renderer即可将路径渲染组件添加至该球体对象中. cast shadows:显示阴影效果. receive shadows:接受阴影效果. materials:材质. size:渲染的材质数量,可添加或删除. element 0:渲染材质文件. use light probes:是否使用光线探头. light

《Javascript权威指南》学习笔记之十二:数组、多维数组和符合数组(哈希映射)

Array(数组)是JavaScript中较为复杂的数据类型,同Java.C#.VB等程序语言的数组相比,Javascript数组中的元素不必为相同的数据类型,可以在数组每个元素上混合使用数字.日期.字符串.Object,甚至添加一个嵌套数组. 一.创建数组 1.var arr1 = new Array(); /var  arr2 = new Array(length); /var arr3 = new Array(element1,element2...); var arr4 = [eleme

SaltStack 学习笔记 - 第十二篇: SaltStack Web 界面

SaltStack 有自身的用python开发的web界面halite,好处是基于python,可以跟salt的api无缝配合,确定就比较明显,需要个性化对web界面进行定制的会比较麻烦,如果喜欢体验该界面的可以参考下面的文章  http://rfyiamcool.blog.51cto.com/1030776/1275443/ 我是运用另一个python+php来进行web开发,具体需要的工具有在我的另一篇文章里面介绍过,这里再重新进行整个开发介绍 首先介绍php 跟python通信的工具 pp

马哥学习笔记三十二——计算机及操作系统原理

缓存方式: 直接映射 N路关联 缓存策略: write through:通写 write back:回写 进程类别: 交互式进程(IO密集型) 批处理进程(CPU密集型) 实时进程(Real-time) CPU: 时间片长,优先级低IO:时间片短,优先级高 Linux优先级:priority 实时优先级: 1-99,数字越小,优先级越低 静态优先级:100-139,数据越小,优先级越高 实时优先级比静态优先级高 nice值:调整静态优先级   -20,19:100,139   0:120 ps

汇编入门学习笔记 (十二)—— int指令、port

疯狂的暑假学习之  汇编入门学习笔记 (十二)--  int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引发一个n号中断. 运行过程相当于: (1)取中断类型吗n. (2)标志寄存器入栈:设置IF=0,TF=0. (3)CS.IP入栈 (4)(IP)=(n*4),(CS)=(n*4+2) 样例1:编写.安装中断7ch.实现求一个word型数据的平方,用ax存放这个数据. assume cs:code code s