这里我们将介绍一种使用Unity3D制作激光器的方法unity激光粒子特效,它看起来不错并且对iPhone友好。 这并不意味着详尽无遗,它只是对 Unity *是什么*以及我如何在 iPhone 游戏性能方面管理它进行激光般的基本概述。 话虽如此,让我们开始执行一些设置步骤。
创建线条渲染器
0. 首先,在场景中创建一个空的游戏对象。
1. 然后,向您的游戏对象添加一个线条渲染器组件,并将游戏对象放置在激光炮尖端发射的位置。 为什么不直接使用粒子发射器呢? 这是因为椭球粒子发射器中存在错误。 即使您将所有 3 个轴上的椭球体大小设置为 0 或 0.0001,您也会看到它从 z 轴上的随机位置开始。 团结承认错误。 因此,为了解决这个问题,由于我们无法使用粒子发射器从大炮中发射尖端,因此我们必须首先显示一个线渲染器。 以下是一些可以与 LineRenderer 一起用作激光螺栓的典型设置:
激光器的一般 LineRenderer 特性
使用 Unity IDE 时应该如下所示,您可以在其中获取游戏对象:
使用大炮 LineRenderes 放置的游戏对象
我创建了一个名为 LaserControl 的类,当我希望它显示时,我就是这么做的:
公共 var isShowingLaser: boolean = FALSE; 函数 showLaser() { if (isShowingLaser) return; isShowingLaser = ***E, thisRenderer.enabled = ***E, 产生 WaitForSeconds(.05); 重置激光(); isShowingLaser = FALSE; }
正如您所看到的,它显示它 0.05 毫秒,然后通过调用重置激光将其隐藏,然后执行以下操作:
函数resetLaser() {this.renderer.enabled = FALSE;}
3. 因此,稍后创建您自己的类来扩展 MonoBehaviour,并将其附加到您添加到游戏对象的 LineRenderer。
创建粒子发射器
现在我们有了这个漂亮的 LineRenderer 激光2d素材,它从炮尖发出,看起来很漂亮,我们确实需要发送激光在自己的路径上“飞行”,对吗? 因此,概念是:在服务器上创建一个空的游戏对象,充当发射器的 3D 点,当发射器从特定的大炮发射激光时,它会“跳”到您身上。 由于粒子发射器计数为 1,因此会绘制它调用的所有粒子创作人,这使得它特别适合 iPhone 版本。 更好的是,它是一款非常轻量级的网络游戏。
0. 每把创建的枪都有 1 个新的游戏对象。 在本例中,我有 4 个 X-Wings,因此我为它们无中生有地创建了 4 个游戏对象。 然后给它们命名,如 TL、TR、BL、BR(左上、右上、左下、右下)。
以下是编辑器中突出显示的发射器位置之一的屏幕截图:
空游戏对象作为位置发出后
1. 将这些新游戏对象放置在场景中 LineRenderer 的末尾。 这将是发射器在被告知释放 (1) 之前跳转到的位置。
2. 现在,创建一个游戏对象。 然后unity激光粒子特效,选择 GameOject 并添加:1) 椭球粒子发射器,2) 粒子动画,3) 粒子渲染。
3. 在椭球粒子发射器中,设置局部速度 > Z = -500。 这本质上就是速度。 如果您想要更快的激光,请增加数量。 确保选择“模拟世界空间”,因为这将允许发射的粒子在发射后在世界空间中执行其路径。 将所有 3 个轴上的椭球体设置为 0。 最后,设置最小发射器范围 = 0.0001,以确保它尽可能从距离游戏对象中心最近的位置发射。 就像我说的,有了这个 bug,z 轴上有点混乱,但你永远不会在游戏中看到这一点。 保持粒子动画不变。
4.现在魔法制作激光的另一部分是粒子渲染。 您想要设置“Stretch Patricles”= Stretch,并使用大约 7 的长度比。您可以使用这个数字,因为这将决定螺栓长度的外观。 然后设置“最大粒径”= 0.01。
这是粒子发射器和渲染器设置的屏幕截图(动画器保留其默认值):
粒子发射器设置
综上所述
此时,场景中已有物理对象来管理激光。 剩下的最后一步是编写发射器,使其移动到每个发射器中 4 个游戏对象的位置,告诉 LineRenderer 进行 display(),然后发射 1 个粒子类 - BAM! 您现在在 Unity 中拥有激光了!
希望这有帮助,希望你有一个强盗日
文章来源:http://www.360doc.com/content/14/0401/11/12282510_365411493.shtml