unity3d坦克大战码
时间: 2023-11-30 20:04:00 浏览: 90
这里是一个简单的Unity3D坦克大战游戏的C#代码示例:
```csharp
using UnityEngine;
public class TankController : MonoBehaviour
{
public float moveSpeed = 5f; // 坦克移动速度
public float rotateSpeed = 20f; // 坦克转向速度
public GameObject bulletPrefab; // 子弹预制体
public Transform firePoint; // 开火点
public float bulletSpeed = 10f; // 子弹速度
public float bulletInterval = 0.5f; // 发射子弹的时间间隔
private float lastBulletTime = 0f; // 上次发射子弹的时间
private Rigidbody tankRigidbody; // 坦克刚体
void Start()
{
tankRigidbody = GetComponent<Rigidbody>();
}
void Update()
{
// 获取玩家输入
float h = Input.GetAxisRaw("Horizontal");
float v = Input.GetAxisRaw("Vertical");
// 移动坦克
Vector3 moveDir = new Vector3(h, 0, v).normalized;
tankRigidbody.MovePosition(transform.position + moveDir * moveSpeed * Time.deltaTime);
// 转向坦克
Vector3 rotateDir = new Vector3(0, h, 0);
Quaternion deltaRotation = Quaternion.Euler(rotateDir * rotateSpeed * Time.deltaTime);
tankRigidbody.MoveRotation(tankRigidbody.rotation * deltaRotation);
// 发射子弹
if (Input.GetKeyDown(KeyCode.Space) && Time.time - lastBulletTime > bulletInterval)
{
Fire();
lastBulletTime = Time.time;
}
}
void Fire()
{
GameObject bullet = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
Rigidbody bulletRigidbody = bullet.GetComponent<Rigidbody>();
bulletRigidbody.velocity = firePoint.forward * bulletSpeed;
}
}
```
这个脚本可以挂载在坦克上,控制坦克的移动、转向和发射子弹。需要注意的是,这个代码示例只是一个基础的框架,还需要根据实际需求进行修改和扩展。
阅读全文