unity之飞机大战

    欢迎来到unity学习unity培训unity企业培训教育专区,这里有很多U3D资源U3D培训视频U3D教程U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。

     今天我想和大家分享的是一个飞机大战的项目。这是一个比较综合的项目。

    首先,我们要想的是玩家是一个飞机,玩家可以使用A.D.S.W.QE四个键位来控制飞机,然后按鼠标左键发射子弹。当敌机生命值为0时,敌机将爆炸销毁。当我方飞机生命值为0时飞机也将会炸毁,表示着游戏结束。好了,游戏的设计规则有了以后。现在就会开始做这个游戏了。

 1 .玩家飞机实现发子弹并且使用A.D.S.W.QE四个键位来控制飞机

float x = Input .GetAxis ("Horizontal") * Time.deltaTime * speed;

float z = Input .GetAxis ("Vertical") * Time .deltaTime * speed;
transform .Translate (-x, 0, -z);
if (Input.GetKey (KeyCode.Q)) {

transform .Translate (new Vector3 (0, 2, 0) * Time.deltaTime * speed);
}
if (Input.GetKey (KeyCode.E)) {

transform .Translate (new Vector3 (0, -2, 0) * Time.deltaTime * speed);
}
if (Input.GetButton ("Fire1")) {
// GameObject.Instantiate(bullet);
GameObject go = GameObject.Instantiate (Rocket, transform.position, Quaternion.identity) as GameObject;
go.rigidbody.AddForce (0, 0, -10000);
Destroy (go, 0.1f);

2 敌方的飞机可以发子弹跟踪你,并且向你飞来。

void Update()
{
transform.Translate(0, 0, -speed * Time.deltaTime);
if(player!=null ){timer -= Time.deltaTime;
if (timer <= 0)
{
timer = 1;
Vector3 pos = enemy.position - player.position;
GameObject.Instantiate(enemyRocket, enemy.position, Quaternion.LookRotation(pos));
}

}
}

3.碰撞

void OnTriggerEnter(Collider col){
if (col.tag=="myRocket"){
lifeTime --;
print(lifeTime );
if (lifeTime <=0){
Destroy (this.gameObject );
}
}
}

void OnTriggerEnter(Collider col){
if (col.tag=="emeryRocket"){
lifeTime --;
print(lifeTime );
if (lifeTime <=0){
Destroy (this.gameObject );
}
if (col.tag=="Enemy"){

Destroy (this.gameObject );
}

}



发布了37 篇原创文章 · 获赞 2 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览