3,430
个编辑
MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针。
如果在编辑的过程中遇到了什么问题,可以去讨论板提问。
为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证。
MCBBS Wiki GitHub群组已上线!
您可以在回声洞中发表吐槽!
服务器状态监控。点击进入
本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>
| 第54行: | 第54行: | ||
那么<code>@SideOnly(Side.SERVER)</code>呢?和你想的是一样的,但是——在正常情况下,不要用这个修饰任何东西。前文说了,<code>@SideOnly(Side.CLIENT)</code>用于修饰那些负责渲染、播放音效的类、方法,而又说了,“逻辑客户端(Render Thread)主要用于处理和视觉、听觉有关的效果,还负责处理玩家的键鼠输入等”。因为'''物理服务端没有逻辑客户端线程''',所以<code>@SideOnly(Side.CLIENT)</code>实际上也起到了“把代码的执行限定在逻辑客户端”的作用。可问题是,物理客户端也会有逻辑服务端,比如有个萌新Modder觉得“逻辑服务端掌管的是游戏逻辑的进行”,给某个负责游戏逻辑进行的方法打了<code>@SideOnly(Side.SERVER)</code>,那糟了,装了你的模组就没法进行单人游戏了——因为两个物理端都有逻辑服务端。 | 那么<code>@SideOnly(Side.SERVER)</code>呢?和你想的是一样的,但是——在正常情况下,不要用这个修饰任何东西。前文说了,<code>@SideOnly(Side.CLIENT)</code>用于修饰那些负责渲染、播放音效的类、方法,而又说了,“逻辑客户端(Render Thread)主要用于处理和视觉、听觉有关的效果,还负责处理玩家的键鼠输入等”。因为'''物理服务端没有逻辑客户端线程''',所以<code>@SideOnly(Side.CLIENT)</code>实际上也起到了“把代码的执行限定在逻辑客户端”的作用。可问题是,物理客户端也会有逻辑服务端,比如有个萌新Modder觉得“逻辑服务端掌管的是游戏逻辑的进行”,给某个负责游戏逻辑进行的方法打了<code>@SideOnly(Side.SERVER)</code>,那糟了,装了你的模组就没法进行单人游戏了——因为两个物理端都有逻辑服务端。 | ||
那么这个注解,意义何在呢?答案是减少性能开销,比如,你在物理服务端调用渲染代码也没卵用,毕竟物理服务端是以命令行的形式体现的,你渲染给谁看呢?可能又有人问了:要减少性能开销,那么针对两个物理端分别写不同的代码不就好了?这也太麻烦了。所以,这就是@SideOnly的存在的意义——让同一个模组在不同的物理端上运行时,共享同一套代码。 | 那么这个注解,意义何在呢?答案是减少性能开销,比如,你在物理服务端调用渲染代码也没卵用,毕竟物理服务端是以命令行的形式体现的,你渲染给谁看呢?可能又有人问了:要减少性能开销,那么针对两个物理端分别写不同的代码不就好了?这也太麻烦了。所以,这就是@SideOnly的存在的意义——让同一个模组在不同的物理端上运行时,共享同一套代码。 | ||