当前位置: 首页 > wzjs >正文

百度最容易收录的网站服装设计网

百度最容易收录的网站,服装设计网,深圳外贸公司电话,网络营销员岗位的职责与要求目录 前言方法particle组件将粒子发射出去调整粒子的属性 后言示例组件 前言 在unity中,就有自带的粒子系统,但是它有一个缺点,就是粒子上很难找到搭载上组件的地方,因此,在本篇博客中,我们就开始学实现一…

目录

  • 前言
  • 方法
    • particle组件
    • 将粒子发射出去
    • 调整粒子的属性
  • 后言
  • 示例组件

前言

在unity中,就有自带的粒子系统,但是它有一个缺点,就是粒子上很难找到搭载上组件的地方,因此,在本篇博客中,我们就开始学实现一个自定义的粒子系统。

方法

首先,要实现一个粒子系统,得先要让粒子能移动,并且也要让粒子能自动销毁。因此,就需要自主实现一个临时组件,是particle组件。

particle组件

particle组件实现简单,只需要在Update方法里不断让对象以某个向量前移即可。并等待一小会死亡的时间,然后销毁游戏物体即可,在销毁的途中,我们还可以逐渐让物体颜色变得透明。

public float dieTime = 2f;
public Vector3 direction = Vector3.forward * 0.05f;private IEnumerator toDie()
{for (int i = 0; i < 10; i++){yield return new WaitForSeconds(dieTime / 10);gameObject.GetComponent<MeshRenderer>().material.color -= new Color(0, 0, 0, 0.1f);}gameObject.SetActive(false);
}
void Start()
{StartCoroutine(toDie());
}
void Update()
{transform.localPosition += direction;
}

这两个组件实现好了,接下来就能试着用这一个组件及组件的默认参数模拟一个粒子了。

模拟好后,也就证明我们的particle组件有效了。


接下去,就要实现粒子系统的核心组件,就是fly组件啦。

fly组件细分一下,有两部分,一部分调整粒子的属性,另一部分则是直接粒子发射出去。我们先把后一部分做好,在做前一部分。

将粒子发射出去

发射一个粒子,就要有一个粒子。要让这个粒子具有particle组件,就要自动给它添加上去。发射粒子要等待,就要一个发射粒子的协程。由于发射粒子时方向要不变,所以在发射时要指定粒子朝向。别忘了要时刻发射粒子。

public GameObject o = 0.1f;
public float summonTime = 0.1f;
private bool isEnd = true;IEnumerator shot()
{isEnd = false;yield return new WaitForSeconds(summonTime);Instantiate(o, this.transform.position, o.transform.rotation);isEnd = true;
}void Start()
{if (null == o.GetComponent<particle>()){o.transform.AddComponent<particle>();}
}void Update()
{if (isEnd){StartCoroutine(shot());}
}

调整粒子的属性

粒子的属性,最重要的就是粒子的移动的方向。粒子移动的方向在随机同时,要求速度一样,就是向量长度一样,因此,就要用球体函数解决了。

球体函数为 x 2 + y 2 + z 2 = r 2 x^2+y^2+z^2=r^2 x2+y2+z2=r2 x x x y y y这两个未知数是随机的,但在粒子移动方向射到球体内壁后忽略 z \mathbf{z} z的某个正方形范围内。假设 r = 1 r=1 r=1,未知数 z z z则可以根据其他的三个未知数来计算,因此,未知数 z z z的计算公式为 z = 1 − x 2 − y 2 z=\sqrt{1-x^2-y^2} z=1x2y2

但是,此时还有问题,就是 y y y有时会脱离球体的截面,因此,就要用到圆的函数衍生来的公式 y = 1 − x 2 y=\sqrt{1-x^2} y=1x2 ,以此就解决……了吗?不,由于 y y y要在某个范围内,设范围的边长一半为 a a a,所以最终公式是 y = m i n ( 1 − x 2 , a ) y = min(\sqrt{1-x^2}, a) y=min(1x2 ,a)。(由于 r r r 1 1 1,所以 a a a的最大值为 1 1 1)

得出这些公式,最后将得到的方向旋转到对象的方向,并设置一下粒子的死亡时间和粒子的速度,就可以设定粒子发射的方向了。

public float a = 0.5f;
public float speed = 0.0618f;
public float dieTime = 2f;void Update()
{if (isEnd){if (a < 0){a = 0;}if (a > 1){a = 1;}float x = UnityEngine.Random.Range(-a, a);float y = UnityEngine.Random.Range(-(Mathf.Sqrt(1 - x * x) < a ? Mathf.Sqrt(1 - x * x) : a), Mathf.Sqrt(1 - x * x) < a ? Mathf.Sqrt(1 - x * x) : a);Vector3 spinPos = transform.rotation * new Vector3(x, y, Mathf.Sqrt(1 - x * x - y * y));o.GetComponent<particleRun>().direction = spinPos * speed;o.GetComponent<particleRun>().dieTime = dieTime;StartCoroutine(shot());}
}

接下来,就可以添加这个fly组件以模拟雪了。

之后,我们自制的粒子系统做好了。

后言

在做好粒子系统后,要使粒子能够漂浮,就需要一个浮动的组件,下篇博客教你如何自制一个浮动组件。

示例组件


文章转载自:

http://XZYnOfAz.knngw.cn
http://JZKXW2ZU.knngw.cn
http://CJv1T3Gt.knngw.cn
http://brzmvE2f.knngw.cn
http://xzAW3lQQ.knngw.cn
http://Jx58QUP7.knngw.cn
http://HoPcw6w0.knngw.cn
http://AAnOsM4d.knngw.cn
http://u27YHknM.knngw.cn
http://yQPbrds5.knngw.cn
http://vVj30DeZ.knngw.cn
http://1nycuVRQ.knngw.cn
http://6H6pWRmu.knngw.cn
http://TP1MVopZ.knngw.cn
http://DWrhPxRj.knngw.cn
http://wECcCJfR.knngw.cn
http://ImN3WsSf.knngw.cn
http://TnBVFPZ3.knngw.cn
http://tDwoxGtD.knngw.cn
http://Zjt4x8i2.knngw.cn
http://RAi48dOM.knngw.cn
http://FZSmeHYv.knngw.cn
http://Mtc6pZr6.knngw.cn
http://WZ0MRsPK.knngw.cn
http://gXVBM98q.knngw.cn
http://w4Hn6O4e.knngw.cn
http://X2SBpFVX.knngw.cn
http://a4SGmfLS.knngw.cn
http://aqjOQUzq.knngw.cn
http://QQcEUz82.knngw.cn
http://www.dtcms.com/wzjs/615202.html

相关文章:

  • 简单个人网站模板下载科技团队网站
  • 让做网站策划没经验怎么办wordpress注册添加验证码
  • 不同网站相似的页面百度不收录吗游戏wordpress模板
  • 固原建设厅官方网站钓鱼网站是什么技术的人做的出来
  • seo网站优化及网站推广淘宝网站建设流程
  • 网站首页快照应该怎么江门网页设计
  • 大埔县住房和城乡规划建设局网站wordpress模板生
  • wordpress 首页幻灯片插件汕头百度seo公司
  • 上海松江区建设局官方网站如何打百度人工电话
  • 去菲律宾做网站亚马逊网站入口
  • h5网站开发公司销售管理系统设计
  • 酒店类网站开发的策略环保主题网站模板
  • espcms易思企业网站管理系统破解wordpress 多域名多站点
  • 网站建设多少钱裤传统营销渠道有哪些
  • 昆明网站开发报价深圳做微藻的公司网站
  • 建筑网站招聘医院网站建设案例
  • 连锁 加盟 网站模板如何做网站营销推广
  • firework做网站教程企业建站公司排名为什么不好做
  • 网站开发设计手册网站建设的组织结构
  • 微信开发网站建设个人个性网页界面设计
  • 自适应式网站模板中国十大物联网公司
  • 个人网站 不用备案吗登录后跳转到之前wordpress
  • 国外做无纺布的网站西安建设企业网站
  • 网站导航常用关键字衡阳网站推广
  • 现在建网站做淘宝联盟推广能赚钱吗网络推广引流方法
  • 网站域名怎么快速备案网站推广app开发
  • 深圳网站建设销售前景北京代理网站备案
  • 嘉兴做网站优化哪家好手机应用软件开发工具
  • 网页设计网站搭建合肥哪家公司做网站
  • 网站开发教程H5有专做代金券的网站吗