📅  最后修改于: 2023-12-03 14:45:31.461000             🧑  作者: Mango
Pistol 1v1 是一款基于游戏引擎 Unity 的多人游戏,玩家之间进行一对一的火拼死战,使用各种类型的手枪武器互相射击,以最后存活的一方胜利。
该游戏采用 P2P 连接的方式,玩家通过输入对手的 IP 地址来建立连接,进行 1v1 的对战。玩家可以选择多种手枪武器,拾取弹药包和回复药包。当玩家被击中时,血量将减少,当血量为零时玩家将被击败。
using UnityEngine;
using Photon.Pun;
public class Shooting : MonoBehaviourPunCallbacks
{
public GameObject bulletPrefab;
public Transform bulletSpawn;
private void Update()
{
if (photonView.IsMine && Input.GetButtonDown("Fire1"))
{
Fire();
}
}
void Fire()
{
photonView.RPC("RPC_Fire", RpcTarget.All);
}
[PunRPC]
void RPC_Fire()
{
GameObject bullet = Instantiate(bulletPrefab, bulletSpawn.position, bulletSpawn.rotation);
bullet.GetComponent<Rigidbody>().velocity = bullet.transform.forward * 30;
Destroy(bullet, 2f);
}
}
注:以上代码是实现射击的核心代码,photonView.IsMine
表示当前是本地玩家,Input.GetButtonDown("Fire1")
表示鼠标左键点击。photonView.RPC
实现远程过程调用,向所有玩家广播发射子弹的事件。