/// <summary> /// 收到服务器消息,同步其他玩家建筑位置 /// </summary> /// <param name="param"></param> private void OnSendBuildPosition_bcst(object param) { var handle = param as mmopb.sendBuildPosition_bcst; string enemyName = DataMgr.Instance.PrefebsDic[handle.buildType]; if (handle.roleId == PlayerID) { return; } newBuild = (GameObject)Resources.Load("Prefabs/" + enemyName + "_Build"); Quaternion quaternion = new Quaternion(handle.xQuternion, handle.yQuternion, handle.zQuternion, handle.wQuternion); BuildCtrl newBuildCtrl = Instantiate(newBuild, new Vector3(handle.x, handle.y, handle.z), quaternion).AddComponent <BuildCtrl>(); GameObject particle = Resources.Load("Prefabs/MagicZoneGreen") as GameObject; GameObject newParticle = Instantiate(particle, newBuildCtrl.gameObject.transform); newParticle.SetActive(false); lock (lockObject) { if (Camp == Camp.Dark) { DataMgr.Instance.BrightBuildDic.Add(DataMgr.SoldierBuildId, newBuildCtrl); } else { DataMgr.Instance.DarkBuildDic.Add(DataMgr.SoldierBuildId, newBuildCtrl); } newBuildCtrl.Init(DataMgr.SoldierBuildId++, handle.roleId, Camp == Camp.Dark ? Camp.Bright : Camp.Dark, quaternion, enemyName); } }
//初始化建筑 void InitBuild() { //加载模型和材质贴图的预制体 soldierName = DataMgr.Instance.PrefebsDic[(int)LocalUser.Instance.CardStatus]; newBuild = (GameObject)Resources.Load("Prefabs/" + soldierName + "_Build"); BuildCtrl newBuildCtrl = Instantiate(newBuild, BuildPos, StartRotate).AddComponent <BuildCtrl>(); GameObject particle = Resources.Load("Prefabs/MagicZoneGreen") as GameObject; GameObject newParticle = Instantiate(particle, newBuildCtrl.gameObject.transform); newParticle.SetActive(false); lock (lockObject) { if (Camp == Camp.Bright) { DataMgr.Instance.BrightBuildDic.Add(DataMgr.SoldierBuildId, newBuildCtrl); } else { DataMgr.Instance.DarkBuildDic.Add(DataMgr.SoldierBuildId, newBuildCtrl); } newBuildCtrl.Init(DataMgr.SoldierBuildId++, PlayerID, Camp, StartRotate, soldierName); } }