Unity 坦克大战:玩家坦克 C# 脚本示例

本示例展示了如何在 Unity 环境中使用 C# 脚本编写玩家坦克控制逻辑,包括移动、旋转、射击等功能。

using UnityEngine;

public class PlayerTankController : MonoBehaviour
{
    public float moveSpeed = 10f;
    public float rotateSpeed = 100f;
    public GameObject bulletPrefab;
    public Transform bulletSpawnPoint;
    public float bulletSpeed = 100f;
    public float fireCooldown = 0.5f;

    private float fireTimer = 0f;

    void Update()
    {
        // 坦克移动
        float move = Input.GetAxis('Vertical') * moveSpeed * Time.deltaTime;
        float rotate = Input.GetAxis('Horizontal') * rotateSpeed * Time.deltaTime;
        transform.Translate(Vector3.forward * move);
        transform.Rotate(Vector3.up * rotate);

        // 坦克射击
        fireTimer += Time.deltaTime;
        if (Input.GetButton('Fire1') && fireTimer >= fireCooldown)
        {
            Fire();
            fireTimer = 0f;
        }
    }

    void Fire()
    {
        GameObject bullet = Instantiate(bulletPrefab, bulletSpawnPoint.position, bulletSpawnPoint.rotation);
        bullet.GetComponent<Rigidbody>().velocity = bullet.transform.forward * bulletSpeed;
        Destroy(bullet, 5f);
    }
}

脚本功能:

  • 移动: 使用 Input.GetAxis('Vertical') 获取垂直轴输入,控制坦克的前后移动。
  • 旋转: 使用 Input.GetAxis('Horizontal') 获取水平轴输入,控制坦克的左右旋转。
  • 射击: 使用 Input.GetButton('Fire1') 获取射击按钮输入,控制坦克发射子弹。

脚本参数:

  • moveSpeed: 坦克移动速度。
  • rotateSpeed: 坦克旋转速度。
  • bulletPrefab: 子弹预制体。
  • bulletSpawnPoint: 子弹发射点。
  • bulletSpeed: 子弹速度。
  • fireCooldown: 射击冷却时间。

使用方法:

  1. 将该脚本添加到玩家坦克游戏物体上。
  2. 在 Inspector 面板中设置脚本参数。
  3. 在场景中放置子弹预制体和发射点。

注意:

  • 该脚本使用 Input.GetAxisInput.GetButton 来获取玩家输入,需要确保 Unity 项目的输入设置正确。
  • 该脚本中的 Destroy(bullet, 5f) 用于在 5 秒后销毁发射的子弹,你可以根据需要调整销毁时间。

更多示例:

  • 玩家坦克生命值和护甲值
  • 坦克碰撞检测
  • 坦克升级系统

通过该示例代码,你可以学习如何使用 C# 脚本控制玩家坦克在游戏中的行为。希望本示例能够帮助你更好地理解 Unity 游戏开发。

Unity 坦克大战:玩家坦克 C# 脚本示例

原文地址: https://www.cveoy.top/t/topic/nElr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录