参考博文地址:http://my.oschina.net/u/2340880/blog/485095?fromerr=bgjLq4Mw

一、粒子发射器

iOS中的粒子效果有两部分组成,一部分为发射器,设置例子发射的宏观属性,另一部分是粒子单元,用于设置相应的粒子属性。粒子发射器是基于Layer层,他的全名叫做:CAEmitterLayer。其中常用的属性如下:

@property(copy) NSArray *emitterCells;

粒子单元数组,例如你在绘制火焰的效果时,你可以创建两个单元,一个单元负责烟雾,一个单元负责火苗。

@property float birthRate;

粒子的创建速率,默认为1/s。

@property float lifetime;

粒子的存活时间。默认为1S。

@property CGPoint emitterPosition;

发射器在xy平面的中心位置

@property CGFloat emitterZPosition;

发射器在Z平面的位置

@property CGSize emitterSize;

发射器的尺寸大小

@property CGFloat emitterDepth;

发射器的深度,在某些模式下会产生立体效果

@property(copy) NSString *emitterShape;

发射器的形状,这个参数的几个系统字符串如下:

@property(copy) NSString *emitterMode;

发射器的发射模式,参数如下:

@property(copy) NSString *renderMode;

发射器渲染模式,参数如下:

@property BOOL preservesDepth;

是否开启三维空间效果

@property float velocity;

粒子的运动速度

@property float scale;

粒子的缩放大小

@property float spin;

粒子的旋转位置

@property unsigned int seed;

初始化随机的粒子种子

二、粒子单元

设置好了粒子发射器,我们还需要初始化一些粒子单元,设置具体粒子的属性,我们使用到的类是CAEmitterCell这个类。

+ (instancetype)emitterCell;

类方法创建发射单元

@property(copy) NSString *name;

设置发射单元的名称

@property(getter=isEnabled) BOOL enabled;

是否允许发射器渲染

@property float birthRate;

粒子的创建速率

@property float lifetime;

粒子的生存时间

@property float lifetimeRange;

粒子的生存时间容差

@property CGFloat emissionLatitude;

粒子在Z轴方向的发射角度

@property CGFloat emissionLongitude;

粒子在xy平面的发射角度

@property CGFloat emissionRange;

粒子发射角度的容差

@property CGFloat velocity;

粒子的速度

@property CGFloat velocityRange;

粒子速度的容差

@property CGFloat xAcceleration;

@property CGFloat yAcceleration;

@property CGFloat zAcceleration;

x,y,z三个方向的加速度

@property CGFloat scale;

@property CGFloat scaleRange;

@property CGFloat scaleSpeed;

缩放大小,缩放容差和缩放速度

@property CGFloat spin;

@property CGFloat spinRange;

旋转度与旋转容差

@property CGColorRef color;

粒子的颜色

@property float redRange;

@property float greenRange;

@property float blueRange;

@property float alphaRange;

粒子在rgb三个色相上的容差和透明度的容差

@property float redSpeed;

@property float greenSpeed;

@property float blueSpeed;

@property float alphaSpeed;

粒子在RGB三个色相上的变化速度和透明度的变化速度

@property(strong) id contents;

渲染粒子,可以设置为一个CGImage的对象

@property CGRect contentsRect;

渲染的范围

三、喷射彩带的效果Demo

- (void)startAnimation

{//设置发射器

_streamerEmitter=[[CAEmitterLayer alloc]init];

_streamerEmitter.emitterPosition=CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2);

_streamerEmitter.emitterSize=CGSizeMake(self.view.frame.size.width-100, 20);

_streamerEmitter.renderMode=kCAEmitterLayerAdditive;

_streamerEmitter.preservesDepth=YES;//发射单元//彩带

CAEmitterCell * smoke =[CAEmitterCell emitterCell];

smoke.birthRate=100;

smoke.lifetime=3.0;

smoke.lifetimeRange=1;

smoke.scale= 0.5;

smoke.scaleRange= 0.5;

smoke.color=[UIColor colorWithRed:0 green:1 blue:0 alpha:0.2].CGColor;

smoke.alphaRange= 1;

smoke.redRange=255;

smoke.blueRange= 22;

smoke.greenRange= 1.5;

smoke.contents=(id)[[UIImage imageNamed:@"彩花.png"]CGImage];

[smoke setName:@"smoke"];

smoke.velocity=200;

smoke.velocityRange=50;

smoke.emissionLongitude=M_PI+M_PI_2;

smoke.emissionRange=M_PI_2;

smoke.spin=M_PI_2;

smoke.spinRange=M_PI_2;

_streamerEmitter.emitterCells=[NSArray arrayWithObjects:smoke,nil];

[self.myView.layer addSublayer:_streamerEmitter];

}

Demo下载地址: https://github.com/KrystalNa/streamDemo

unity 彩带粒子_iOS动画开发----粒子系统---彩带效果相关推荐

  1. Unity Pro 2019 for mac(3D游戏动画开发工具) v2019.2.21f1

    想要一款功能强大的3D游戏动画开发工具?Unity 2019能够轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,以及一个全面整合的专业游戏引擎,用于创建诸 ...

  2. iOS动画开发之五——炫酷的粒子效果

    iOS动画开发之五--炫酷的粒子效果 在上几篇博客中,我们对UIView层的动画以及iOS的核心动画做了介绍,基本已经可以满足iOS应用项目中所有的动画需求,如果你觉得那些都还不够炫酷,亦或是你灵光一 ...

  3. 关于Unity中粒子效果的使用

    粒子效果 1: 游戏中会有很炫酷的特效,比如爆炸,水花,火焰等; 2: unity提供粒子编辑器,方便特效人员来开发很炫酷的特效; 3.粒子效果一般有专门的粒子特效师来做,我们只需要拿来用就好了,很多 ...

  4. Unity基础笔记(5)—— Unity渲染基础与动画系统

    Unity渲染基础与动画系统 Unity渲染基础 一.摄像机 1. 摄像机概念 和现实中的摄像机很接近,Unity 中 Camera 组件负责将游戏画面拍摄然后投放到画面上 Camera 拍摄到的画面 ...

  5. Unity VS Unreal,游戏开发该如何选择引擎?

    一.引擎的介绍 随着游戏开发的不断进步,游戏开发越来越庞大复杂,因此游戏引擎已经成为游戏开发必不可少的工具.引擎对基本的功能封装,对工具链的提供等都可以大幅降低游戏引擎的开发难度,提高开发速度和质量. ...

  6. swiftui动画之tab自定义切换动画_Unity动画系统详解1:在Unity中如何制作动画?

    摘要:在场景中加入动态的物体,可以让整个场景更加生动.真实.Unity场景中的物体可以通过制作动画,让物体动起来.简单的动画如物体的移动.旋转(比如旋转的风扇.闪烁不定的灯泡等),复杂的动画如游戏中角 ...

  7. Unity动画系统详解1:在Unity中如何制作动画?

    摘要:在场景中加入动态的物体,可以让整个场景更加生动.真实.Unity场景中的物体可以通过制作动画,让物体动起来.简单的动画如物体的移动.旋转(比如旋转的风扇.闪烁不定的灯泡等),复杂的动画如游戏中角 ...

  8. unity ParticleSystem 实现序列帧动画效果(一)

    用粒子系统实现序列帧动画优势: 先附上一个 介绍序列帧实现方式比较的链接 点击打开链接 在该链接里说较为倾向于使用该方式俩实现序列帧动画,那么具体的好处又有哪些呢? 此处再贴一个链接,这里介绍了下粒子 ...

  9. Unity中BVH骨骼动画驱动的可视化理论与实现

    前言 找了很久使用BVH到unity中驱动骨骼动画的代码,但是都不是特别好用,自己以前写过,原理很简单,这里记录一下. 理论 初始姿态 在BVH或者其它骨骼动画中,一般涉及到三种姿势:A-pose,T ...

最新文章

  1. 几种芯片架构:X86、ARM、RISC-V和MIPS
  2. JavaScript 教程(二)
  3. [学习笔记]电磁场与电磁波
  4. boost::hana::remove_range_c用法的测试程序
  5. php fpm 不写errorlog,PHP-FPM不写入错误日志
  6. linux 环境下配置python虚拟环境
  7. mvn 本地jar包 加入自己的maven仓库
  8. drools 决策表_骆驼和春天的Drools决策表
  9. Yolov4训练自己的数据集
  10. Linux系统如何连接和上传文件到服务器上
  11. CNN图像分类Keras代码转换pytorch思路与实现
  12. Vue动态类名的实现
  13. 多个vue项目合并成一个_再见Vlookup,合并多个表格发现一个最简单方法
  14. python在csv模块添加新列_如何在CSV文件的开头添加新列?
  15. L3-016 二叉搜索树的结构 (30 分)
  16. 好看的个人网站源码_CMS建站,asp cms,cms系统,cms源码,内容管理系统 - 下载列表
  17. EasyCHM(CHM电子书制作工具) v3.84.545 绿色版
  18. 《知乎周刊:读书这件小事》摘记及书评
  19. 打开ISEIP核里面的datesheet失败,显示C:\Program Files (x86) internet explorer\iexplore.exe http:\\www.xilinx.com
  20. C++primer Plus课本代码(第11章)

热门文章

  1. c语言define定义全局变量,webpack中使用DefinePlugin定义全局变量
  2. 平板电脑可以开发php吗,PHP代码判断设备是手机还是平板电脑(两种方法)
  3. cygwin 远程连接linux,Cygwin解决Windows远程登录linux服务器
  4. ip访问次数统计 nginx_PHP实现IP访问限制及提交次数的方法详解
  5. 前置++与后置++之一道简单的题目引发的思考
  6. kali linux 双显卡,Kali上双显卡驱动的安装
  7. 防火墙设置导致服务器站点打开,服务器、网站、环境配置全正常网站打不开原来是系统防火墙造成的...
  8. 宝塔php安装那个合_使用宝塔面板安装nextcloud | 启用本地存储 | 安装smbclient
  9. Java里a和b哪个大_Java中 a+=b和a=a+b有什么区别?
  10. mysql修改客户端编码命令_mysql命令行修改字符编码