已解决 【1.18.2Forge】自己添加的RenderLivingEvent事件中调用getEntity()方法无法获取自制Mod的生物

Deran_Lin

【Lv:1】

注册
2024/10/13
消息
4
金粒
926.00金粒
pAYOONq.md.png
代码如图,我想定义一个事件,给我自己做的模组的生物(class叫LoneShadowTest)渲染一个攻击判定框,用的是RenderLivingEvent,但是经过测试发现LivingEntity entity = event.getEntity();只能获取原版的生物,而无法获取自制模组的生物(如果去掉if判断则游戏中除了自制模组的生物以外,其他生物都能渲染出下面代码定义的线框)。
另外,使用LivingEvent时调用getEntityLiving可以获取模组生物,但是这种event没有posestack,定义新的PoseStack会出现“RenderSystem called from wrong thread”的错误。
有大佬知道该怎么解决这个问题吗?能换其他思路也行,十分感谢。(本人第一次做模组,很多东西都不懂,还望详解)
 
内容版权许可
作者保留一切权利,禁止转载
已解决,虽然还是不太懂,但应该是因为模组的生物用了Geckolib模型,模型渲染和原版生物有出入导致RenderLivingEvent的getEntity方法获取不到模组生物。只需要自己定义一个事件,然后在模组生物的renderer.java文件中的getEntityType方法里面发布自定义事件,然后再注册这个事件就行了。
 

在线会员

  • mingwang111
  • LaoZhaog123
  • jiantoG9
  • wuwuyiyi
  • zxcv2023
  • NanYuan
  • zyz2014
  • 泡泡龙
  • HYyy
  • zxczly
  • 星海拾遗
  • 崎司
  • mc_xiaoQAQ_
  • 深居
后退
顶部 底部