unity3d中怎么给unity 物体爆炸添加爆炸效果

工具修订记录最近更改媒体管理器网站地图登录注册&
UnityEngine
UnityEngine.SceneManagement
场景管理类
script:unityengine:classes:rigidbody:rigidbody.addexplosionforce
Rigidbody.AddExplosionForce 添加爆炸力
JavaScript => public function AddExplosionForce(explosionForce: float, explosionPosition: , explosionRadius: float, upwardsModifier: float = 0.0F, mode:
= ForceMode.Force):
C# => public void AddExplosionForce(float explosionForce,
explosionPosition, float explosionRadius, float upwardsModifier = 0.0F,
mode = ForceMode.Force);
Parameters 参数
explosionForce
The force of the explosion (which may be modified by distance).
爆炸力,可以通过距离来修改
explosionPosition
The centre of the sphere within which the explosion has its effect.
球体的中心。
explosionRadius
The radius of the sphere within which the explosion has its effect.
球体的半径,在半径内才有爆炸效果。
upwardsModifier
Adjustment to the apparent position of the explosion to make it seem to lift objects.
调节爆炸出现的位置,使其看起来像掀起对象。
The method used to apply the force to its targets.
用于应用到目标力的方式。
Description 描述
Applies a force to a rigidbody that simulates explosion effects.
应用一个力到刚体来模拟爆炸效果。
The explosion is modelled as a sphere with a certain centre position and r normally, anything outside the sphere is not affected by the explosion and the force decreases in proportion to distance from the centre. However, if a value of zero is passed for the radius then the full force will be applied regardless of how far the centre is from the rigidbody.
爆炸是一个具有中心点和半径的球体,在世界坐标空间;一般情况下,在球体外的任何东西都不会受到爆炸的影响并且力从中心到外按比例减小。然而,如果半径为0,那么力完全应用到刚体,而不管距离中心有多远。
By default, the direction of the force is the line going from the explosion centre to the rigidbody's centre of mass. If you pass a non-zero value for the upwardsModifier parameter, the direction will be modified by subtracting that value from the Y component of the centre point. For example, if you pass a value of 2.0 for upwardsModifier, the explosion will appear to be centred 2.0 units below its actual position for purposes of calculating the force direction (ie, the centre and the radius of effect are not modified). Using this parameter, you can easily make the explosion appear to throw objects up into the air, which often gives a more dramatic effect than a simple outward force.
默认,从爆炸中心到刚体的质量中心力的方向是线性。如果你upwardsModifier参数传递非0值,该方向将通过减去中心点Y轴的值修改。例如,如果upwardsModifier的值为2.0,那么该爆炸出现在实际位置中心点2单位下(如,中心和影响的半径不会被修改)。使用这个参数,你可以很容易地使爆炸似乎把物体扔到空中,这往往比单纯的外力更具戏剧性的效果。
Force can be applied only to an active rigidbody. If a GameObject is inactive, AddExplosionForce has no effect.
力仅应用于激活的刚体。如果游戏对象未激活,AddExplosionForce也将无效。
JavaScript:
#pragma strict
// Applies an explosion force to all nearby rigidbodies
public var radius: float = 5.0F;
public var power: float = 10.0F;
function Start() {
var explosionPos: Vector3 = transform.position;
var colliders: Collider[] = Physics.OverlapSphere(explosionPos, radius);
for (var hit: Collider in colliders) {
var rb: Rigidbody = hit.GetComponent.&Rigidbody&();
if (rb != null)
rb.AddExplosionForce(power, explosionPos, radius, 3.0F);
using UnityEngine;
using System.Collections;
// Applies an explosion force to all nearby rigidbodies
public class ExampleClass : MonoBehaviour {
public float radius = 5.0F;
public float power = 10.0F;
void Start() {
Vector3 explosionPos = transform.position;
Collider[] colliders = Physics.OverlapSphere(explosionPos, radius);
foreach (Collider hit in colliders) {
Rigidbody rb = hit.GetComponent&Rigidbody&();
if (rb != null)
rb.AddExplosionForce(power, explosionPos, radius, 3.0F);Unity3D学习笔记——组件之Effects(效果/特效)——Particle Sy... - CSDN博客
Unity3D学习笔记——组件之Effects(效果/特效)——Particle Sy...
Effects:效果/特效。
     &
     Particle System:粒子系统。可用于创建烟雾、气流、火焰、涟漪等效果。
& && && && &&&该文章出自&
     在Unity3D 3.5版本之后退出了新的shuriken粒子系统:
    &&
     添加组件之后的效果:
    &&
     其中的Open Editor按钮可以打开粒子编辑器,用于编辑复杂的粒子效果。
    由于shuriken粒子系统是模块化的管理方式,所以可以动态的添加模块:
    1.初始化模块:此模块是效果组件固有的模块。
    Duration:粒子发射器,发射粒子的时间。单位为S(秒)。
    Looping:是否开启。如果开启了循环,Duration值只要大于最小&#即可。
    Prewarm:是否开启预热。只有在开启的循环的时候,预热才有效果,粒子量相似发射了一个粒子周期。
    Start Delay:预热延迟。游戏开始多长时间后,预热开启。单位为S。
    Start Lifetime:粒子从发射器出来,到消失的时间。单位为S。
    Start Speed:粒子发射的速度。
    Start Size:粒子大小。
    Start Rotation:粒子的旋转角度。
    Start Color:粒子的颜色。
    Gravity Multiplier:设置重力对粒子的影响,数值越大影响越大。
    Inherit Velocity:速度继承。当粒子系统是运动的时候,粒子的速度会继承运动的速度。但粒子坐标系必须在世界坐标系。
    Simulation Space:坐标系是本身还是世界坐标系。
    Play On Awake:在游戏开始播放,但不影响Start Delay效果。
    Max Particles:粒子释放的最大数量,当达到最大数量时,停止释放粒子,当有粒子消失时继续释放。
    2.Emission Module(粒子发射模块)用于粒子发射的速率。或是某个特定时间发射大量的粒子,用于模拟爆炸的效果。
    &&
    每秒发射粒子数量。Bursts为某个时间点爆发出粒子的数量,这个时间必须在粒子Duration范围内。
    每米发射粒子数量。粒子发射器所在的游戏对象,移动的时候每米发射的粒子,但粒子坐标系必须在世界坐标系。
    3.Shape Model(形状控制模块):定义了粒子发射器的形状,位置及发射方向。
    球形粒子发射器:
      Radius:球形的半径。
      Emit from Shell:是否从表面发射粒子,还是从内部发射。
      Random Direction:是否启用随机速度。
      &
    半球发射器:
    &&
      &
    锥体发射器:
      Angle:椎体,上边开口的大小。
      Radius:半径的大小。
      Length:椎体的高度。只有当Emit from 值为Volume Shell或是Volume时可用。
      Emit From:粒子发射的位置。
      ——————Base:粒子发射源在椎体的内部的底面上,由底面开始发射。
      ——————Base Shell:粒子发射源在椎体底面的边缘,就是周长那一圈发射。
      ——————Volume:粒子发射源在椎体内部空间。
      ——————Volume Shell:粒子发射器在椎体整个表面上。没有底面。
      &
    立方体发射器:
    &&
      Box X:立方体长度。
      &
    网格发射器:
      Mesh:选择网格样式。
      ——————Vertex:粒子将从网格顶点发射。
      ——————Edge:粒子将从网格边缘(棱)发射。
      ——————Triangle:粒子将从网格的三角面发射。图形都是三角形组成的。
    4.生命周期速度模块:控制每一个粒子的速度。
    5.生命周期速度限制模块:
    &&
      Separate Axis:是否启用限制每一个轴。
      Speed:限制的速度。
      Dampen:阻尼。阻尼为1的时候表示在生命周期结束的时候,速度降到限定的速度。
    6.生命周期作用力模块:控制每一个粒子在生命周期内受到力的情况。
    &&
      Randomize:只有在Random Between Two Constants或Random Between Two Curves时才可启用。
            表示每一帧作用在粒子上的力是均匀随机产生的。
    7.生命周期颜色模块:控制每一个粒子在生命周期内颜色的变化。
      &
      &
    8:速度范围颜色变化控制模块:根据设置速度的范围和粒子的速度来改变粒子的颜色。
      &
    9:生命周期粒子大小模块:控制每个粒子在生命周期内,大小的变化。
      &
    10:速度范围粒子大小变化控制模块:根据速度的变化改变粒子的大小。
    &&
      &
    11:生命周期每个粒子的旋转速度:每秒粒子旋转的角度。
      &
    12:根据速度变化改变粒子的旋转速度:旋转速度不为固定常数时。
      &
    13:外部作用力倍增数:调整风对粒子的影响情况。
    14:碰撞模块:为粒子创建粒子碰撞效果,目前只支持平面碰撞。
    平面碰撞只支持6个平面,点击+号可以添加现在有的平面或是新建立一个。
    通过新建立了碰撞平面,会成为粒子物体的子物体。
      &
      &
    Visualization:碰撞平面的显示方式。
     ——————Grid:&
     ——————Solid:&
    Scale Plane:碰撞平面的大小。
    Dampen:阻尼系数。粒子速度撞击损耗程度。0~1。
    Bounce:反弹系数。0~2.系数越大,反弹角度越小。
    Min kill Speed:最小销毁速度。当速度小于这个值的时候,粒子消失。
    Particle Radius:粒子碰撞半径。最小值为0.01。
    世界碰撞:
    Collides With:碰撞层级。选择与那一层级碰撞。
    Collision Quality:碰撞质量。
    ——————High:每个粒子会每帧与场景做一次射线碰撞检测,需要注意的是,这样会增加CPU的负担,故在此情况下整个场景中的粒子数应当小于1000。
    ——————Medium:粒子系统在每帧会受到一次Parude Raycast Budget全局设定的影晌。
    ——————Low:与 中等效果相似 ,只 是粒子系统每4帧才受一次Parude Raycast Budget全局参数的影晌。
    ——————Voxel Size:碰撞缓存中的体素的尺寸,仅当Collision Quality为Medium和Low时可用。
    15:子粒子发射模块:在粒子出生,碰撞,消灭时可以调用其他粒子。
    16:序列帧动画纹理模块:
    Tiles:x水平分割的份数,y垂直分割的份数。
    Animation:Whole Sheet-整个页面即X,Y一起移动。
    Frame over Time:生命周期内,动画变幻的速率。
    Cycles:生命周期内变化几次动画。
    Animation:Single Row-从左到右行滚动。
    Random Row:随机行。
    Row:选择某一行,开始滚动,小于Tiles中的Y。
    17:粒子的渲染模块:
    Render Mode:渲染模式。
    ——————Billboard:面板渲染。
    ——————Vertical Billboard垂直渲染,此模式当面对摄像机时,粒子将与zX平面对齐
    ——————Horizontal Billboard:水平模式,此模式下粒子将沿Y轴对齐。
    ——————Stretched Billboard:拉伸渲染。
          &
    ————CameraScale:相机缩放。摄像机的速度对于粒子伸缩影晌的程度。speed Scale:通过比较粒子的速度决定粒子的长度。 LengthScale:通过比较粒子的宽度决定粒子的长度。
      &
    ——————Mesh:模式。
    18:属性:
    Resimulate:实时渲染。在改变参数的时候,场景中的粒子效果实时变化。
    Wireframe:选择时,将显示粒子的片面网格。
本文已收录于以下专栏:
相关文章推荐
提要所谓post effects,就是后处理,在渲染的流水线中属于最后的阶段,处理的对象是由场景生成的一张图片。常见的后处理效果有HDR,Motion Blur等,通过对屏幕空间的后处理,可以很方便的...
Effects:效果/特效。
     
     Particle System:粒子系统。可用于创建烟雾、气流、火焰、涟漪等效果。
     在Unity3D 3.5版本之后退出了新的shu...
先上一张效果图:(依旧是翰老弟,卡拉翰:我有话说%!#&¥&*%#¥%@%&¥#%¥#@*&%¥)OK,效果虽然没什么卵用,但我们还是进入今天的正题吧,插一个正弦函数的话题进来:首先,正弦函数曲线,如...
在《【Fracturing & Destruction】Unity3D的物体爆裂、炸裂、碎裂效果》(点击打开链接)提到了Unity3D的物体爆裂、炸裂、碎裂效果到底是用哪些组件去制作的,但是只是提到如...
网格顶点动画(变形动画)是针对于物体的形状可以随意变换并记录为关键帧的动画,虽然模型的顶点数据还是应该交给GPU绘制才是正道,CPU刷新模型顶点始终是个吃力不讨好的事(不过我好像至始至终就是在干吃力不...
将静态模型(带MeshFilter)按指定轴向、指定距离克隆一个镜像物体出来,思路很简单,将模型的顶点坐标按指定轴取反,并累加上设定的距离值,然后就完毕了!不过,因为镜像体的顶点镜像于之前模型的顶点,...
继第一篇,第二篇之后,MeshEditor2.0实现了网格破碎的功能,网上的unity破碎插件很多,不过想着可以以自己的方式实现也不失为一种乐趣,接下来我大致讲解一下破碎一个物体的流程,详细的注释全写...
代码实例1(点射发射一颗预制体子弹)
using UnityE
using System.C
public class Shoot : MonoB...
原文地址:/?p=327
继先前的一篇MeshEditor博客之后,MeshEditor第二版发布,这次在先前的基础上加入了为模型新增顶点以及删除...
MeshEditor2.0在这里(模型编辑器 + 破碎特效)
现在的电影里有很多妖魔在死亡后身体逐渐融化并下滑最后化为一滩黑水的情景,本次出于兴趣大致实现了这个流程,原理是控制模型的顶点向一个方向坍塌...
他的最新文章
讲师:何宇健
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)  群攻伤害指在一定范围内同时对多游戏对象按距离衰减计算伤害。对此有相关的接口,可以很方便的实现这个功能。
  Collider[]&Physics.OverlapSphere&(&Vector3&position,&float&radius,int&layerMask&)&;
&  Vector3&position:爆炸目标点
&  float&radius:爆炸半径
&  int&layerMask:影响层(指的是对某一层进行爆炸计算)
  rigidbody.AddExplosionForce(power, explosionPos, radius, 3.0F);//对刚体施加爆炸力,物理的视觉效果,具体我就不介绍了
  这个函数的返回值是,意指获取为中心,为半径,层中的碰撞体集合。获取这个数组之后,就可以进行伤害计算了。
  如果写得比较正规一点,你需要两个类,一个是生命体,一个是武器类。
武器类部分代码(主要是武器属性的声明):
public class ObjectWeapon
//爆炸范围
public float Range
set { range = }
public float Power
set { power = }
public float Damage
set { damage = }
private bool isAP;//是否穿甲
public bool IsAP
get { return isAP; }
set { isAP = }
  抽象生命体类
public interface Life
void Death();
void HPManager(float life);//生命数值计算
bool IsAP();//
然后就是炸弹爆炸的函数了,如下:
public void Bomb(ObjectWeapon weapon,Vector3 point,int layer)//爆炸函数
Collider[] others = Physics.OverlapSphere(point, weapon.Range,lay);//获取所有碰撞体
R//刚体,通过添加力实现爆炸的视觉效果
for (int i = 0; i & others.L i++) {
//others[i].
if ((other=others[i].GetComponent&Rigidbody&())) {//检测刚体
other.AddExplosionForce(weapon.Power,point,weapon.Range,10);//这个函数会自动根据距离给刚体衰减的力
if ((life = others[i].GetComponent&Life&()) != null && (!life.IsAP() || weapon.IsAP))//life.IsAP()意指生命体是否具有&装甲&,weapon.IsAP判断武器是否&穿甲&
{ //如果装甲,则需要能够穿甲的武器才能计算伤害,           //通过计算武器的杀伤范围与物体和爆炸点的距离来计算伤害,实现距离衰减
life.HPManager(weapon.Damage * (1-Vector3.Distance(others[i].transform.position, point) / weapon.Range));//根据距离衰减判断伤害值
//通过物体到爆炸点的距离与武器爆炸范围的比值,实现衰减效果} } }
代码很简单,主要是利用了碰撞检测,刚体的力,还有距离判断。
本文地址/jqg-aliang/p/4605944.html
阅读(...) 评论()扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
unity3D特效跟随物体运动我想要一个特效跟随物体运动,我用碰撞检测来特效实例化,然后用这个实例特效跟随物体运用,下面一点是我的码只能实例特效并在物体碰撞的时候产生(并不跟随物体运动),\x05Planee = GameObject.Find("Plane1");\x05\x05Instantiate (statelight,Planee.transform.position,Planee.transform.rotation);\x05\x05statelight.transform.parent = Planee.然后我在UPDATE里面 加上下面的一句一运行 很多警告,而且效果也不跟随物体运动,就直接显示在物体最开始的那个位置,我移动物体它也不跟随的.statelight.transform.position = Planee.transform.
淡定°6964
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
statelight是你要实例的物体么?这个物体不能直接控制,而要用一个变量保存,比如在声明一个全局变量GameObject sLight;然后在碰撞时sLight= Instantiate (statelight,Planee.transform.position,Planee.transform.rotation) as GameObject;之后再update中再设置这个sLight.
为您推荐:
其他类似问题
我也不怎么懂.
扫描下载二维码}

我要回帖

更多关于 unity3d 给物体添加力 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信