召喚實體的必要三步
召喚實體有三個不能缺少的步驟,少了任何一個都會導(dǎo)致召喚失敗。
召喚只應(yīng)該在服務(wù)端線程進行,也就是isRemote = false的情況。否則,要么是刷出來的東西被打一下就無敵,且聯(lián)機時別人看不到,要么是直接刷出倆,有一個有問題。在極少數(shù)情況下有用于渲染的純前端召喚(例如玩家身上插的箭矢)不在此列。
三個步驟:
1,new 一個對應(yīng)實體的對象出來。高版本的寫法略有差別。
2,設(shè)置位置。如果不加設(shè)置,默認會出現(xiàn)在0、0、0的位置,一般不在玩家視野,就和沒召喚成功沒兩樣。少數(shù)實體,如火焰彈,會在構(gòu)造函數(shù)中內(nèi)嵌位置的設(shè)置,這種情況下不需要明確地再寫一條setPosition
3,調(diào)用世界的召喚接口。不這樣做的話,實體仍然不存在與世界中。
無論是原版生物,還是自己做的模組生物,又或者是不是生物的子彈實體,都是這個道理。
但是少數(shù)東西是特例,比如閃電(他也是實體?。?,閃電是
這樣寫的,并非spawnEntity,而是addWeatherEffect。