Unity 2D炸弹爆炸的效果制作
2015-02-04 18:32
806 查看
最近在做一个打砖块的游戏,其实遇到发射炸弹,然后炸掉一个范围内的物体的问题。
现在将我的做法记录下来,以备日后使用。
using UnityEngine;
using System.Collections;
public class BombControl : MonoBehaviour {
public GameObject explosion;//爆炸效果的引用,这里我用的是从网上下载的Prefab
public float radius=3F;//爆炸范围的半径
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
//如果炸弹没爆炸,则当炸弹的位置低于-4的时候,自动销毁炸弹
if (this.gameObject.transform.position.y < -4) {
Destroy(this.gameObject);
}
}
void OnCollisionEnter2D(Collision2D col){
string tag = col.gameObject.tag;
//如果炸弹撞到砖块(这里我将砖块分为block_general,block_reward,block_move,block_firm)或者墙体(TopWall,Wall)
if (tag == "block_fixed" || tag == "block_general" || tag == "block_reward" || tag == "block_move" || tag == "block_firm" || tag=="TopWall" || tag=="Wall") {
//实例化一个爆炸效果
Instantiate(explosion,gameObject.transform.position,Quaternion.identity);
//获得以炸弹为中心的一定范围内的所有对象
Collider2D[] colliders= Physics2D.OverlapCircleAll(gameObject.transform.position,radius);
//如果炸弹碰到的是砖块,则销毁砖块
foreach(Collider2D collider in colliders){
string co_tag=collider.gameObject.tag;
if(co_tag == "block_fixed" || co_tag == "block_general" || co_tag == "block_reward" || co_tag == "block_move" || co_tag == "block_firm"){
Destroy(collider.gameObject);
}
}
//最后销毁炸弹本身
Destroy(this.gameObject);
}
}
}
现在将我的做法记录下来,以备日后使用。
using UnityEngine;
using System.Collections;
public class BombControl : MonoBehaviour {
public GameObject explosion;//爆炸效果的引用,这里我用的是从网上下载的Prefab
public float radius=3F;//爆炸范围的半径
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
//如果炸弹没爆炸,则当炸弹的位置低于-4的时候,自动销毁炸弹
if (this.gameObject.transform.position.y < -4) {
Destroy(this.gameObject);
}
}
void OnCollisionEnter2D(Collision2D col){
string tag = col.gameObject.tag;
//如果炸弹撞到砖块(这里我将砖块分为block_general,block_reward,block_move,block_firm)或者墙体(TopWall,Wall)
if (tag == "block_fixed" || tag == "block_general" || tag == "block_reward" || tag == "block_move" || tag == "block_firm" || tag=="TopWall" || tag=="Wall") {
//实例化一个爆炸效果
Instantiate(explosion,gameObject.transform.position,Quaternion.identity);
//获得以炸弹为中心的一定范围内的所有对象
Collider2D[] colliders= Physics2D.OverlapCircleAll(gameObject.transform.position,radius);
//如果炸弹碰到的是砖块,则销毁砖块
foreach(Collider2D collider in colliders){
string co_tag=collider.gameObject.tag;
if(co_tag == "block_fixed" || co_tag == "block_general" || co_tag == "block_reward" || co_tag == "block_move" || co_tag == "block_firm"){
Destroy(collider.gameObject);
}
}
//最后销毁炸弹本身
Destroy(this.gameObject);
}
}
}
相关文章推荐
- 制作爆炸效果
- Box2D物理引擎模拟炸弹爆炸效果
- 【Unity3D基础教程】给初学者看的Unity教程(四):通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D
- 处理2D图像和纹理——创建一个3D爆炸效果,简单的粒子系统
- Unity的【CaronteFX】插件制作简单的掉落物理效果(1)
- 【Unity 3D 游戏引擎】使用 2DToolkit 插件 制作2D精灵动画
- Unity制作GIF效果
- 制作爆炸效果
- 关于Unity5.5中2D动画的制作
- 用Unity的Projector制作基地范围效果
- 用pyplot在坐标系中画图像[制作虚幻效果],这样就可以进行图像变换了,如2d到3d
- Unity_制作Loading场景进度条_效果实现
- 【Unity 2017.3 制作安卓2D单机手游】2.这就开始做
- 【Unity5.x Shaders】使用Shader制作河流效果
- Unity炸弹爆炸伤害(群攻伤害)
- unity 2D游戏开发 制作帧动画的两种方法
- J2ME 2D小游戏入门之旅(五) 实现爆炸效果、并加入道具导弹
- Unity 2D游戏制作
- PS制作爆炸效果
- 分享2D Unity游戏的动画制作经验