unity通过服务器同步位置,在客户端和服务器,Unity3D之间同步ParticleSystem

好的,因此您的第二个engineSpeedPS可以在网络代码中忽略-只需使用isClient或类似功能在客户端本地播放即可。它不需要通过网络。

我将只讨论设置另一个您想在任何地方播放的粒子效果。它在Client对象上,这意味着该对象由客户端控制。客户端应告诉服务器该播放粒子了,然后服务器告诉所有其他已连接的客户端。粒子可能不应该在清醒状态下播放,因为每个人都会在不同的时间醒来。

因此,您应该拥有自己的代码来决定播放粒子的时间。完成后,它会通过命令告诉服务器。请注意,这应该在Player对象上-否则,您需要分配客户权限。

[Command]

public void CmdStartParticles()

{

}

因此,负责客户调用CmdStartParticles()。[Command]标记意味着它不会在本地执行,而是在服务器上执行。

那么我们要服务器做什么?它应该告诉所有客户播放粒子,也要自己播放。

[ClientRpc]

public void RpcStartParticles()

{

DoStartParticles();

}

public void DoStartParticles()

{

particles.Play();

}

第一个功能只能由服务器调用,并且作用于所有连接的客户端。第二个功能只是实际操作的便捷方式

在CmddStartParticles函数中,您将只调用RpcStartParticles()和DoStartParticles()(因为您希望服务器也播放它们,而RpcStartParticles仅影响客户端)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值