美文网首页我的世界Minecraft
关于Minecraft mod开发过程中客户端实体不渲染的问题

关于Minecraft mod开发过程中客户端实体不渲染的问题

作者: 练习时长两年半的写作练习生 | 来源:发表于2023-03-13 18:21 被阅读0次

最近在进行Minecraft mod开发过程中,遇到了客户端实体不渲染的问题,详细内容如下。
开发mod版本:Minecraft 1.16.5 Forge

遇到的问题

我要写的实体是一个投掷物,继承原版ProjectileItemEntity类,这是一个需要实现IRendersAsItem接口的抽象类,所以这个投掷物应该以物品形式渲染。
我遇到的问题是:该物品在服务端能正常运作(被该投掷物击中的生物会受到伤害),但是客户端并不显示该实体,甚至按 F3+B 也不显示碰撞箱。在已确认实现了渲染器 Renderer 以及试图修改ResourceLocation后,仍未解决问题。(这说明与ResourceLocation毫无关系)

解决办法

实体在服务端正常运作而在客户端不显示,这是由于服务端和客户端的通信问题。解决方法是在实现的类中加入以下代码(该内容在 Boson 1.16 Mod 教程中有提到,不过被我忽略了):

@Override
public IPacket<?> createSpawnPacket() {
    return NetworkHooks.getEntitySpawningPacket(this);
}

还有一点需要注意的是,不同版本的函数名称可能有一定差别,需要参考实际使用的 Minecraft 反编译源码中的函数名,直接复制粘贴其他模组的代码会出问题。

参考资料

相关文章

网友评论

    本文标题:关于Minecraft mod开发过程中客户端实体不渲染的问题

    本文链接:https://www.haomeiwen.com/subject/nlicrdtx.html