Unity5.X- 粒子系统,粒子沿着一定的轨迹运动的研究

最近项目有个需求就是模拟油管里的油流动的效果,想想让建模的直接做一个动画是最简单!不过,自己也想用粒子系统来实现一下!初期得到不错的效果!现在的需求就是这里有一根油管,当然不是一根直直的油管,会拐弯,油管里会有油在流动!

找了很多资料也没有找到关于如何让粒子沿着路径运动的,那么自己开始动手吧!

原理很简单,我们都知道粒子系统里有一个Velocity over LifeTime 这样一个属性,里面是可以选择使用Curve来设置粒子生命周期内的速度属性!速度决定粒子的运动轨迹!

1.一开始我们设置粒子的Start Speed 为0,避免对我们设置的速度造成影响;

2.开始调整Velocity over LifeTime的Curve,使粒子沿着我们要求的路径进行运动;

好了,就这两点!不过我相信即使原理简单,但是要手动去调Curve也会让人崩溃,而且还要调X,Y,Z三个方向上的速度曲线!

一开始我是手动调的,明白了调整Curve可以让粒子沿着路径运动是可以做到的,那么下面就开始动手写一个小扩展,用代码帮忙调Curve了,毕竟程序员就是要用程序来简化实际中的很多工作!

首先先写一个运行时动态设置例子系统的Velocity over LifeTime Curve的Monobehaviour吧!

第一步:在场景中放置N个路径点;

第二步:写脚本,脚本大致就是通过场景中的路径点的得到位置,注意路径点不能重叠,否则得不到想要的效果,然后认定其中一个为起点,然后计算方向和距离,并得到每前后两个点的距离和总的路径长度,通过前后两个点之间的距离与总的距离的比得到该点在Curve上X轴的位置,当然第一个点从0开始!然后生成AnimationCurve,有一点需要说明的就是KeyFrame设置里面的inTangent和outTangent,这里设置成正无穷大,就表示是90度角,那么我们得到的Curve会是一根折现,而且Curve所有拐角的地方都是90度角,因此我们得到粒子沿着路径运动实际上是沿着一根折线路径,这也是我这里沿着路径运动的粒子比较受限制的地方!不过你可以再调整好沿着折线运动之后,再去调整Curve的inTangent和outTangent就可以达到沿着曲线运动了,哈哈,当然这个运行时设置Curve的脚本就没有这个功能了,不过后面我写到的一个小扩展就可以做到!先上代码:

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;



public class PathParticle : MonoBehaviour
{
    public ParticleSystem Particle;
    public Transform[] wayPoints;

    void Start()
    {
        if (wayPoints.Length > 1)
        {
            Queue<FrameDate> frames;
            float distance = ParticleUtils.CalculateDirection(new List<Transform>(wayPoints), out frames);
            Particle.transform.position = wayPoints[0].transform.position;
            AnimationCurve curve_X;
            AnimationCurve curve_Y;
            AnimationCurve curve_Z;
            float lifeTime = distance / Particle.startLifetime;
            ParticleUtils.MakeCurve(frames, distance, lifeTime, out curve_X, out curve_Y, out curve_Z);
            var vel = Particle.velocityOverLifetime;
            vel.enabled = true;
            vel.space = ParticleSystemSimulationSpace.Local;
            vel.x = new ParticleSystem.MinMaxCurve(lifeTime, curve_X);
            vel.y = new ParticleSystem.MinMaxCurve(lifeTime, curve_Y);
            vel.z = new ParticleSystem.MinMaxCurve(lifeTime, curve_Z);
        }
    }
}


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

下面是一个主要的工具类:

  • 16
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Unity彩带粒子特效是一种在Unity游戏引擎中创建和呈现的特效。彩带特效是一种通过使用粒子系统来模拟彩带的外观和行为的方法。 在Unity中,彩带粒子特效可以通过使用粒子系统组件来实现。这个组件允许开发者设置粒子的外观、运动和行为。通过调整粒子的速度、方向、颜色和大小等属性,可以模拟出彩带的效果。 首先,在Unity的场景中创建一个粒子系统对象,并将其配置为彩带特效。可以调整粒子发射器的位置、形状和发射角度,来控制彩带的起点和方向。然后,设置粒子的生命周期和速度,以确定彩带的长度和运动速度。 接下来,可以为粒子设置多个颜色,并在粒子的生命周期内进行渐变,以实现彩虹般的效果。还可以添加纹理或精灵,来给彩带增加更多的细节和纹理感。 此外,还可以通过添加附加的力来影响粒子运动方式,如重力或空气阻力。这样可以使彩带的移动更加真实和动态。 最后,可以通过调整摄像机和光照的设置,来增强彩带粒子特效的视觉效果。可以使用镜头效果、光照和阴影等技术,让彩带在游戏中更加生动和引人注目。 总而言之,Unity彩带粒子特效是通过使用粒子系统组件来模拟彩带的外观和行为的一种方法。通过调整粒子的属性和添加附加效果,可以创建出各种各样的彩带特效,从而增强游戏的视觉效果。 ### 回答2: Unity彩带粒子特效是一种在Unity游戏引擎中使用的粒子特效功能。彩带粒子特效可以用于增加游戏场景的视觉效果,使得游戏变得更加生动和有趣。 使用Unity创建彩带粒子特效可以通过以下步骤完成。首先,需要创建一个粒子系统,选择合适的粒子材质和纹理。接着,配置粒子系统的属性,如粒子的初始位置、速度、大小和生命周期等。根据需求还可以调整粒子的颜色、透明度和旋转等属性。 在彩带粒子特效中,一般会使用多个粒子系统来模拟彩带的效果。每个粒子系统可以使用不同的纹理和属性设置,以创建出各种颜色和形状的彩带效果。通过调整粒子系统之间的位置、速度和生命周期等参数可以实现更加丰富多样的彩带特效。 在制作彩带粒子特效时,还可以结合使用其他Unity特效功能,如弹簧材质、碰撞效果和引力等。这样可以增加特效的真实感和动态性,使得彩带在游戏场景中的展示更加逼真。 总之,Unity彩带粒子特效是一种简单而又强大的特效功能,可以帮助开发者增加游戏的视觉效果和吸引力。通过灵活运用粒子系统的属性设置和结合其他特效功能,可以创造出独特、华丽的彩带特效,提升游戏品质和玩家体验。 ### 回答3: Unity彩带粒子特效是一种通过使用Unity引擎的粒子系统实现的特效效果。粒子系统是一种创建和控制大量小粒子的工具,可用于模拟火花、烟雾、爆炸等效果。 彩带粒子特效是通过使用带状的粒子纹理来创建流动的彩带效果。首先,我们需要创建一个带状的纹理,可以是彩虹色、金属质感等等。然后,我们将该纹理应用到粒子系统的材质上,并设置颗粒的速度、大小、寿命等属性。我们可以通过调整这些属性来控制彩带的长度、密度、流动速度等。 此外,我们还可以添加其他特效使彩带粒子更加生动。例如,我们可以通过添加重力属性来模拟彩带下落的效果,或者通过添加旋转属性使彩带围绕某个中心点旋转。 在游戏开发中,彩带粒子特效可以用在许多场景中。例如,在庆祝或比赛胜利时,可以使用彩带粒子特效来增加节日氛围;在魔法或超能力角色的技能释放时,可以使用彩带粒子特效来增强视觉效果。 总之,Unity彩带粒子特效是通过使用Unity引擎的粒子系统技术来创建流动的彩带效果。通过调整粒子的属性和添加其他特效,可以定制出各种各样的彩带粒子效果,为游戏或其他项目增添更加生动的视觉效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值