-
Notifications
You must be signed in to change notification settings - Fork 4
何时算是进入了World和Space(创建space) ?
问: 我自己照着demo写的.... 我在Avatar的base部分的onEntitiesEnabled里调用了self.createInNewSpace(self), 并且服务端上Avatar的base也正确触发了onGetCell() 客户端里的Avatar也走了__init__()
但是我在客户端的Avatar里的__init__里 rigisterOut了 onEnterWorld 和 onEnterSpace 这两个函数, 却并没有触发...
我以为 调用了createInNewSpace或者createCellEntity后 即有了cell部分就算是进入Space了 客户端的onEnterSpace就应该触发了.. 难道不是这样的吗? 我还少做了什么事情?
答: createInNewSpace目前来说基本可以理解为创建一个cell上的space,因此Avatar想进入space不是调用createInNewSpace,因为还没有创建space。 调用createInNewSpace只是创建了一个space,因此玩家也没有进入和离开space一说。
除非以后引擎能对这一块做新支持,(将玩家创建在一个新的space上,既创建一个新的space之后让玩家进入该sapce)。
你应该用createCellEntity来讲玩家的cell创建在某个space中。
答: 创建space只需要几步 1:baseapp上createBaseLocally创建一个space实体,假设叫spaceEntity 2:通过这个space实体在cellapp上创建出真正意义的space出来, spaceEntity.createInNewSpace 3: spaceEntity的onGetCell回调之后就说明创建完毕了。
进入space: 你的玩家在baseapp上调用avatar.createCellEntity(得到你之前的spaceCellMailbox就行了), 如spaceEntity.cell。
已支持Avatar调用createInNewSpace同时进入space