unity3d射击游戏教程
时间: 2023-12-09 21:36:58 浏览: 99
以下是一个简单的Unity3D射击游戏教程,包括玩家射击和敌人受伤的效果:
1.创建一个空场景,并添加一个玩家角色和一个敌人角色。
2.为玩家角色添加一个摄像机,并将其设置为第一人称视角。
3.为玩家角色添加一个武器模型,并将其设置为玩家手中的位置。
4.为武器模型添加一个枪口位置,并将其设置为武器的前端。
5.为玩家角色添加一个脚本,以便在按下射击按钮时发射子弹。
```csharp
public class PlayerController : MonoBehaviour
{
public Transform shooterPoint;
public GameObject bulletPrefab;
public float bulletSpeed = 100f;
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
Shoot();
}
}
void Shoot()
{
GameObject bullet = Instantiate(bulletPrefab, shooterPoint.position, shooterPoint.rotation);
Rigidbody rb = bullet.GetComponent<Rigidbody>();
rb.velocity = shooterPoint.forward * bulletSpeed;
}
}
```
6.为敌人角色添加一个脚本,以便在被子弹击中时受伤。
```csharp
public class EnemyController : MonoBehaviour
{
public int health = 100;
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "Bullet")
{
health -= 10;
if (health <= 0)
{
Die();
}
}
}
void Die()
{
Destroy(gameObject);
}
}
```
7.为子弹添加一个脚本,以便在击中敌人时产生弹孔特效。
```csharp
public class BulletController : MonoBehaviour
{
public GameObject bulletHole;
public float lifeTime = 5f;
void Start()
{
Destroy(gameObject, lifeTime);
}
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "Enemy")
{
collision.gameObject.GetComponent<EnemyController>().health -= 10;
}
Instantiate(bulletHole, collision.contacts[0].point, Quaternion.FromToRotation(Vector3.up, collision.contacts[0].normal));
Destroy(gameObject);
}
}
```
阅读全文