/* @brief: 响应服务器同步位置事件入口 * @param: args 该事件相应参数列表 * @return void */ public static void on_location(VarList args) { string strIdent = args.GetString(0); IObject cobj; if (mObjectsDic.TryGetValue(strIdent, out cobj) && cobj != null) { cobj.OnLocation(); // 更新玩家AOI RangeTools.MotifyObjectAoi(mRole, cobj); } }
/* @brief: 响应服务器移动事件入口 * @param: args 该事件相应参数列表 * @return void */ public static void on_moving(VarList args) { string strIdent = args.GetString(0); IObject cobj; if (mObjectsDic.TryGetValue(strIdent, out cobj) && cobj != null) { cobj.OnMoving(); // 更新玩家AOI RangeTools.MotifyObjectAoi(mRole, cobj); } else { LogSystem.LogWarning("Recive on_moving , but ", strIdent, " you can't find in mObjects"); } }
public static void CallAddObject(string strIdent) { try { Game game = Game.Instance; if (game == null || game.mGameClient == null) { return; } IGameSceneObj sceneObj = game.mGameClient.GetSceneObj(strIdent); if (sceneObj == null) { return; } IObject cObj = null; int type = 0; if (!sceneObj.QueryPropInt("ObjectType", ref type)) { LogSystem.Log("could not find type : ", strIdent); return; } string strModel = string.Empty; if (!sceneObj.QueryPropString("ResourcePath", ref strModel)) { LogSystem.Log("could not find ResourcePath : ", strIdent); return; } ObjectType ObjType = (ObjectType)type; switch (ObjType) { case ObjectType.ObjectType_Player: if (game.mGameClient.IsPlayer(strIdent)) { cObj = new CRoleObject(); ObjectManager.mRole = cObj as CRoleObject; } else { cObj = new CPlayerObject(); } break; case ObjectType.ObjectType_Npc: cObj = new CNpcObject(); break; case ObjectType.ObjectType_Monster: cObj = new CMonsterObject(); break; case ObjectType.ObjectType_Soldier: case ObjectType.ObjectType_Creeps: break; case ObjectType.ObjectType_Born: break; } if (cObj != null) { cObj.mObjectType = ObjType; cObj.mGameSceneObj = sceneObj; cObj.mObjectRes = strModel; cObj.mStrIdent = strIdent; cObj.OnAddObject(); ObjectManager.AddObject(strIdent, cObj); if (cObj is CRoleObject) { //GUIManager.CacheView<CharacterPanel>(); //GUIManager.CacheView<PlayerMainViewPanel>(); //GUIManager.CacheView<PlayerControlPanel>(); //GUIManager.CacheView<PlayerStatePanel>(); //GUIManager.CacheView<PlayerMapControlPanel>(); //GUIManager.CacheView<MainChatPanel>(); // 添加到主角的AOI中 } else { RangeTools.MotifyObjectAoi(mRole, cObj); } } } catch (System.Exception ex) { LogSystem.LogError("on_add_object catch error", ex.ToString()); } }
public void InitMonster(List <CloneSceneProperty.CloneSceneMonsterInfo> list) { if (list == null) { return; } int count = list.Count; if (count < 1) { return; } //GameObject monsterParent = NGUITools.AddChild(gameObject); //monsterParent.transform.localPosition = Vector3.zero; //monsterParent.name = "Monsters"; for (int i = 0; i < count; ++i) { CloneSceneProperty.CloneSceneMonsterInfo csm = list[i]; if (csm == null) { continue; } int monsterId = csm.mMonsterId; Vector3 postion = csm.mMonsterPosition; float rotation = csm.mMonsterRotationY; float scale = csm.mMonsterScale; if (scale.Equals(0.0f)) { scale = 1.0f; } CMonsterObject cObj = new CMonsterObject(); GameObject go = ResourceManager.Instance.GetMonsterPrefab(monsterId.ToString()); if (go == null) { LogSystem.LogError("GetMonsterPrefab Failed, monsterId = " + monsterId); continue; } ++mIndex; cObj.mObjId = monsterId; cObj.mIndex = mIndex; go.name = monsterId.ToString(); //go.transform.parent = monsterParent.transform; go.transform.position = postion; go.transform.rotation = Quaternion.Euler(0.0f, rotation, 0.0f); go.transform.localScale = new Vector3(scale, scale, scale); //ui GameObject uiPrefab = ResourceManager.Instance.GetUIPrefab("UMonsterBloodUI"); Vector2 position2 = Camera.main.WorldToScreenPoint(postion); uiPrefab.transform.position = position2; cObj.mGameObject = go; cObj.mTransform = go.transform; cObj.mPosition = postion; cObj.AddComponent <AnimatorComponent>(); cObj.AddComponent <RestoreComponent>(); cObj.AddComponent <InjuredComponent>(); cObj.AddComponent <FindingPathComponent>(); cObj.AddComponent <MoveComponent>(); cObj.AddComponent <AttackComponent>(); cObj.AddComponent <HatredComponent>(); cObj.AddComponent <PursuitComponent>(); cObj.AddComponent <SkillComponent>(); cObj.AddComponent <EffectComponent>(); RangeTools.MotifyObjectAoi(ObjectManager.mRole, cObj); ObjectManager.mObjectsList.Add(cObj); } }