为何我的unity 火球 粒子拖尾Particle System - trails拖尾这么难看?

Unity3D学习笔记——组件之Effects(效果/特效)——Particle System(粒子系统) - 有情怀的人
Effects: 效果/特效。
Particle System: 粒子系统。可用于创建烟雾、气流、火焰、涟漪等效果。
在Unity3D 3.5版本之后退出了新的shuriken粒子系统:
添加组件之后的效果:
其中的Open Editor按钮可以打开粒子编辑器,用于编辑复杂的粒子效果。
由于shuriken粒子系统是模块化的管理方式,所以可以动态的添加模块:
1.初始化模块:此模块是效果组件固有的模块。
Duration:粒子发射器,发射粒子的时间。单位为S(秒)。
Looping:是否开启。如果开启了循环,Duration值只要大于最小值0.10即可。
Prewarm:是否开启预热。只有在开启的循环的时候,预热才有效果,粒子量相似发射了一个粒子周期。
Start Delay:预热延迟。游戏开始多长时间后,预热开启。单位为S。
Start Lifetime:粒子从发射器出来,到消失的时间。单位为S。
Start Speed:粒子发射的速度。
Start Size:粒子大小。
Start Rotation:粒子的旋转角度。
Start Color:粒子的颜色。
Gravity Multiplier:设置重力对粒子的影响,数值越大影响越大。
Inherit Velocity:速度继承。当粒子系统是运动的时候,粒子的速度会继承运动的速度。但粒子坐标系必须在世界坐标系。
Simulation Space:坐标系是本身还是世界坐标系。
Play On Awake:在游戏开始播放,但不影响Start Delay效果。
Max Particles:粒子释放的最大数量,当达到最大数量时,停止释放粒子,当有粒子消失时继续释放。
2.Emission Module(粒子发射模块)用于粒子发射的速率。或是某个特定时间发射大量的粒子,用于模拟爆炸的效果。
每秒发射粒子数量。Bursts为某个时间点爆发出粒子的数量,这个时间必须在粒子Duration范围内。
每米发射粒子数量。粒子发射器所在的游戏对象,移动的时候每米发射的粒子,但粒子坐标系必须在世界坐标系。
3.Shape Model(形状控制模块):定义了粒子发射器的形状,位置及发射方向。
球形粒子发射器:
Radius:球形的半径。
Emit from Shell:是否从表面发射粒子,还是从内部发射。
Random Direction:是否启用随机速度。
半球发射器:
锥体发射器:
Angle:椎体,上边开口的大小。
Radius:半径的大小。
Length:椎体的高度。只有当Emit from 值为Volume Shell或是Volume时可用。
Emit From:粒子发射的位置。
——————Base:粒子发射源在椎体的内部的底面上,由底面开始发射。
——————Base Shell:粒子发射源在椎体底面的边缘,就是周长那一圈发射。
——————Volume:粒子发射源在椎体内部空间。
——————Volume Shell:粒子发射器在椎体整个表面上。没有底面。
立方体发射器:
Box X:立方体长度。
网格发射器:
Mesh:选择网格样式。
——————Vertex:粒子将从网格顶点发射。
——————Edge:粒子将从网格边缘(棱)发射。
——————Triangle:粒子将从网格的三角面发射。图形都是三角形组成的。
4.生命周期速度模块:控制每一个粒子的速度。
5.生命周期速度限制模块:
Separate Axis:是否启用限制每一个轴。
Speed:限制的速度。
Dampen:阻尼。阻尼为1的时候表示在生命周期结束的时候,速度降到限定的速度。
6.生命周期作用力模块:控制每一个粒子在生命周期内受到力的情况。
Randomize: 只有在 Random Between Two Constants或Random Between Two Curves时才可启用。
表示每一帧作用在粒子上的力是均匀随机产生的。
7.生命周期颜色模块:控制每一个粒子在生命周期内颜色的变化。
8:速度范围颜色变化控制模块:根据设置速度的范围和粒子的速度来改变粒子的颜色。
9:生命周期粒子大小模块:控制每个粒子在生命周期内,大小的变化。
10: 速度范围粒子大小变化控制模块:根据速度的变化改变粒子的大小。
11:生命周期每个粒子的旋转速度:每秒粒子旋转的角度。
12:根据速度变化改变粒子的旋转速度:旋转速度不为固定常数时。
13:外部作用力倍增数:调整风对粒子的影响情况。
14:碰撞模块:为粒子创建粒子碰撞效果,目前只支持平面碰撞。
平面碰撞只支持6个平面,点击+号可以添加现在有的平面或是新建立一个。
通过新建立了碰撞平面,会成为粒子物体的子物体。
Visualization:碰撞平面的显示方式。
——————Grid:
——————Solid:
Scale Plane:碰撞平面的大小。
Dampen:阻尼系数。粒子速度撞击损耗程度。0~1。
Bounce:反弹系数。0~2.系数越大,反弹角度越小。
Min kill Speed:最小销毁速度。当速度小于这个值的时候,粒子消失。
Particle Radius:粒子碰撞半径。最小值为0.01。
世界碰撞:
Collides With:碰撞层级。选择与那一层级碰撞。
Collision Quality:碰撞质量。
——————High: 每个粒子会每帧与场景做一次射线碰撞检测,需要注意的是,这样会增加CPU的负担,故在此情况下整个场景中的粒子数应当小于1000。
——————Medium: 粒子系统在每帧会受到一次Parude Raycast Budget全局设定的影晌。
——————Low: 与 中等效果相似 ,只 是粒子系统每4帧才受一次Parude Raycast Budget全局参数的影晌。
—————— Voxel Size:碰撞缓存中的体素的尺寸,仅当Collision Quality为Medium和Low时可用。
15:子粒子发射模块:在粒子出生,碰撞,消灭时可以调用其他粒子。
16:序列帧动画纹理模块:
Tiles:x水平分割的份数,y垂直分割的份数。
Animation:Whole Sheet-整个页面即X,Y一起移动。
Frame over Time:生命周期内,动画变幻的速率。
Cycles:生命周期内变化几次动画。
Animation:Single Row-从左到右行滚动。
Random Row:随机行。
Row:选择某一行,开始滚动,小于Tiles中的Y。
17:粒子的渲染模块:
Render Mode:渲染模式。
——————Billboard:面板渲染。
——————Vertical Billboard垂直渲染,此模式当面对摄像机时,粒子将与zX平面对齐
——————Horizontal Billboard :水平模式,此模式下粒子将沿Y轴对齐。
——————Stretched Billboard:拉伸渲染。
————C ameraScale:相机缩放。摄像机的速度对于粒子伸缩影晌的程度。speed Scale:通过比较粒子的速度决定粒子的长度。 LengthScale:通过比较粒子的宽度决定粒子的长度。
——————Mesh:模式。
18:属性:
Resimulate:实时渲染。在改变参数的时候,场景中的粒子效果实时变化。
Wireframe:选择时,将显示粒子的片面网格。
Trail Renderer
Line Renderer
Lens Flare
Legacy Particles
yongyuan.jiang
浏览: 370415 次
来自: 深圳
放在自己工程上不报错,已放在服务器上就报错
能运行?我报错啊、
yue_ch 写道getTotalPhysicalMemory ...
getTotalPhysicalMemorySize()get ...
private RealSubject realSubject ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
关注:1428
当前位置: &
本站内容来自互联网,仅用于学习,禁止商用,请支持正版。
版权归作者所有,如果侵犯您的权益请联系我们,联系本站删除。
查看: 1792|回复: 27
Better Trails v1.5 武器拖尾特效插件 免金币下载
5936/1000排名<font color="#FF昨日变化主题帖子积分
熟悉之中, 积分 936, 距离下一级还需 64 积分
熟悉之中, 积分 936, 距离下一级还需 64 积分
蛮牛币8930
在线时间316 小时
Better Trails v1.5
.unitypackage
↓↓↓↓↓↓插件仅用于学习,禁止商用,为了维护您的个人权益,请支持正版↓↓↓↓↓↓
Better Trails 1.5 下载链接: 密码:zqe9
本帖子中包含更多资源
才可以下载或查看,没有帐号?
每日推荐:
85677/10000排名96昨日变化主题帖子积分
常驻蛮牛, 积分 5677, 距离下一级还需 4323 积分
常驻蛮牛, 积分 5677, 距离下一级还需 4323 积分
蛮牛币6385
在线时间1404 小时
很棒的套件啊,感謝,還免費的! 佛心啊~
每日推荐:
73368/5000排名<font color="#FF昨日变化主题帖子积分
日久生情, 积分 3368, 距离下一级还需 1632 积分
日久生情, 积分 3368, 距离下一级还需 1632 积分
蛮牛币3368
在线时间849 小时
多谢分享啊。。。。。
[]: daguang 乐于助人,奖励 2
每日推荐:
73970/5000排名<font color="#FF昨日变化3主题帖子积分
日久生情, 积分 3970, 距离下一级还需 1030 积分
日久生情, 积分 3970, 距离下一级还需 1030 积分
蛮牛币6500
在线时间742 小时
不要币的,支持支持!!!!!!!
每日推荐:
73501/5000排名<font color="#FF昨日变化1主题帖子积分
日久生情, 积分 3501, 距离下一级还需 1499 积分
日久生情, 积分 3501, 距离下一级还需 1499 积分
蛮牛币1717
在线时间756 小时
感谢楼主分享
[]: Lnoe 发帖时在路边捡到 2
蛮牛币,偷偷放进了口袋.
每日推荐:
72026/5000排名<font color="#FF昨日变化主题帖子积分
日久生情, 积分 2026, 距离下一级还需 2974 积分
日久生情, 积分 2026, 距离下一级还需 2974 积分
蛮牛币8087
在线时间345 小时
谢谢楼主分享
每日推荐:
72209/5000排名<font color="#FF昨日变化1主题帖子积分
日久生情, 积分 2209, 距离下一级还需 2791 积分
日久生情, 积分 2209, 距离下一级还需 2791 积分
蛮牛币5361
在线时间954 小时
在网吧通宵,花了 2
每日推荐:
71961/5000排名<font color="#FF昨日变化1主题帖子积分
日久生情, 积分 1961, 距离下一级还需 3039 积分
日久生情, 积分 1961, 距离下一级还需 3039 积分
蛮牛币1398
在线时间243 小时
谢谢楼主分享~
每日推荐:
4311/500排名<font color="#FF昨日变化2主题帖子积分
四处流浪, 积分 311, 距离下一级还需 189 积分
四处流浪, 积分 311, 距离下一级还需 189 积分
在线时间67 小时
不错啊这个。下了。
每日推荐:
5675/1000排名<font color="#FF昨日变化1主题帖子积分
熟悉之中, 积分 675, 距离下一级还需 325 积分
熟悉之中, 积分 675, 距离下一级还需 325 积分
在线时间95 小时
多谢分享啊。。。。。
每日推荐:
71552/5000排名<font color="#FF昨日变化1主题帖子积分
日久生情, 积分 1552, 距离下一级还需 3448 积分
日久生情, 积分 1552, 距离下一级还需 3448 积分
蛮牛币8338
在线时间607 小时
谢谢楼主分享
每日推荐:
147/50排名<font color="#FF昨日变化8主题帖子积分
注册看看, 积分 47, 距离下一级还需 3 积分
注册看看, 积分 47, 距离下一级还需 3 积分
在线时间12 小时
不要币的,支持支持!!!!!!!
每日推荐:
71757/5000排名<font color="#FF昨日变化主题帖子积分
日久生情, 积分 1757, 距离下一级还需 3243 积分
日久生情, 积分 1757, 距离下一级还需 3243 积分
蛮牛币5514
在线时间558 小时
好人一生平安
每日推荐:
72619/5000排名<font color="#FF昨日变化主题帖子积分
日久生情, 积分 2619, 距离下一级还需 2381 积分
日久生情, 积分 2619, 距离下一级还需 2381 积分
在线时间708 小时
一个袋子砸在了 kyx11180 头上,kyx11180 赚了 1 00蛮牛币.
每日推荐:
3216/300排名<font color="#FF昨日变化2主题帖子积分
偶尔光临, 积分 216, 距离下一级还需 84 积分
偶尔光临, 积分 216, 距离下一级还需 84 积分
在线时间98 小时
楼主好人,谢谢分享
每日推荐:程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
Unity3D研究院之Time.timeScale、游戏暂停(七十四)
Unity3D研究院之Time.timeScale、游戏暂停(七十四)
围观128353次
编辑日期: 字体:
项目里面一直在用Time.timeScale来做游戏的 1倍 2倍整体加速,今天我仔细看了一下Time.timeScale才发现之前我理解错了一些东西。
Time.timeScale可以控制Update 和LateUpdate 的执行速度,举个例子说明一下。
Time.timeScale=1时,Update、LateUpdate、FixedUpdate 都按正常的时间来执行。
Time.timeScale=2时,Update和 LateUpdate的执行速度是之前的2倍,而FixedUpdate还是按正常时间来执行。
Sorry上面红色这部分确实是写错了,感谢网友在留言处给我的指正,谢谢。
正确的应该是timeScale不会影响Update和LateUpdate的执行速度。因为FixedUpdate是根据时间来的,所以timeScale只会影响FixedUpdate的速度。 再次抱歉。。 谢谢热心网友给我的指正。。 因为我的项目里在处理战斗部分的时候 大量使用 iTween 所以
3 倍加速 或者暂停 的功能直接修改timeScale 。
Time.timeScale也误导了我很久,为什么这么说呢?我原先一直以为Time.timeScale = 0 的话所有的Update都不执行了。今天测试了一下发现原来不是这样的,无论Time.timeScale 等于多说Update和LateUpdate都会去执行,不信你可以自己做个实验看看。
Time.timeScale还会影响Time.time的时间,比如Time.timeScale = 2的话,那么Time.time的增长速度也会变成2倍速度。如果你想取到游戏的实际时间,那么使用Time.timeSinceLevelLoad就可以,前提是必须在Awake()方法以后再取,如果在Awake()方法里面取Time.realtimeSinceStartup会取出一个错误的值,在Start方法里面取的话就正常了。
总之一句话Time.timeScale影响的是Unity的游戏时间缩放比例。Unity里面所有跟时间有关系的东西都是根据timeScale来演算的。仔细想想现在的手游就是个 动画 和 粒子技能特效 还有UI位移特效,所以改他们的速度直接用Time.timeScale就可以完成。还有一个重要的东西就是人物移动 或者 技能移动的速度了, 根据时间的公式,时间 = 路程\速度 ,比如角色从起点跑到中间的一个预期时间, 或者一个技能的火球从攻击到打中目标的预期时间。 凡是处理时间的东东全用Time.time 这样就可以完美让Time.timeScale控制你的游戏了。
下面说说两个大家伙比较关心的话题。
1.游戏暂停
设置 Time.timeScale = 0;即可让游戏暂停。 其实我们暂停的主要是 人物动画,还有技能特效,比如一个火球打了一半。UI方面往往我们不希望暂停,比如暂停界面 有一些UI位移动画或者帧动画, 或者最起码要有个“取消暂停的按钮” 吧。 总不能游戏暂停了我点击按钮 按钮的点击动画 或者特效也暂停了吧。
所有的动画都是基于时间来的,因为Time.timeScale = 0了,所以Time.time也就不会在变化了。换句话来说如果游戏暂停以后想在暂停界面上继续播放一些不受Time.timeScale 影响的动画,那么我们就需要用到Time.realtimeSinceStartup
如果你的项目NGUI的版本还算比较新的话,你会发现在UITweener.cs处理UI动画的基类里面已经增加了一个属性叫public bool ignoreTimeScale = 它就是控制控制NGUI 的UI动画是否受到ignoreTimeScale影响。如下图所示,你可以看看NGUI在Update里面的实现,它也是根据时间来判断的。忽略timescale的话就用真实时间,不忽略的话就用Time.time 和Time.deltaTime。
2.如何让游戏中某个游戏对象不受Time.timeScale影响。
动画不受timeScale影响:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
static IEnumerator Play( Animation animation, string clipName, bool useTimeScale,System.Action onComplete ) {
if(!useTimeScale)
AnimationState _currState = animation[clipName];
bool isPlaying = true;
float _startTime = 0F;
float _progressTime = 0F;
float _timeAtLastFrame = 0F;
float _timeAtCurrentFrame = 0F;
float deltaTime = 0F;
animation.Play(clipName);
_timeAtLastFrame = Time.realtimeSinceStartup;
while (isPlaying)
_timeAtCurrentFrame = Time.realtimeSinceStartup;
deltaTime = _timeAtCurrentFrame - _timeAtLastFrame;
_timeAtLastFrame = _timeAtCurrentFrame;
_progressTime += deltaTime;
_currState.normalizedTime = _progressTime / _currState.length;
animation.Sample ();
if (_progressTime &= _currState.length)
if(_currState.wrapMode != WrapMode.Loop)
isPlaying = false;
_progressTime = 0.0f;
yield return new WaitForEndOfFrame();
yield return null;
if(onComplete != null)
onComplete();
animation.Play(clipName);
粒子特效不受timescale影响
12345678910111213141516171819202122232425262728293031
using UnityEngine;using System.Collections; public class ParticaleAnimator : MonoBehaviour {&& private void Awake() {
particle = GetComponent&ParticleSystem&(); }
// Use this for initialization void Start () {
lastTime = Time.realtimeSinceStartup; }
// Update is called once per frame void Update ()
float deltaTime = Time.realtimeSinceStartup - (float)lastTime; &&&&&&&& particle.Simulate(deltaTime, true, false); //last must be false!! &&&&&&&& lastTime = Time.realtimeSinceStartup; }
private double lastTime; private ParticleSystem particle; }
经过我的测试发现timeScale = 0 时, 播放放粒子特效,效率上有很大问题非常的卡。
举个例子啊,刀塔传奇大家都玩过吧?某个角色放技能的时候,其他所有人物动作全部暂停,并且打出去的技能也暂停。等着角色的技能全部放完,别人才恢复正常。 我觉得向做这类游戏,最好就不要 利用timeScale了,不然写起来太蛋疼了。 不过刀塔传奇也没有 1 倍 2倍
3倍速 的功能吧,呵呵。
3.timeScale变化时的声音。
当声音播放的同时去修改timescale的数值你会发现声音播放的很奇怪。如下代码所示,你可以封装一个方法,把IgnoreTimeScale作为参数传进去, 如果忽略timescale的话那么速度就应该是1否则就应该是Time.timeScale。
//添加一个声音组件AudioSource source = gameObject.AddComponent&AudioSource&();//设置播放声音的速度。 默认速度是1 ,那如果我们加速了,那就应该是 Time.timeScalesource.pitch =IgnoreTimeScale?1:Time.timeScale;//播放声音source.Play();
此时如果修改了Time.timeScale的数值的话,那么正在播放中的声音会非常奇怪。所以当每次播放音频的时候我们需要记录一下这个音频的状态,它是否需要忽略timeScale当前的数值。
//创建一个音频的字典private static Dictionary&AudioSource,bool&soundList = new Dictionary&AudioSource, bool&();&//播放声音source.Play();&//把音频对象加入字典中,value 就是是否忽略timescalesoundList.Add(source,IgnoreTimeScale);
每当timeScale变化的时候调用一下下面这个方法。就是遍历一下当前保存的所有音频对象,从新设置一下他们的播放频率。
12345678910
&&&&public static void TimeScaleChanged()&&&&{
foreach (AudioSource source in soundList.Keys)&&
if(source != null)
source.pitch = soundList[source]?1:Time.timeScale;
如果你有更好的建议,欢迎在下面给我留言,谢谢。
本文固定链接:
转载请注明:
雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!}

我要回帖

更多关于 unity 粒子拖尾特效 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信