游戏对象网络代码中的粒子系统

问题描述 投票:0回答:1

我正在使用游戏对象的网络代码开发逼真的多人游戏 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() 作为动画中的事件

c# unity-game-engine game-development multiplayer
1个回答
0
投票

想通了!

[ServerRpc]
public void MuzzleFlashGameobjectServerRpc()
{
GameObject go = Instantiate(muzzleflashGobj,
shootpoint.transform.position,shootpoint.transform.rotation);
go.GetComponent<NetworkObject>().Spawn();
 
}

将粒子系统更改为在枪口点实例化而不是激活,这有效

但只有当主持人拍摄时,其他客户端才能看到,但当客户端拍摄时,您在两个屏幕上都看不到它。有人知道这可能是什么吗?

© www.soinside.com 2019 - 2024. All rights reserved.