Unity 模仿官方例子 点击时添加爆炸力
来源:互联网 发布:威客网络兼职万创中国 编辑:程序博客网 时间:2024/04/25 12:51
这里需要有一些爆炸的粒子特效,如果大家没有的话,我会打包在项目中,这是我在网上下载的一些特效,里面有很多特效,我就只用了其中一个来做测试。
爆炸特效的路径在:Assert–>JMO Assert–>WarFX–>Explosions
首先创建好一个3D项目,做出如下类似的场景。
注意:需要给立方体添加Rigidbody(刚体)组件,不然没有效果。
给摄像机添加一个Boom脚本,编辑如下:
using UnityEngine;using System.Collections;public class Boom : MonoBehaviour { public float radius = 10f; //定义一个要添加爆炸力的半径 public float power = 600f; //定义一个爆炸力 public GameObject particle; //得到播放粒子特效的物体 // Update is called once per frame void Update () { //当左键按下时 if (Input.GetMouseButtonDown(0)) { //Camera.main:得到主摄像机 //Input.mousePosition:得到鼠标现在的位置 //我的理解是从主摄像机到鼠标现在的点发射一条射线 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //光线投射碰撞 RaycastHit hit; //函数是对射线碰撞的检测,当碰撞到物体时,返回一个碰撞信息 if (Physics.Raycast(ray, out hit)) { Vector3 point = hit.point;//得到碰撞点的坐标 //实例化出这个物体 Instantiate(particle, point, Quaternion.identity); //Physics.OverlapSphere():球体投射,给定一个球心和半径,返回球体投射到的物体的碰撞器 Collider[] colliders = Physics.OverlapSphere(point, radius); foreach (Collider hits in colliders) //遍历碰撞器数组 { //如果这个物体有刚体组件 if (hits.GetComponent<Rigidbody>()) { //给定爆炸力大小,爆炸点,爆炸半径 //利用刚体组件添加爆炸力AddExplosionForce hits.GetComponent<Rigidbody>().AddExplosionForce(power, point, radius); } } } } }}
在随便给一个粒子特效添加一个Destroy脚本,并编辑:
using UnityEngine;using System.Collections;public class DestroyParticle : MonoBehaviour { // Use this for initialization void Start () { //开启协程 StartCoroutine(CreateParticle()); } IEnumerator CreateParticle() { //当粒子还在播放中 while (gameObject.GetComponent<ParticleSystem>().isPlaying) { yield return null; //条到下一帧 } Destroy(gameObject); //粒子播放结束 }}
注意:需要把添加了此脚本的例子特效添加到摄像机脚本的公有属性 particle 中。
然后现在运行,就可以看见效果了。
项目地址:http://pan.baidu.com/s/1eREMwG6 密码:hy89
我的场景就在Assert目录下,大家注意。。
本博客用作新手学习讨论,如有不好或错误的地方也请指出来,谢谢。
1 0
- Unity 模仿官方例子 点击时添加爆炸力
- Unity中的爆炸力
- Rigidbody.AddExplosionForce 添加爆炸力
- Rigidbody.AddExplosionForce 添加爆炸力
- unity 插件iTween 官方例子学习心得
- Unity UGUI按钮动态添加点击事件
- 一个点击添加button的例子
- 爆炸力代码
- Unity3D爆炸力
- Unity用代码给按钮添加点击事件
- Unity 怎么像OnClick()一样添加更多其他点击事件
- KING_U3D学习之Unity Test Tools(一)_官方例子解析
- Unity官方文档【1】
- Unity官方文档【2】
- unity官方文档笔记
- 最完美最官方的做法给RecylerView添加点击,长按等事件
- IOS模仿UIButton添加事件
- Add touch listener to 3D object in unity(Unity中给3D物体添加按钮点击功能)
- 代理模式之动态代理(结构型)
- (质因子打表记录素数的位置)HDU Largest prime factor
- 一致性hash算法
- Codeforces 635C XOR Equation (脑洞)
- ARP
- Unity 模仿官方例子 点击时添加爆炸力
- zabbix Windows 客户端环境部署
- Mac终端命令自动补全
- Round350div2简易题解(cf)
- OpenGLES:: GLKView是如何工作的
- Frosh Week(HDU_3743)归并排序+逆序数对
- RIP
- dumpstate log的一些总结(持续更新)
- 这个笑话网:连环脑筋急转弯