我正在使用游戏对象的网络代码开发逼真的多人游戏 fps。 我一直在尝试让枪口闪光效果向其他玩家展示,
我对 Unity 有经验,但对网络代码没有经验,如果这是一个菜鸟问题,很抱歉
我的粒子系统连接到枪上并使用此功能:
public void shoot_muzzleflash()
{
muzzleFlash.Play();
}
我正在通过事件在动画中激活此功能。 我试过这个:
[ServerRpc]
public void CmdStartParticles()
{
RpcStart_shoot_muzzleflash();
shoot_muzzleflash();
}
[ClientRpc]
public void RpcStart_shoot_muzzleflash()
{
shoot_muzzleflash();
}
public void shoot_muzzleflash()
{
muzzleFlash.Play();
}
但是我无法选择 CmdStartParticles() 作为动画中的事件
想通了!
[ServerRpc]
public void MuzzleFlashGameobjectServerRpc()
{
GameObject go = Instantiate(muzzleflashGobj,
shootpoint.transform.position,shootpoint.transform.rotation);
go.GetComponent<NetworkObject>().Spawn();
}
将粒子系统更改为在枪口点实例化而不是激活,这有效
但只有当主持人拍摄时,其他客户端才能看到,但当客户端拍摄时,您在两个屏幕上都看不到它。有人知道这可能是什么吗?