召唤实体的必要三步
召唤实体有三个不能缺少的步骤,少了任何一个都会导致召唤失败。
召唤只应该在服务端线程进行,也就是isRemote = false的情况。否则,要么是刷出来的东西被打一下就无敌,且联机时别人看不到,要么是直接刷出俩,有一个有问题。在极少数情况下有用于渲染的纯前端召唤(例如玩家身上插的箭矢)不在此列。
三个步骤:
1,new 一个对应实体的对象出来。高版本的写法略有差别。
2,设置位置。如果不加设置,默认会出现在0、0、0的位置,一般不在玩家视野,就和没召唤成功没两样。少数实体,如火焰弹,会在构造函数中内嵌位置的设置,这种情况下不需要明确地再写一条setPosition
3,调用世界的召唤接口。不这样做的话,实体仍然不存在与世界中。
无论是原版生物,还是自己做的模组生物,又或者是不是生物的子弹实体,都是这个道理。
但是少数东西是特例,比如闪电(他也是实体!),闪电是
这样写的,并非spawnEntity,而是addWeatherEffect。