unity3D飞机大战代码
时间: 2023-10-05 22:06:41 浏览: 226
以下是一个简单的Unity3D飞机大战游戏的代码示例,可以作为参考:
```csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float speed = 10.0f;
public float tilt = 4.0f;
public float xMin, xMax, zMin, zMax;
public GameObject shot;
public Transform shotSpawn;
public float fireRate = 0.5f;
private Rigidbody rb;
private float nextFire = 0.0f;
void Start ()
{
rb = GetComponent<Rigidbody>();
}
void Update ()
{
if (Input.GetButton("Fire1") && Time.time > nextFire)
{
nextFire = Time.time + fireRate;
Instantiate(shot, shotSpawn.position, shotSpawn.rotation);
}
}
void FixedUpdate ()
{
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
rb.velocity = movement * speed;
rb.position = new Vector3(
Mathf.Clamp(rb.position.x, xMin, xMax),
0.0f,
Mathf.Clamp(rb.position.z, zMin, zMax)
);
rb.rotation = Quaternion.Euler(
0.0f,
0.0f,
rb.velocity.x * -tilt
);
}
}
```
这个脚本控制玩家的飞机移动和射击。使用 `Input.GetAxis` 获取水平和垂直移动的输入,使用 `Rigidbody.velocity` 设置飞机的速度。`Mathf.Clamp` 用于限制飞机的运动范围。`Quaternion.Euler` 用于控制飞机的倾斜角度。
此外,在脚本中还可以添加敌人生成、敌人移动、敌人攻击、碰撞检测等逻辑。
阅读全文