Unity3D坦克大战3(武器系统)

以下代码都是在tank下的,新建C#,命名为tankweapon.cs


1.实例化炮弹

将炮弹设置为 异物体 

通过public来建立对象,在环境中拖动具体事物来建立对应关系。有点图形化编程的意思。

实例化炮弹的代码(给tank),注意体会有趣的怪现象。

using UnityEngine;
using System.Collections;

public class tankweapon : MonoBehaviour {

	public GameObject shell;//炮弹的实体
	public float shootPower;
	public Transform shootPoint;//炮弹的起始发射位置

	void Update () {
		if(Input.GetKeyDown(KeyCode.Space)){
			//fire
			shoot();
		}
	}

	void shoot(){
		Instantiate(shell, shootPoint.position, shootPoint.rotation);//实例化炮弹
	}
}

2.发射炮弹:增加力 / 增加初速度

using UnityEngine;
using System.Collections;

public class tankweapon : MonoBehaviour {

	public GameObject shell;//炮弹的实体
	public float shootPower;
	public Transform shootPoint;//炮弹的起始发射位置

	void Update () {
		if(Input.GetKeyDown(KeyCode.Space)){
			//fire
			shoot();
		}
	}

	void shoot(){
		GameObject newShell = Instantiate(shell, shootPoint.position, shootPoint.rotation) as GameObject; //实例化炮弹,as类型转化
		Rigidbody r = newShell.GetComponent<Rigidbody>();//实物体
		r.velocity = shootPoint.forward * shootPower;//设置炮弹速度
	}
}

3.增加简易火焰效果

在shell中添加pointlight,设置颜色后保存(拖动覆盖,字体变蓝)。


4.添加发射炮弹声音,扬尘效果

Prefabs中有粒子效果:DustTrail。

第一、将子弹shell拉到Sence中,给一个rigidBody,设置为Box。把DustTrail也拉进来,并调整DustTrial到炮弹的尾部。

第二、保存合体(异形体)到Prefab中。OK


加发射声音,在tank中添加component: audio source,拖动声音到audio clip

代码如下:

using UnityEngine;
using System.Collections;

public class tankweapon : MonoBehaviour {

	public GameObject shell;//炮弹的实体
	public float shootPower;
	public Transform shootPoint;//炮弹的起始发射位置
	private AudioSource audioSource;

	void Start(){ //大写S
		audioSource = GetComponent<AudioSource> ();
	}

	void Update () {  //每帧被调用
		if(Input.GetKeyDown(KeyCode.Space)){
			//fire
			shoot();
		}
	}

	void shoot(){
		GameObject newShell = Instantiate(shell, shootPoint.position, shootPoint.rotation) as GameObject; //实例化炮弹,as类型转化
		Rigidbody r = newShell.GetComponent<Rigidbody>();//实物体
		r.velocity = shootPoint.forward * shootPower;//设置炮弹速度
		audioSource.Play();
	}
}
设置



5.打中之后炮弹爆炸,并且消失

爆炸的粒子效果:Prefabs中的ShellExplosion。

注意:这个效果是要添加到炮弹shell中的。

在Scripts中新建C#,命名为shell,代码如下:

using UnityEngine;
using System.Collections;

public class shell : MonoBehaviour {
	
	public GameObject explosionEffect;

	void OnCollisionEnter(){
		Instantiate (explosionEffect,transform.position,transform.rotation);//实例化一个物体
		Destroy(gameObject);//删除自身
	}
}
拖动脚本到shell中,OK


6.炮弹爆炸声音

可以在爆炸的粒子效果中添加声音元素

add component,audio resource,audio clip

设置如下:



8.目标墙体

GameObject中的Cube,可以复制,拖动,设置为刚体,质量为1(可以只设置一个,然后复制出来的cube都有这性质)。

放好之后,就可以用大炮轰啦~~~~







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值