unity 互联网射击游戏代码 有中文注释
时间: 2024-04-03 12:35:24 浏览: 97
以下是带有中文注释的 Unity 互联网射击游戏代码示例:
```
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class PlayerController : NetworkBehaviour {
// 子弹预制体
public GameObject bulletPrefab;
// 子弹生成点
public Transform bulletSpawn;
void Update () {
// 如果不是本地玩家则返回
if (!isLocalPlayer) {
return;
}
// 获取水平和垂直输入
float x = Input.GetAxis("Horizontal") * Time.deltaTime * 150.0f;
float z = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f;
// 将输入应用于旋转和移动
transform.Rotate(0, x, 0);
transform.Translate(0, 0, z);
// 如果玩家按下空格键,则开火
if (Input.GetKeyDown(KeyCode.Space)) {
CmdFire();
}
}
// 由服务器调用的方法,用于在所有客户端上生成子弹
[Command]
void CmdFire() {
// 实例化子弹
GameObject bullet = (GameObject)Instantiate(
bulletPrefab,
bulletSpawn.position,
bulletSpawn.rotation);
// 设置子弹速度
bullet.GetComponent<Rigidbody>().velocity = bullet.transform.forward * 6;
// 在所有客户端上生成子弹
NetworkServer.Spawn(bullet);
// 2秒后销毁子弹
Destroy(bullet, 2.0f);
}
// 当本地玩家对象创建时调用
public override void OnStartLocalPlayer() {
// 将本地玩家颜色设置为蓝色
GetComponent<MeshRenderer>().material.color = Color.blue;
}
}
```
希望这能帮助你更好地理解代码。
阅读全文