unity飞机大战代码
时间: 2023-11-12 10:49:30 浏览: 238
以下是一个简单的Unity飞机大战游戏的代码示例,包含飞机的移动、射击和敌人的生成与移动。这里使用了C#语言编写。
```csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlaneController : MonoBehaviour
{
public float speed = 10f; // 飞机速度
public float bulletSpeed = 20f; // 子弹速度
public GameObject bulletPrefab; // 子弹预制件
public Transform bulletSpawn; // 子弹发射点
public float fireRate = 0.5f; // 射击频率
private float nextFire = 0.0f; // 下次射击时间
void Update()
{
// 飞机移动(按键控制)
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
transform.position += new Vector3(moveHorizontal, moveVertical, 0) * speed * Time.deltaTime;
// 射击
if (Input.GetButton("Fire1") && Time.time > nextFire)
{
nextFire = Time.time + fireRate;
GameObject bullet = Instantiate(bulletPrefab, bulletSpawn.position, bulletSpawn.rotation);
bullet.GetComponent<Rigidbody>().velocity = transform.forward * bulletSpeed;
Destroy(bullet, 2.0f); // 2秒后销毁子弹
}
}
}
public class EnemySpawner : MonoBehaviour
{
public GameObject enemyPrefab; // 敌人预制件
public float spawnInterval = 1f; // 敌人生成间隔
private float lastSpawn = 0f; // 上一次生成时间
void Update()
{
// 生成敌人
if (Time.time - lastSpawn > spawnInterval)
{
lastSpawn = Time.time;
GameObject enemy = Instantiate(enemyPrefab, transform.position, Quaternion.identity);
enemy.GetComponent<Rigidbody>().velocity = new Vector3(Random.Range(-5f, 5f), Random.Range(-5f, 5f), 0);
Destroy(enemy, 5.0f); // 5秒后销毁敌人
}
}
}
public class EnemyController : MonoBehaviour
{
public int health = 1; // 敌人生命值
public int score = 10; // 击败敌人得分
void OnTriggerEnter(Collider other)
{
// 子弹碰撞敌人
if (other.CompareTag("Bullet"))
{
Destroy(other.gameObject); // 销毁子弹
health--;
if (health <= 0)
{
GameManager.Instance.AddScore(score); // 增加得分
Destroy(gameObject); // 销毁敌人
}
}
}
}
public class GameManager : MonoBehaviour
{
public static GameManager Instance; // 单例
private int score = 0; // 得分
void Awake()
{
Instance = this;
}
public void AddScore(int value)
{
score += value;
Debug.Log("Score: " + score);
}
}
```
在场景中添加一个飞机、一个子弹发射点、一个敌人生成器和一个得分管理器,将上述脚本分别挂载到相应的游戏对象上即可。
阅读全文