public uint Execute(PacketDistributed ipacket) { CG_TRIGGER_ENTER packet = (CG_TRIGGER_ENTER )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
void Update() { if (bTriggered) { return; } // 先简单地写一下检测主玩家触发 if (Singleton <ObjManager> .GetInstance().MainPlayer != null) { // 把玩家简化为腰部的一个半径0.25的球 if (IsSphereOverlap(Singleton <ObjManager> .GetInstance().MainPlayer.Position + Vector3.up * 0.5f, 0.35f)) { // 发送网络包并把自己删除 CG_TRIGGER_ENTER packet = (CG_TRIGGER_ENTER)PacketDistributed.CreatePacket(MessageID.PACKET_CG_TRIGGER_ENTER); packet.SetNObjId(0); // 现在只用于单机版副本的玩家触发功能,用不着这个字段 packet.SetNTriggerId(ID); packet.SendPacket(); bTriggered = true; Destroy(gameObject); } } }