unity3d特效如何不循环_unity3d 特效怎么循环播放 - CSDN
  • 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。  在Flash中,如果重复执行一个任务...


     在Flash中,如果重复执行一个任务可以使用Update函数,不过如果需要定时重复执行某一任务的话该函数就不方便了,但是可以使用yield和waitforsecond这两个函数来实现。以下为关键部分代码。

    void Start () {
    StartCoroutine("DoSomething");
    }
    IEnumerator DoSomething () {
    while (true) {
    //需要重复执行的代码
    print("DoSomething Loop");
    //间隔时间为10秒
    yield WaitForSeconds (10);
    }
    }

    使用自带的Invoke方法也可以实现重复执行某方法。
    InvokeRepeating(“SendMsg”, 2 , 10);

    该方法的意思是指:2 秒后调用 SendMsg() 方法,并且之后每隔 10 秒调用一次 SendMsg () 方法。
    但是使用Invoke不支持含有参数的方法。


    展开全文
  • unity3D爆炸火燃烧特效

    2020-07-29 14:21:48
    unity3D爆炸火燃烧特效,在游戏开发中,加入特效,使开发的游戏画面更加逼真,栩栩如生,在制作火灾、燃烧特效时,使用我的特效,是您的画面更优美。
  • Unity3D学习笔记:粒子特效参数含义 转载 https://blog.csdn.net/asd237241291/article/details/8433534 粒子特效 粒子系统检视面板 初始化模块: 持续时间(Duration):粒子系统发射粒子的持续时间 循环(Looping...

    Unity3D学习笔记:粒子特效参数含义

    转载 https://blog.csdn.net/asd237241291/article/details/8433534

    粒子特效

    粒子系统检视面板

    初始化模块:
    持续时间(Duration):粒子系统发射粒子的持续时间
    循环(Looping):粒子系统是否循环
    预热(Prewarm):当looping开启时,才能启动预热(Prewarm),游戏开始时粒子已经发射了一个周期。
    初始延迟(Start Delay):粒子系统发射粒子之前的延迟。注意在prewarm(预热)启用下不能使用此项。
    初始生命(Start Lifetime)以秒为单位,粒子存活数量。
    初始速度(Start Speed):粒子发射时的速度。
    初始大小(Start Size):粒子发射时的大小。
    初始旋转(Start Rotation):粒子发射时的旋转值。
    初始颜色(Start Color):粒子发射时的颜色。
    重力修改器(Gravity Modifier):粒子在发射时受到的重力影响。
    继承速度(Inherit Velocity):---控制粒子速率的因素将继承自粒子系统的移动(对于移动中的粒子系统)。
    模拟空间(Simulation Space):粒子系统在自身坐标系还是世界坐标系。
    唤醒时播放(Play On Awake):如果启用粒子系统当在创建时,自动开始播放。
    最大粒子数(Max Particles):粒子发射的最大数量
    
    发射模块(Emission):

    控制粒子的发射时的速率,在粒子系统存续期间可以在某个时间生成大堆粒子(模拟爆炸)。

    速率(Rate):每秒的粒子发射的数量 (小箭头可选择“每秒(Time)”或“每米(Distance)”)。
    突发(Bursts):在粒子系统生存期间增加爆发
    爆炸的时间 | 数量(Time | Particles):指定时间(在生存期内,以秒(Time)为单位时),将发射指定数量的粒子。
    									 用"+"或"-"调节爆	 ···发数量。
    
    发射器形状模块(Shape):

    发射器形状内部随机位置生成,并能提供初始的力,该力的方向将延表面法线或随机方向发射。

    球体【Sphere】
    半径(Radius):球体的半径。
    从外壳发射(Emit from Shell):从球体外壳发射。
    随机方向(Random Direction):随机方向或是沿表面法线。
    半球【Hemisphere】
    半径(Radius):半椭圆的半径。
    从外壳发射(Emit from Shell):从半椭圆外壳发射。
    随机方向(Random Direction):随机方向或是沿表面法线。
    锥体【Cone】喇叭~
    角度(Angle):圆锥的角度(喇叭口)。如果是0,粒子将延一个方向发射(直筒)。
    半径(Radius ):发射口半径。
    立方体【Box】
    Box X:X轴的缩放值
    Box Y:Y轴的缩放值
    Box Z:Z轴的缩放值
    随机方向(Random Direction):粒子将延一个随机方向发射(取消:延Z轴发射)。
    网格【Mesh】
    类型(Type):粒子将从顶点(Vertex)、边(Edge)、或三角面(Triangle)发射。
    网格(Mesh):选择一个面作为发射面。
    随机方向(Random Direction):粒子发射将随机方向或是沿表面法线。
    
    存活时间的速度模块(Velocity Over Lifetime):

    粒子的直接动画路径。(通常用于复杂物理粒子,不过是简单的视觉行为和物理世界的小互动,如与飘荡的烟雾和气温降低。)

    XYZ:使用常量曲线或在曲线中随机去控制粒子的运动。
    Space:局部/世界 速度值在局部还是世界坐标系。
    
    存活期间的限制速度模块(Limit Velocity Over Lifetime):

    基本上被用于模拟的拖动。如果有了确定的阀值,将抑制或固定速率。可以通过坐标轴或向量调整。
    拖动指用于Taril, 一般有拖尾的时候会让粒子随着移动变小,然后形成渐变的拖尾效果。

    分离轴(Separate Axis):用于每个坐标轴控制。
    ----速度(Speed):用常量或曲线指定来限制所有方向轴的速度。(未选中)
    ----XYZ:用不同的轴分别控制。见最大最小曲线。(选中)
    阻尼(Dampen):(0-1)的值确定多少过度的速度将被减弱。(值为0.5,将以50%的速率降低速度)
    
    存活期间的受力模块(Force Over Lifetime):
    XYZ:使用常量或随机曲线来控制作用于粒子上面的力。
    Space:Local自己的坐标系,World世界的坐标系。
    随机(Randomize):每帧作用在粒子上面的力都是随机的。(两组xyz时可选择,随机范围是这两组xyz之间的差值。)
    
    存活时间的颜色模块(Color Over Lifetime):

    控制每个粒子存活期间的颜色(与初始颜色叠加)。粒子存活时间越短变化越快。
    两种颜色随机比例互相叠加。
    目前我用到的情况是呼吸灯的情况

    颜色速度模块(Color By Speed):
    使粒子颜色根据其速度动画化。为颜色在1个特定范围内重新指定速度。
    
    颜色(Color):用于指定的颜色。使用渐变色来指定各种颜色。
    颜色缩放(Color Scale):使用颜色缩放可以方便的调节纯色和渐变色。
    速度范围(Speed Range):min和max值用来定义颜色速度范围。
    
    存活时间的大小模块(Size Over Lifetime):
    大小(Size):控制每个粒子在其存活期间内的大小。曲线,随机双曲线或随机范围数值。(配合Color over lifetime 实现呼吸灯效果)
    
    存活时间的大小速度模块(Size By Speed):
    大小(Size):大小用于指定速度。用曲线表示各种大小。
    速度范围(Speed Range):min和max值用来定义大小速度范围。
    
    存活期间的旋转速度模块(Rotation Over Lifetime):

    以度为单位指定值。

    旋转速度(Rotational Speed):控制每个粒子在其存活期间内的旋转速度。使用常量,曲线,2曲线随机。
    旋转速度模块(Rotation By Speed):
    旋转速度(Rotational Speed):用来重新测量粒子的速度。使用曲线表示各种速度。
    速度范围(Speed Range):为min和max值用来定义旋转速度范围。
    
    碰撞模块(Collision Module)

    为粒子系统建立碰撞。现在只有平面碰撞被支持,这个将很有效率的做简单探测。

    平面(Planes):Planes被定义为指定引用。可以动画化。如果多个面被使用,Y轴作为平面的法线。
    阻尼(Dampen):0-1 在碰撞后变慢。
    反弹(Bounce):0-1 当粒子碰撞后的反弹力度。
    生命减弱(Lifetime Loss):(0-1) 每次碰撞胜铭减弱的比例。0,碰撞后粒子正常死亡。1,碰撞后粒子立即死亡。
    可视化(Visualization):可视化平面:网格还是实体
    -----网格(Grid):在场景渲染为辅助线框。
    ----实体(Solid):在场景渲染为平面。
    缩放平面(Scale Plane):重新缩放平面
    子粒子发射模块(Sub Emitter):
    
    可以生成其他粒子系统,用下列的粒子事件:出生、死亡、碰撞。
    
    出生(Birth):在每个粒子出生的时候生成其他粒子系统
    死亡(Death):在每个粒子死亡的时候生成其他粒子系统
    碰撞(Collision):在每个粒子碰撞的时候生成其他粒子系统。重要的 碰撞需要建立碰撞模块。见碰撞模块
    
    纹理层动画模块(Texture Sheet Animation):

    在粒子存活期间动画化UV坐标。动画每帧可以显示在表格或1个表格的每行,这样将动画分开。每帧可以用曲线动画或者在2个曲线取随机。速度被定义为"循环"、
    注意:用于动画的纹理是在渲染器模块中材质找到使用的。
    目前用到的是碎石效果。利用多个Sprite对象同时生成,实现碎石效果。

    模型(Mode):选取Grid或者Sprite。Grid是利用整个Animation Sheet文件,
    		     选取Sprites则可以添加多个Sprites并随机生成实现粒子特效
    平铺(Tiles):定义纹理的平铺
    动画(Animation):指定动画类型:整个表格或是单行。
    ----整个表(Whole Sheet):为UV动画使用整个表格。
    -------时间帧(Frame over Time):在整个表格上控制UV动画。使用常量,曲线,2曲线随机。
    ----单行(Single Row):为UV动画使用表格单独一行。
    -------随机行(Random Row):如果选择第一行随机,不选择得指定行号(第一行是0)
    -------时间帧(Frame over Time):在1个特定行控制每个粒子的UV动画。使用常量,曲线,2曲线随机。
    周期(Cycles):指定动画速度。
    
    渲染器模块(Renderer):

    渲染模块显示粒子系统渲染组件的属性。注意:即使一个游戏物体有渲染粒子系统组件,当此模块被删除/添加后,它的属性也只能显示在这里。这个实际上是粒子系统渲染组件的添加和删除。还可以用来调整粒子系统的坐标位置,比如世界坐标,本地坐标。

    渲染模式(Render Mode):选择下列粒子渲染模式之一
    ----广告牌(Billboard):让粒子永远面对摄像机。
    ----拉伸广告牌(Stretched Billboard):粒子将通过下面属性伸缩。
    	摄像机缩放(Camera Scale):决定摄像机的速度对粒子伸缩的影响程度。
    	速度缩放(Speed Scale):通过比较速度来决定粒子的长度。
    	长度缩放(Length Scale):通过比较宽度来决定粒子的长度。
    ----水平广告牌(Horizontal Billboard):让粒子延Y轴对齐,面朝Y轴方向。
    ----垂直广告牌(Vertical Billboard):当面对摄像机时,粒子延XZ轴对齐。
    ----网格(Mesh):粒子被渲染时使用mesh而不是quad。
    -------网格(Mesh):渲染粒子所用的网格引用。
    材质(Material):材质。
    排序模式(Sort Mode):绘画顺序可通过具体,生成早优先和生成晚优先。
    排序校正(Sorting Fudge):使用这个将影响绘画顺序。粒子系统带有更低sorting fudge值,更有可能被最后绘制,
    						从而显示在透明物体和其他粒子系统的前面 。
    投射阴影(Cast Shadows):粒子能否投影?这是由材质决定的。
    接受阴影(Receive Shadows):粒子能否接受阴影?这是由材质决定的。
    最大粒子大小(Max Particle Size):设置最大粒子大小,相对于视窗大小。有效值为0-1。
    

    粒子系统检视面板
    管理复杂的粒子效果,untiy提供了粒子编辑器,用户从监事面板的粒子组件面板可以点击"Open Editor"按钮。

    展开全文
  • 利用Unity3d制作一个特效,与这个网站效果类似: 首先,在Unuty3d下面建立了一个object,命名为Particle。 然后建立一个脚本:并挂在刚刚建立的gameobject下面 然后然后依次点击Components->Effects->Particle ...

    利用Unity3d制作一个特效,与这个网站效果类似:


    首先,在Unuty3d下面建立了一个object,命名为Particle。

    然后建立一个脚本:并挂在刚刚建立的gameobject下面

    然后然后依次点击Components->Effects->Particle System添加Particle System组件。

    设置变量:


    粒子的初速度设为0,并把emission Rate设为0,让粒子有不同的大小,因此设置粒子的初始大小在0.05-0.15之间随机产生


    新建C#脚本:

    using UnityEngine;
    using System.Collections;
    
    public class Particle : MonoBehaviour
    {
    
        public new ParticleSystem particleSystem;
        private ParticleSystem.Particle[] particlesArray;
        public int particleNumber = 400;
        public float radius = 8.0f;
    
        void Start()
        {
            particlesArray = new ParticleSystem.Particle[particleNumber];//将储存粒子的数组初始化
            particleSystem.maxParticles = particleNumber;//设置粒子发射的最大数量
    
            particleSystem.Emit(particleNumber);//将刚刚初始化的particleNumber个粒子发射出去
            particleSystem.GetParticles(particlesArray);
            for (int i = 0; i < particleNumber; i++) {//为每个粒子设置其位置
                float angle = Random.Range(0.0f, 360.0f);//位置为0 - 360度的随机一个角度
                particlesArray[i].position = new Vector3(radius * Mathf.Cos(angle), radius * Mathf.Sin(angle), 0.0f);//为每个粒子坐标赋值
            }
            particleSystem.SetParticles(particlesArray, particlesArray.Length);//设置该粒子系统的粒子。前面数组的长度是设置粒子的数量
        }
    
    }
    效果如图:



    下面将粒子分散到环形区域,为每个粒子的半径设置一个随机的值,修改for循环:

    float r = Random.Range(radius, 12.0f);
    float angle = Random.Range(0.0f, 360.0f);//位置为0 - 360度的随机一个角度
    particlesArray[i].position = new Vector3(r * Mathf.Cos(angle), r * Mathf.Sin(angle), 0.0f);//为每个粒子坐标赋值
    
    效果如下


    接下来让粒子能旋转运动起来:

    using UnityEngine;
    using System.Collections;
    
    public class Particle : MonoBehaviour
    {
    
        public new ParticleSystem particleSystem;
        private ParticleSystem.Particle[] particlesArray;
        public int particleNumber = 400;
        public float radius = 8.0f;
        public float[] particleAngle;
        public float[] particleRadius;
    
        public float speed = 0.01f;
        void Start()
        {
            particlesArray = new ParticleSystem.Particle[particleNumber];//将储存粒子的数组初始化
            particleSystem.maxParticles = particleNumber;//设置粒子发射的最大数量
            particleAngle = new float[particleNumber];
            particleRadius = new float[particleNumber];
    
            particleSystem.Emit(particleNumber);//将刚刚初始化的particleNumber个粒子发射出去
            particleSystem.GetParticles(particlesArray);
            for (int i = 0; i < particleNumber; i++) {//为每个粒子设置其位置
                float r = Random.Range(radius, 12.0f);
                float angle = Random.Range(0.0f, 360.0f);//位置为0 - 360度的随机一个角度
                float rad = angle / 180 * Mathf.PI;//角度变换成弧度
                particleAngle[i] = angle;
                particleRadius[i] = r;
                particlesArray[i].position = new Vector3(r * Mathf.Cos(rad), r * Mathf.Sin(rad), 0.0f);//为每个粒子坐标赋值
            }
            particleSystem.SetParticles(particlesArray, particlesArray.Length);//设置该粒子系统的粒子。前面数组的长度是设置粒子的数量
        }
        void Update()
        {
            for (int i = 0; i < particleNumber; i++) {
                //设置速度为五个不同的档次
                if (i%2 == 0) {
                    particleAngle[i] += speed*(i%5+1);
                } else {
                    particleAngle[i] -= speed*(i%5+1);
                }
                if (particleAngle[i] > 360)
                    particleAngle[i] -= 360;
                if (particleAngle[i] < 0)
                    particleAngle[i] += 360;
                float rad = particleAngle[i] / 180 * Mathf.PI;
                particlesArray[i].position = new Vector3(particleRadius[i] * Mathf.Cos(rad), particleRadius[i] * Mathf.Sin(rad), 0f);
            }
            particleSystem.SetParticles(particlesArray, particleNumber);
            Debug.Log("111");
        }
    
    }
    



    后面调整粒子的分布,让粒子的分布变成中心多,边缘少的格局:

    添加下列代码

    //最小半径随机扩大
    float rate1 = Random.Range(1.0f, midR / radius);
                //最大半径随机缩小
    float rate2 = Random.Range(midR / maxR, 1.0f);
    float r = Random.Range(radius * rate1, maxR * rate2);


    效果:


    下面我们设置一下,让粒子在一定的半径范围内随机游动

    public float free = 0.05f;//设置游动的范围
     particleRadius[i] += Mathf.PingPong(time, free) - free / 2.0f;
                time += Time.deltaTime; 

    效果



    完整代码:

    using UnityEngine;
    using System.Collections;
    
    
    
    
    public class Particle : MonoBehaviour
    {
    
        public ParticleSystem particleSystem;
        private ParticleSystem.Particle[] particlesArray;
        public int particleNumber = 4000;
        public float radius = 4.0f;
        public float[] particleAngle;
        public float[] particleRadius;
        public float maxR = 10f;
        public float speed = 0.05f;
        float time = 0;
        public float free = 0.05f;//设置游动的范围
        void Start()
        {
            particleSystem = GetComponent<ParticleSystem>();
            particlesArray = new ParticleSystem.Particle[particleNumber];//将储存粒子的数组初始化
            particleSystem.maxParticles = particleNumber;//设置粒子发射的最大数量
            particleAngle = new float[particleNumber];
            particleRadius = new float[particleNumber];
    
            particleSystem.Emit(particleNumber);//将刚刚初始化的particleNumber个粒子发射出去
            particleSystem.GetParticles(particlesArray);
            for (int i = 0; i < particleNumber; i++) {//为每个粒子设置其位置
                float angle = Random.Range(0.0f, 360.0f);//位置为0 - 360度的随机一个角度
                float rad = angle / 180 * Mathf.PI;//角度变换成弧度
                float midR = (maxR + radius) / 2;
                //最小半径随机扩大
                float rate1 = Random.Range(1.0f, midR / radius);
                //最大半径随机缩小
                float rate2 = Random.Range(midR / maxR, 1.0f);
                float r = Random.Range(radius * rate1, maxR * rate2);
    
                particleAngle[i] = angle;
                particleRadius[i] = r;
                particlesArray[i].position = new Vector3(r * Mathf.Cos(rad), r * Mathf.Sin(rad), 0.0f);//为每个粒子坐标赋值
            }
            particleSystem.SetParticles(particlesArray, particlesArray.Length);//设置该粒子系统的粒子。前面数组的长度是设置粒子的数量
        }
        void Update()
        {
            for (int i = 0; i < particleNumber; i++) {
                //设置速度为十个不同的档次
                if (i%2 == 0) {
                    particleAngle[i] += speed*(i%5+1);
                } else {
                    particleAngle[i] -= speed*(i%5+1);
                }
                if (particleAngle[i] > 360)
                    particleAngle[i] -= 360;
                if (particleAngle[i] < 0)
                    particleAngle[i] += 360;
                particleRadius[i] += (Mathf.PingPong(time, free) - free/2.0f);
                time += Time.deltaTime;
                time %= 100;
                float rad = particleAngle[i] / 180 * Mathf.PI;
                particlesArray[i].position = new Vector3(particleRadius[i] * Mathf.Cos(rad), particleRadius[i] * Mathf.Sin(rad), 0f);
            }
            particleSystem.SetParticles(particlesArray, particleNumber);
        }
    
    }
    



    展开全文
  • Unity3d不久之前正式发布了Unity3d 2017.1, 这个版本的发布也宣告了Unity3d正式告别了5.x时代,并且开始已年份直接命名,开启了新的纪元。那么Unity3d 2017相较上一版本到底有哪些改进呢?这介绍这些改进之前先放出...

    Unity3d不久之前正式发布了Unity3d 2017.1, 这个版本的发布也宣告了Unity3d正式告别了5.x时代,并且开始已年份直接命名,开启了新的纪元。那么Unity3d 2017相较上一版本到底有哪些改进呢?

    这介绍这些改进之前先放出下载地址:Unity 2017.1
    有趣的是通过Unity产品蓝图我们可以发现Unity 2017.2 beta已经提供下载测试并且Unity 2017.3也已经在制作中了。
    这里写图片描述
    Unity 2017.2 beta下载地址:Unity 2017.2 beta

    以下关于Unity2017.1的介绍内容来自Unity官方中文社区,原帖地址:[官方] Unity 2017.1正式版发布

    Unity 2017.1中包含大量新功能与改进。主要内容如下:

    • 艺术家和设计师们:全新的叙事和游戏视频创作工具
      Unity 2017.1为艺术家和设计师们提供了全新的工具,使用Timeline,Cinemachine和Post-processing工具,可以创造令人惊叹的影视内容,合成精美相机镜头,描绘更好的视觉故事。
      Timeline是一款强大的可视化新工具,可用于创建影视内容,例如过场动画、预告片、游戏试玩视频等等。
      Cinemachine是一个高级相机系统,您可以像电影导演一样,在Unity中合成镜头,无需编写任何代码,引领您进入程序化摄影时代。
      Post-processing可以很方便地为场景应用各种逼真滤镜,使用电影工业级技术、控件和颜色空间格式来创造高质量视觉效果,让画面更生动、更逼真,助您描绘更好的视觉故事。
    • 效率:协作、实时操作分析、工具
      我们发布了Unity Teams,它由一系列简化创作者协作流程的功能和解决方案组成,包含Collaborate多人协作(现已发布)和Cloud Build云构建。
      实时操作分析系统引入了新的、更简单的方法,帮助您理解用户,并在不需要重新部署的情况下,对游戏做出动态的反应和调整。
      最重要的是,Unity 2017.1对编辑器进行了大量更新,包括对FBX导入、动画工作流程、2D功能、Asset Bundle工作流和Visual Studio集成的改进。
    • 图形与平台:全面改进
      Unity 2017.1对粒子系统和Progressive Lightmapper进行了大量改进,提供了更多选择来实现您的艺术愿景并控制性能。不同平台可采用不同的渲染品质,例如iOS平台上的Deferred Rendering,和PC上的NVIDIA VRWorks。
      这些都只是Unity 2017.1的亮点概念,下面将介绍完整丰富的细节内容!

    Unity 2017.1新看点

    艺术家叙事工具: Timeline和Cinemachine介绍

    设计师、艺术家或动画师们可以使用新的集成叙事工具,自己制作影视内容和游戏视频,而不用依赖程序员。这意味着开发效率更高,而节约沟通与排队成本。

    Timeline是一款强大的可视化新工具,可用于创建影视内容(例如短片Adam)。通过编排游戏对象、动画、声音和场景,来创建过场动画、游戏视频等等。有了Timeline,您可以专注于叙事和电影艺术创作,而非编码。

    Timeline基于轨道的序列工具,使用“拖放”操作来编排动画、声音、事件、视频等元素,以更快地创建漂亮的过场动画和程序化内容。Timeline有许多功能,例如动画、音频、自动关键帧,以及可以锁定或静音特定轨道的多轨道界面。Timeline可通过Playable API进行扩展,支持创建自定义轨道,来驱动游戏中的任意系统。您可以制作一个Timeline剪辑来表示几乎所有内容——并且可以重复播放、缩放和混合这些剪辑,所有这些都可在Timeline中实现。
    这里写图片描述

    Cinemachine 是多年游戏和电影摄像机的构建经验凝聚而成的结晶。现在,它将业界领先的摄像操作置于所有人手中,引领了程序化摄影的时代。

    这是一套智能摄像机,可以动态的根据场景组成和交互,在最佳时间拍摄最佳镜头。使您摆脱无尽的手工动画、摄像机编程以及修订的过程。

    Cinemachine可以在Asset Store资源商店中下载,现在就添加到您的项目中。

    从第一人称射击游戏到第三人称动作冒险,您可以用Cinemachine彻底改变游戏内摄像机。很容易地:

    • 像电影导演那样,使用高级摄像机工具及真实的摄像机设置,来控制视频序列。
    • 合成镜头,把重点放在艺术方向上,而非实现细节。给Cinemachine智能摄像机一个简单的指示,比如跟随人物的头部,如果动画发生变化,镜头会自动更新并继续正常工作。
      这里写图片描述

      在Unity 2017.1中,我们为Cinemachine增加了很多新功能,比如:

    • 多个目标对象:以多个对象为目标,并设置它们的权重。它基于任意数量的对象创建一个逻辑组,根据其成员的位置来定位自己。在跟踪一组对象时,可以将其用作LookAt和Follow方法的目标。对2D场景也非常适用。
    • 动态取景多个对象:该功能将基于对象的位置自动取景一组目标。如果对象散开,Cinemachine将根据您创建的一套规则调整FOV或推拉(或两者同时进行)
    • 全新开放API:轻松定制Cinemachine配置,获得项目需要的摄像机行为。
    • 推拉轨道:创造出像电影一样的推拉镜头,让摄像机在游戏世界里平滑移动。适合于电影序列,或当您希望摄像机沿着一组轨道跟踪拍摄对象时。
    • 安全镜头:安全镜头会根据镜头优先级与质量,动态选择最佳的摄像机。有东西进了取景框,破坏了镜头?没问题,Cinemachine会切换到下一个最佳摄像机。尤其适用于回放或任何一个可变场景的电影序列。

    Timeline和Cinemachine结合使用,您可以将叙事带入更高的层次。使用后处理栈来进一步创建特效,烘托场景氛围和戏剧效果。
    这里写图片描述

    改进Post-processing栈(测试)

    Post-processing将全屏滤镜和特效应用于摄像机的图像缓冲区,然后再将其显示在屏幕上。您可以使用图像后处理特效来模拟物理摄像机和电影效果。

    最新版的Post-processing栈测试版可以在此下载。最终版预计将于今年夏季发布。(注意:上一个稳定版本可以在Asset Store资源商店中下载)

    改进后的后处理栈将一组完整的图像效果整合到单个后期处理流程中,并带有一系列高质量的摄像机效果:

    • Screen-space anti-aliasing
    • Auto Exposure
    • Motion Blur
    • Bokeh Depth of Field
    • Bloom
    • Color Grading
    • Chromatic Aberration
    • Film Grain
    • Vignette

    您可以将多个特效组合到单个Pass中,使用基于Asset的预设配置系统管理特效也非常轻松。

    颜色分级效果是一种支持Academy Color Encoding System (ACES)的全HDR颜色管线,低端平台可以使用LDR管线。该栈有两个屏幕空间的光照特效,即环境光遮蔽和屏幕空间反射。

    这个新版本还提供了一个基于体积的混合特性,您可以在场景中定义区域(任何类型的网格),并在玩家进入区域时设置特定的氛围/外观。Unity会自动在体积之间进行混合,以实现流畅的外观转换。
    这里写图片描述

    Unity Collaborate多人协作已正式发布!现为Unity Teams一员

    Unity Collaborate多人协作已结束测试,与Cloud Build云构建一起成为Unity Teams的一部分,仅用一个解决方案一套功能,即可帮助您更快速地进行团队协作。Unity Teams将可免费使用至2017年10月。

    点击了解有关Unity Teams的更多内容。

    对于Collaborate多人协作,我们在Unity 2017.1中发布的首个发布版本优先处理了Beta用户提供的反馈。除了性能改进、稳定性和Bug修复之外,我们还增加了一组新功能:选择性推送、更佳的Asset浏览器集成和一个新的“In Progress”功能,用以标志团队成员在某个场景或预制件上有未发布的本地更改。
    这里写图片描述

    以下是我们为Collaborate多人协作添加的一些新功能:

    • In Progress标志
      为场景和预制件添加了In Progress标志,以指示团队中其他人已对某个场景或预制件做出了一些未发布的本地更改。这个特性有助于协作者协调对场景和预制件的更改。
      这里写图片描述
      这里写图片描述

    • 右键单击选择发布
      我们添加了右键单击操作,现在您可以在项目浏览器中直接发布、恢复、查看差异,解决文件冲突。这是一个主要的用户痛点源头,我们希望使Collaborate的行为与其他项目浏览器的行为更加一致。请注意,这种UX允许您选择性地发布已更改的Asset。之前的版本中,您必须发布所有更改。
      这里写图片描述

    • 浏览体验更佳
      在项目浏览器的“收藏”中添加了新的过滤器,包括“所有修改”、“所有被排除”和“所有冲突”,这样用户就可以看到他们所有修改过的文件、所有正在修改的文件、带有冲突的文件和忽略的文件。特别要留意的是“All in Progress(一切都在进行中)”,这让您可以实时看到Collaborate团队中的其他人正在处理哪些Asset(稍后将详细介绍)。
      这里写图片描述

    • 实时操作分析
      Unity 2017.1可以通过数据驱动的实时操作,随时获得丰富的分析数据。深入了解您的用户与您作品的互动情况,并实时做出相应的调整,迎合他们的习惯,无需重新部署新版本。在Unity 2017中,您可以更好地为用户提供更佳的游戏体验。
      通过Standard Events (目前是Beta版)可以进行更高效的洞察,它提供了一组精心设计的预定义事件,可揭示与您游戏相关的重要信息。使用新的Analytics Event Tracker,无需代码即可实现这些功能。
      这里写图片描述
      使用Remote Settings特性,可以即时更改游戏,无需重新部署,该特性已添加到Unity Analytics分析服务中。
      这里写图片描述

    • 2D改进
      在Unity 5.6中,我们为2D游戏开发者对工具和工作流程进行了重大改进。Unity 2017.1中引入了2D Sprite Atlas,这是一种新的Asset,将取代Sprite Packer。随着它的出现,新改进的工作流程可以在运行时更好地控制精灵的打包和使用。图集是Unity中2D工作流程的重要组成部分,而精灵图集不仅提供了更简单的图集创建和管理方式,还有相应的脚本API,可获得更多的控制和用途。
      这里写图片描述
      Sprite Masks用于在世界空间中隐藏或显示精灵或精灵组的一部分。精灵遮罩仅对拥有Sprite Renderer组件或粒子系统的对象生效。
      这里写图片描述
      在Unity 2017.1中,我们还为精灵编辑器添加了精灵物理形状。可以为精灵设置自定义的默认形状,以使用PolygonCollider2D生成碰撞器形状。

    • 动画改进
      我们对Animation窗口进行了全面修改,改进了关键帧的工作流程,使动画制作更方便和熟练,并支持与Animator状态机进行交互。Performance Recording是一个实验性功能。
      新的关键帧工作流程支持明确指定何时将哪帧变为关键帧,并在重新评估/预览动画时,将所有未修改且未关键帧化的属性值都丢弃。我们已经改变了在Animation窗口中编辑剪辑的默认行为(新的默认预览模式)、视觉反馈和全局关键帧操作热键。这些变化的目的是在Animation窗口之外为关键帧操作提供一个流畅的工作流程,同时预览动画剪辑无需处于自动关键帧或录制模式下。
      现在在编辑器中可以对状态机行为进行调试。
      我们还引入了GameObjectRecorder,这是一个新的实验性编辑器特性,它允许您记录GameObject和它子对象上的任何属性。这样就可以轻松地创建动画,将被记录的所有内容保存到一个动画剪辑中。欢迎访问论坛进行反馈。
      这里写图片描述

    • Playables已正式发布
      Playables API通过使用树状结构的PlayableGraph组织和评估数据来源,提供一种创建工具、特效或其他游戏机制的方法。PlayableGraph允许您混合和修改多个数据源,合成为单一输出后播放。
      Playables API支持动画、音频和脚本。Playables API还提供了通过脚本来与动画系统和音频系统进行交互的能力。
      Playable API是一个通用API,它最终将用于视频和其他系统。查看文档了解更多细节。

    • Ambisonic音频
      在Unity 2017.1中,我们增加了对环绕立体声音频剪辑的支持,这是全方位环绕音频技术,它(除了水平面外)还覆盖了听众上方和下方的声源。
      Ambisonics以多声道格式储存。它不是将每个通道都映射到一个特定的扬声器,而是以一种更通用的方式来表示声场。然后,根据聆听者的方向(即XR中用户的头部旋转),旋转声场。声场也可以被解码成一种与扬声器设置相匹配的格式。Ambisonics通常与360度视频结合使用,也可以用作音频天空盒,表现遥远的环境声音。
      我们还添加了Ambisonic解码器插件,而且现在也可以使用正开发中的API,在新的叙事工具Timeline中使用音频剪辑了。

    • 编辑器改进
      我们在UnityEditor.IMGUI.Controls中添加了一个新的ArcHandle类,它可以在场景视图中交互式地编辑弧线。还加入了名为SearchField的新IMGUI控件,它带有普通和工具栏用户界面风格,但也可以自行定制。
      这里写图片描述
      现在还支持使用JetBrains Rider作为外部脚本编辑器。
      其他改进还包括对所有播放器循环阶段添加分析器标签,改进Package Export加载状态,以及记录已连接玩家的日志信息,这些都将出现在编辑器控制台中,使调试更加轻松。

    • 改进了对Visual Studio的支持,包括Mac OS
      Unity安装程序现在可以选择在Windows上安装Visual Studio Community 2017(而非Visual Studio Community 2015)。安装速度显著提高也更轻量。
      Mac用户也别难过,现在可以使用Visual Studio了!微软发布了Mac版的Visual Studio和Tools for Unity。Visual Studio for Mac还提供了许多很酷的功能:一键调试,Unity消息的IntelliSense(完整Unity特定库代码),着色器代码高亮显示等等(点此查看详情)。

    • 场景与Asset Bundle改进
      我们对游戏中的场景和Asset Bundle进行了一些改进。更改底层架构使场景和Asset Bundle加载速度更快,从而使玩家体验更加流畅。我们还创建了一个工具,Asset Bundle浏览器——以帮助创建和优化Asset Bundle。

    • Asset Bundle浏览器
      Asset Bundle浏览器的Beta版与Unity 2017.1一同发布。该工具允许您在Unity项目中查看和编辑Asset Bundle的配置。它的目的是替换当前选择Asset的工作流,并在检视窗口中手动设置Asset Bundle的工作流程。现在您可以集中查看所有的Asset Bundle配置。通过使用上下文菜单和拖放功能,配置、修改和分析相关资源包。
      该工具将标记可能值得关注的警告,并提示将中断资源包创建的错误。从上层查看包集合,您可以更有效地组织Asset Bundle。在更低层查看单个Asset Bundle,您可以看到由于显式包含或依赖项的关系,哪些内容将会放入包中。
      更多细节请查阅文档
      这里写图片描述
      Asset Bundle浏览器可以从Asset Store资源商店下载。

    • 脚本运行时升级(实验性):畅享 C# 6和.NET 4.6
      在Unity 2017.1中,我们引入了实验性版本的脚本运行时内核,该内核已升级到Mono/.NET 4.6运行时。它包含了许多修复、性能改进,可以使用C# 6。我们相信它会提高游戏的整体性能。
      可以在Player Settings中启用.NET 4.6:
      这里写图片描述
      注意,更改该设置会在重启编辑器后生效,因为它会影响编辑器和播放器。对应的脚本API是PlayerSettings.scriptingRuntimeVersion属性。
      IL2CPP完全支持新的.NET 4.6 API,因此您仍可使用C#编写脚本,同时享有原生C++的性能优势。如果您发现任何问题,请访问论坛进行反馈。

    • 模型导入器改进
      从像Maya这样流行的数字内容创作(DCC)工具导入Asset的过程是首批重要的改进对象,这使得DCC工作流程变得更加轻松。最终提高了艺术家和设计师的生产力,减少了程序员的麻烦。
      现在Unity导入从Maya导出的FBX文件已支持Segment Scale Compensation,而且FBX SDK已升级至2016.1.2。
      在导入FBX文件时,我们还添加了计算加权法线的选项,如按面积、角度或二者皆有,以及硬边缘的固定法线生成。现在,可以从FBX文件中导入灯光和摄像机,Unity会自动在需要时为对象添加和配置摄像机和/或灯光组件。
      Unity现在可以使用“Import Visibility”属性从FBX文件中读取可见性属性。值和动画曲线将启用或禁用MeshRenderer组件:
      这里写图片描述

    • Progressive Lightmapper改进
      Unity 2017.1增加了Progressive Lightmapper中对烘焙LOD的支持。在烘焙LOD时,Enlighten和Progressive Lightmapper之间的主要区别在于,使用Progressive Lightmapper不必在LOD周围放置光照探针来获得反射光。在完全烘焙分辨率下,间接光照将为LOD提供更优质的烘焙光照贴图,您也可以避免为它们设置光照探针的繁琐过程。(Unity 5.6中也有此功能。)
      我们还在Progressive Lightmapper中增加了对双面材质的支持,通过添加新的材质设置,使光线与背面接触。启用后,在进行全局光照计算时几何体的两面都被包括在内。当从其他对象观察时,背面不会被认定为无效。背面渲染既不受该设置的控制,也不会在光照贴图中显示。背面使用与正面相同的自发光和漫反射设置反射光线。(该功能也可在Unity 5.6中使用)
      这里写图片描述

    • 实时阴影改进
      我们优化了在稳定模式下,级联定向光源阴影投射器的选择。这意味着生成阴影贴图时会产生更少的Draw Call。这增益是与场景和配置相关的。例如,在四个级联光的情况下,可以看到Draw Call数量显著下降。根据太阳/摄像机的方向,场景中可以减少50%的阴影投射器。下面是维京村庄的一个例子:
      下面的场景在Unity 5.6中有5718个阴影投射器。
      这里写图片描述
      在Unity 2017.1中,相同的场景,只有4807个阴影投射器。
      这里写图片描述
      Unity 2017.1还实现了实时阴影的Percentage Closer Filtering (PCF)。每个像素的深度值都是从当前像素周围的阴影贴图中取样,并所有的采样值进行比较。这使得光和影之间的线条更加平滑。您可以在下图中看到对比:
      这里写图片描述
      除了实时阴影改进,Shadowmask和Distance Shadowmask光照模式现在已成为Quality Setting中的参数,可以在运行时进行修改而无需任何成本。例如,可以在室内使用Shadowmask (实现柔和的阴影),并在相同关卡中的户外场景切换至distance Shadowmask。它也可以作为一个质量设置项。
      我们还添加了Custom Render纹理作为渲染纹理的扩展,可以很方便地用着色器来更新纹理。这有助于实现各种复杂的模拟,比如焦散光、雨滴涟漪模拟,墙面液体喷溅等等。它还提供了一个脚本和着色器框架,以便进行更复杂的配置,比如局部或多阶段更新,不同的更新频率等等。
      这里写图片描述
      有了新添加的LineUtility类和LineRenderer.Simplify函数,现在可以优化线条,用LineUtility创建由简单形状组成的简化版本。
      使用Metal/OpenGL ES3实现iOS上的Deferred Rendering
      我们为A8芯片和以后的iOS设备启用了一个使用Metal和OpenGL ES 3.0的延迟渲染路径。当使用延迟着色时,能够影响GameObject的灯光数量是没有限制的。所有的灯光都是按像素计算的,这意味着它们都能与法线贴图进行正确的交互等等。此外,所有的灯光都可以有剪影和阴影。

    • 粒子系统改进
      我们引入了精灵集成,粒子碰撞力(可以推动碰撞器),大量形状方面的改进,包括一个新的形状类型,噪音模块增加了新选项,以及其他一些较小的特性和增强。因为增加了新的控制和约束,例如速度与对齐,使得在2D中使用粒子更加轻松。可以使用粒子来获得比以往更多的特效和动画效果,包括光线的线条和尾迹。
      通过Texture Sheet Animation模块,我们在粒子系统中增加了对精灵使用的支持。这使粒子系统能更好地进行了图集处理和批处理,同时也在粒子系统中增加了大量与精灵相关的特性,例如不同大小的动画帧,以及每帧的轴心点。
      这里写图片描述
      这里写图片描述
      噪音模块提供了新的选项,可以更好地将噪音应用于粒子效果中。这个功能在Unity 5.5中第一次实现,噪音是被应用到粒子的位置属性。在2017.1中,我们可以将噪音应用到更多的地方:
      -位置
      -旋转
      -大小
      -使用Custom Vertex Streams的着色器(非常适合制作UV失真效果!)
      这里写图片描述
      在粒子系统形状模块的碰撞模式中,我们引入了一个新的甜甜圈粒子发射形状和编辑模式。模块内的Transform可以为粒子发射的形状应用自定义位置、旋转和缩放。
      其他的改进还包括将粒子与速度方向对齐的能力,以及允许在局部空间系统使用Emit over Distance。边缘粒子发射现在更加灵活,可以选择用来产生粒子的边缘厚度。
      粒子现在也可以使用碰撞模块对碰撞器进行施力。
      这里写图片描述

    • Windows Store现在改名为Universal Windows Platform
      Unity现在支持Windows商店的Universal Windows Platform(UWP)应用模式,支持为Xbox One、Windows 10、Windows Phone 10和HoloLens进行构建。
      请注意,对Windows混合现实PC设备的支持将在今年晚些时候发布。
      这里写图片描述
      我们增加了对UWP的多显示支持,现在Unity播放器二进制文件已做数字签名,增加了额外的一层安全性,可以防止对Unity运行时二进制文件进行篡改。
      最后,我们取消了对Windows 8.1和Windows Phone 8.1应用的支持,Unity 5.6是最后一个支持这两个平台的版本。

    • 索尼PS4的视频播放器
      我们在Unity 5.6中引入了一个全新的视频播放器,在Unity 2017.1中正式加入了对索尼PS4的支持,从而完成了对跨平台的支持。PS4的视频播放器使用索尼的AvPlayer库来加速h.264流的解码。解码h.264流(PS4的推荐格式)时,CPU开销非常低。可以同时对最多8个并发h.264流进行解码。它还支持对webm容器中的VP8格式流进行软件解码(更高的CPU开销)。最后,它支持多种视频渲染模式(直接渲染到摄像机的近/远平面,作为材质覆盖,或渲染纹理),音频流可以直接输出或发送到音频源进行混合。

    • 底层原生插件渲染扩展
      我们已经扩展了底层渲染插件API,并提供了一些很酷的新特性:
      -现在可以将用户数据发送到回调函数。
      -我们已经扩展了插件将接收回调的可能事件列表。
      -我们在着色器编译器进程中添加了钩子,可以在发送到编译器之前对着色器打补丁。支持创建自定义关键字所控制的自定义变体。
      -要想了解这些扩展的威力,请查看NVIDIA的VRWorks包,它是实现这一切的基石。

    • VR: NVIDIA VRWorks
      现在,在Unity 2017.1中,NVIDIA VRWorks通过以下特性,为虚拟现实提供了一种全新高度的视觉保真度、性能和响应能力:
      -Multi-Res Shading是一种用于VR的创新性渲染技术,它可以使图像的每一部分都能渲染在一个与镜头矫正图像像素密度相匹配的分辨率上。
      -Lens Matched Shading使用NVIDIA基于Pascal的GPU的新Simultaneous Multi-Projection架构,为像素着色提供潜在的性能改进。
      -Single Pass Stereo使用NVIDIA基于Pascal的GPU的新Simultaneous Multi-Projection架构,仅对几何体进行一次绘制,即可在双眼视图同时投射相同几何体。
      -VR SLI为虚拟现实应用程序提供更高的性能,其中两个GPU可以被指派给特定眼睛,极大地加速立体渲染。
      这里写图片描述
      为了更好地利用这些改进,应该在PC上使用GeForce 9系列或更高的GPU来进行回放。可以访问Asset Store资源商店下载NVIDIA VRWorks for Unity

    • 发布说明
      与往常一样,请查阅发布说明,以了解新特性、改进和修复的完整列表。

    以上内容来源Unity官方中文社区,原帖地址:http://forum.china.unity3d.com/thread-25171-1-1.html
    本文仅做转载和整理。

    by:蒋志杰

    展开全文
  • 转自:http://jingyan.baidu.com/article/f96699bbb1a0d6894f3c1b77.html 参考:... ...本篇教程为基础篇,针对U3D入门新手,讲解粒子系统播放序列图的一种实现方法,随着基础教程的知识点的慢慢

    转自:http://jingyan.baidu.com/article/f96699bbb1a0d6894f3c1b77.html

    参考:http://www.unitymanual.com/thread-2993-1-1.html?_dsign=a97a2a84


    本篇教程为基础篇,针对U3D入门新手,讲解粒子系统播放序列图的一种实现方法,随着基础教程的知识点的慢慢积累,以后将逐步展开进阶篇,项目实战篇,终极篇的讲解,也会在以后陆续发布AE特效篇,maya特效篇,中间也会穿插一些aemaya结合应用实力,请看官们多多关注。

    工具/原料

    ·      Unity3D 4.53f

    ·      Affter Effects CS4

    ·      Photo Shop CS 6

    方法/步骤

    1.          1

    第一步:翅膀素材,可自行百度搜索或手绘,可根据项目或个人喜好取材,这里取一个卡通翅膀作为案例素材,希望能起到抛砖引玉的作用。

    2.         2

    第二步:打开PS,扣除黑色背景,只留下翅膀,这一步也可AE处理,但考虑到新手朋友对PS远比AE熟悉,就尽量用大家熟悉的软件去处理这些工作,如果对AE有一定的基础的同学,可在AE中处理,可逃过这一步。

    3.         3

      此时选中的是黑色背景,按Ctrl+Shift+i,反选所选区域,得到翅膀的选区,Ctrl+J,把选区做到新层里,隐藏或删除原始图层皆可。最后输出为png格式即可。

    4.        4


    第三步:打开AE,导入翅膀素材,制作翅膀的另一半。

      新建300X300合成,导入翅膀素材拖拽到合成窗口里,调整位置,Ctrl+D,复制一个翅膀层,按S快捷键,调出缩放属性,取消前面小锁链标志,复制的翅膀图层X轴向设置负数,沿着Y轴向镜像,然后再勾选上小锁链,得下图

    5.         5

    第四步:处理翅膀的光感,添加特效滤镜,调节出所需色彩效果。如下图

    Unmult这个是一个特效插件,扣黑作用,网上可搜索到,下载之后复制到AE安装文件中的插件目录下即可

    6.        6

    第五步:调整翅膀层的旋转轴中心点

      调节简单的动画,只需要给翅膀做旋转即可,即给旋转属性K关键帧,在做这一步骤之前,需要做的一个操作就是把图层的中心旋转轴设置在翅膀下图位置,按快捷键Y,可移动中心轴的位置。

    7.         7

    第六步:K帧旋转动画,让翅膀挥动起来

     1、选中两个图层,按快捷键R,调出旋转属性,点击属性前面的码表形状的关键帧记录器,只有在激活状态,操作的数值变化才会被记录下来,合成设置的是8帧,CTRL+K快捷键可设置合成相关属性。

    2、下图关键帧设置在-1010两个极端值之间变化,轻微的翅膀挥动动画,

    第一层左翅膀2”这个层的属性数值从左到右100-10010

    第二层左翅膀2”这个层的属性数值从左到右-100100-10

    这样做出的效果首尾数值相同,得到一个循环的效果。


    8.        8

    第七步:调节好关键帧之后,可以输出序列图了,在你的合成窗口,按Ctrl+M调出渲染队列,橙黄色字体三个设置项最佳设置无需改动,输出组件如下图设置,格式为PNG序列,通道选择RGB+Alpha,点击确定

    9.        9

    第八步:渲染队列里的输出到就是储存序列的位置,指定到你自己创建的文件夹里即可。设置好之后,点击渲染列队里最右边的渲染按钮,等待渲染输出。

    10.   10

    第九步:输出得到的渲染图是一组序列,8张图,大小300x300

    11.      11

    第十步:打开PS,新建文件大小,因为要做2X4的图,方便位置能整齐的摆放,暂先设置高600,宽1200大小尺寸图,最终大小,在后面的输出里调节。

    12.     12

    第十一步:为了能更精确的摆放位置,有个小技巧教给大家,PS里有一个切片工具,下图所示。

    13.     13

    弹出一个对话框,设置划分的参数,参数如下图,得到2x4标准切割位置参考线。

    14.    14

    第十二步:选中输出的序列图,从第一张图选中,按shift加选最后一张图,拖拽到ps里,此时出现第一张图,按V进入移动模式,移动到第一个格子里,移动好位置,匹配到切割线,回车,然后第二张图自动导入,同上依次调整好八张图,得到下图效果。

    15.     15

    第十三步:清除切线参考,否则输出的又会是八张图,切割的作用就是把整图切割成小图,这里只是小技巧借用这个切割线得到分配的位置参考线,做好之后还是要清理掉切割效果的,在视窗里,清除切片

    16.    16

    第十四步:储存格式并且修改大小,ps文件,储存为Web所用格式,设置里根据项目对资源的需求修改图像大小,如果是个人练习图可大一点,相对会清晰很多,如果项目需要压缩节省资源,可设置大小变小一点,会损失一些画面效果,自己衡量找到一个平衡点,这里不多赘述。注意的参数下图也已经标出,PNG格式,大小设置和输出后文件大小都在红框里。

    17.     17

    第十五步:下面要做到Unity3d里面,打开U3D,创建一个粒子系统命名为“par_chibang”

    18.    18

    第十六步:在你项目目录里,创建一个新材质,一般我在工程目录里创建的材质文件夹名为Materials,在里面创建一个材质球,自己命名,我命名mat_chibang。把这个材质直接拖拽给刚才创建的粒子系统上即可,就给这个粒子系统赋予了这个材质,材质的设置稍后配图讲解。

    19.    19

    第十七步:设置粒子属性,下面截图参考,如果对粒子系统各属性不是很了解,日后我会贴出一个新帖子,专门讲解粒子属性,以及实操项目中遇到的问题和一些小技巧。下面把修改过的参数属性截图贴上来。

    20.  20

    上步骤基本粒子属性,不再多赘述,下面关于配合材质,需要专门图文讲解下,此时把之前做的2x4组合图的翅膀图复制到U3D项目工程里,可建立文件夹名为Tex存放图贴,给材质上图贴方法也很简单,在项目工程里,找到你的翅膀序列图,拖拽给下图红框位置即可。

    21.     21

    使用的材质类型为Particles/AlphaBlended,这个材质可读取透明信息,和PNG图的显示,很好的匹配上,如下图

    22.    22

    如果不启用这个粒子系统的TextureSheet Animation的话,得到的就是一个我们制作的多翅膀序列图,如下图

    23.    23

    现在要做的是播放序列,这个就需要启用TextureSheet Animation,就是勾选前面就是启用,设置参数上面截图也已经有过了,这里再贴一次,就是x轴向四个图,y轴向2个图,告诉系统这个图的分图坐标信息,其中Cycles这个是循环数,就是粒子生命周期内播放几个循环,数值大,速度快,这个也很好理解不再多赘述,参考下图

    24.   24

    做完以上操作,就能看到翅膀效果图了

    25.    25

    以后会讲解更多的知识点,让看官们能制作出更丰富的特效,篇幅略长,这里就不再继续贴了,先学会制作序列帧特效,灵活的处理手上的项目,以上内容才是重点,此篇教程到此告一段落,内容涉及的软件比较多,但都是这些特效软件基础的应用,并没增加难度,如果看官们跟不上的话,可能要多多扎实基础了。

    END

    注意事项

    ·      PS处理序列图时一定要对齐,不然会在u3d里奇葩的跳

    ·      粒子大小参数可根绝自己项目自行设定,日后会出一些插件篇告诉大家如何随意缩放粒子大

     

    ****************************************

    PS:如果运行时发现特效被NGUI挡住了,则可以这样解决(Order in Layer 设为1)



    解决方法是:

      因为粒子系统的渲染顺序列默认为3000,而NGUI的渲染顺序默认也是从3000开始,当有嵌套的panel时或者Depth更高的panel时,GUI的渲染顺序会高于3000,

    解决办法是,

    1.修改Ngui中的UIPanel脚本中的默认的RenderQueue, 调整到3000以下,这样就不会遮挡住粒子特效了,当有的窗口需要显示在特效上面时,在检视面板中把该窗口的Renderer Q选项调整为Start At,值为3000以上,就可以解决,不过我的NGUI版本为3.1.6,所以可以直接调整。

    2.使用另外一个摄像机,显示特效。但是在UI窗口相互切换时,不太好控制。

    3.修改粒子特效的Shader中的RendererQueue值。

    展开全文
  • unity3D 下雨效果实现

    2016-03-02 21:15:03
    这个效果借鉴自unity例子angrybot,并做了一部分适应项目的修改。 angrybot的实现方法 单个雨滴 RainBox 1.Start的时候从Mgr里面取一个雨滴的mesh给MeshFilter使用。 2.在Update 做下落的循环位移。 3....
  • Unity3D 爆炸效果 粒子系统
  • Unity特效渲染

    2018-05-23 16:22:36
    Unity特效渲染 ##1、 粒子系统 ++1.1、粒子系统概述 ++++粒子系统是Unity3.5版本新退出的粒子系统,它采用模块化管理,个性化的粒子模块配合粒子曲线编辑器使用户更容易创造出各种缤纷复杂的粒子效果。 ++++粒子在...
  • Unity3d 资料网站

    2015-05-20 12:16:49
    http://unity3d.com/ Unity 中文官方网: http://unity3d.com/cn 非官方: http://www.unity3d-cn.com/ 0、2014-Unity 发布中文版的手册,所有天朝人都可以享受官方提示的源汁源味的手册内容;...
  • Unity3D游戏优化方案

    2017-04-06 06:23:31
    作为一个入行不足三年的攻城狮来讲,讲引擎中的优化,经验确实不足,unity3D引擎作为一款侧重移动端游戏开发引擎来讲,优化游戏是确实有必要的,毕竟他要适配所有机型的前提下又要保证游戏画面的清晰度,特效的绚丽...
  • Unity中的粒子系统可以用于制作特效,如开枪火花效果,简单爆炸效果等。(毕竟程序员不是设计师,简单的特效都没有问题,要制作一些非常美观的特效还是需要多了解跟美术有关的知识。) 粒子系统实现一个简单的烟花...
  • 拖尾渲染器(Trail Renderer) 拖尾渲染器(Trail Renderer)用于制作跟在场景中的物体后面的拖尾效果来代表它们在到处移动。 添加方法:为物体添加Component->Effects->Trail Render组件。 主要参数介绍: ...
  • 1、基础知识: 标题栏 菜单栏 工具栏:变换工具、gizmos切换、播放控件、层列表、布局列表 功能窗口 2、资源及资源类型:在project里面能够...maya、3dmax创建的模型、动画,用插件输出(fbx、obj)或者软件自己的格...
  • Effects:效果/特效。 Particle System:粒子系统。可用于创建烟雾、气流、火焰、涟漪等效果。 添加组件之后的效果:  点击Inspector中的Shape修改它的形状    Start Lifetime(生命周期)修改合适的值。 火焰是...
  • 说明 由于近期项目需求,在网上找了淡入淡出的代码,但都是两张图片淡入淡出结束后就没有了(可能我没找到其他好的作品)...接着图片再次静止一段时间,然后接着下次的淡入淡出,但因为是循环淡入淡出,所以要考虑重新
  • Unity的插件Kitchen Cooking FX 厨房烹饪效果和声音Ultimate VFX 终极粒子特效资源包Advanced Dissolve高级溶解插件Translucent Image 半透明高斯模糊Teleport Effect 传送光圈特效AraTrail 拖尾SVG Importer矢量图...
  • Effects:效果/特效。    Particle System:粒子系统。可用于创建烟雾、气流、火焰、涟漪等效果。  该文章出自【狗刨... 在Unity3D 3.5版本之后退出了新的shuriken粒子系统:  
  • unity3D做项目有三个地方处理不好游戏整体就会出现卡顿的问题。 1.NGUI直接打开界面卡 2.角色放技能的时候卡  尤其是放群体攻击技能时, 因为每个人身上都要产生一个技能特效。技能都是用粒子特效做的,...
  • 这段时间在自学Unity3D的手机游戏开发
1 2 3 4 5 ... 20
收藏数 1,137
精华内容 454
关键字:

unity3d特效如何不循环