void InitNpc(L2D_BattleInit initMsg) { //stage_info si = stage_infoAPI.GetDataBy_id(1); //List<tank_group_info> tgis = tank_group_infoAPI.GetDataListBy_tank_group_id(si.tank_group_id); //for (int i = 0; i < tgis.Count; ++i) //{ // Vector3 pos = new Vector3((float)tgis[i].pos.GetDouble(0), (float)tgis[i].pos.GetDouble(1), (float)tgis[i].pos.GetDouble(2)); // Vector3 dir = new Vector3((float)tgis[i].dir.GetDouble(0), (float)tgis[i].dir.GetDouble(1), (float)tgis[i].dir.GetDouble(2)); // var ti = tank_infoAPI.GetDataBy_tank_type(tgis[i].tank_type); // Data.Tank tank = new Data.Tank(); // tank.SetDir(dir); // tank.SetPos(pos); // tank.SetSpeed(ti.speed); // tank.SetTurnSpeed(0); // tank.SetTurnType(UFrame.AI.TurnType.None); // Data.BattleLogicDataManager.GetInstance().AddTank(tank); // UFrame.AI.SimpleMoveObjectCtr tankCtr = new UFrame.AI.SimpleMoveObjectCtr(); // tankCtr.moveObject = tank; // tankCtrs.Add(tankCtr.moveObject.ID, tankCtr); // TankGroupInit tgi = new TankGroupInit(); // tgi.id = tank.GetID(); // tgi.tank_type = tgis[i].tank_type; // tgi.pos = pos; // tgi.dir = dir; // initMsg.tankGroup.Add(tgi); //} }
void InitBattleField() { L2D_BattleInit initMsg = new L2D_BattleInit(); initMsg.tankGroup = new List <TankGroupInit>(); InitSelf(initMsg); //InitNpc(initMsg); InitAvoidance(initMsg); SendBattleMessage(initMsg); }
void InitAvoidance(L2D_BattleInit initMsg) { Data.Avoidance adv = new Data.Avoidance(); adv.pos = new F64Vec3(5, 0, 10); //adv.radius = F64.Half; adv.radius = new F64(1.6); logicDataManager.AddAvoidance(adv); initMsg.avoidances = new List <Avoidance>(); Avoidance av = new Avoidance(); av.pos = adv.pos.ToUnityVector3(); av.rad = adv.radius.Float; initMsg.avoidances.Add(av); }
void OnL2D_BattleInit(UFrame.MessageCenter.Message msg) { L2D_BattleInit initMsg = msg as L2D_BattleInit; for (int i = 0; i < initMsg.tankGroup.Count; ++i) { tank_info ti = tank_infoAPI.GetDataBy_tank_type(initMsg.tankGroup[i].tank_type); GameObjectGetter tankGetter = ResHelper.LoadGameObject(ti.res_path); GameObject tankGo = tankGetter.Get(); tankGo.transform.position = initMsg.tankGroup[i].pos; Debug.LogError(initMsg.tankGroup[i].dir); tankGo.transform.transform.LookAt(initMsg.tankGroup[i].dir); var tank = new Tank(); tank.go = tankGo; tank.ID = initMsg.tankGroup[i].id; tank.dectLen = initMsg.tankGroup[i].detectionLen; tank.dectWidth = initMsg.tankGroup[i].detectionWidth; tanks.Add(initMsg.tankGroup[i].id, tank); Debug.LogError(initMsg.tankGroup[i].id + " " + initMsg.tankGroup[i].isPlayer); //增加跟随相机 //if (initMsg.tankGroup[i].isSelf && initMsg.tankGroup[i].isCaptain) //{ // GameObjectGetter selfCameraGetter = ResHelper.LoadGameObject("prefabs/self_camera"); // GameObject selfCamera = selfCameraGetter.Get(); // //RPGCamera rpgCamera = selfCamera.GetComponent<RPGCamera>(); // //rpgCamera.UsedCamera = Camera.main; // selfCamera.transform.SetParent(tank.transform); //} } for (int i = 0; i < initMsg.avoidances.Count; ++i) { //tank_info ti = tank_infoAPI.GetDataBy_tank_type(initMsg.tankGroup[i].tank_type); GameObjectGetter getter = ResHelper.LoadGameObject("prefabs/avoidance3"); GameObject av = getter.Get(); av.transform.position = initMsg.avoidances[i].pos; //av.transform.localScale *= (initMsg.avoidances[i].rad); } D2L_BattleInit initRetMsg = new D2L_BattleInit(); initRetMsg.result = true; battleManager.battleMessageCenter.Send(initRetMsg); }
void InitSelf(L2D_BattleInit initMsg) { Data.Player player = new Data.Player(); player.isSelf = true; Data.Tank tank = new Data.Tank(); tank.isPlayer = true; tank.isCaption = true; tank.tankType = 1000; tank.moveData.detectionLen = new F64(5); tank.moveData.detectionWidth = new F64(0.8); tank.SetPos(new F64Vec3(0, 0, -10)); tank.SetDir(new F64Vec3(0, 0, 1)); tank.SetSpeed(new F64(5)); tank.SetTurnSpeed(new F64(15)); tank.SetTurnType(UFrame.AI.TurnType.None); player.tanks.Add(tank); logicDataManager.AddTank(tank); UFrame.AI.SimpleMoveObjectCtr tankCtr = new UFrame.AI.SimpleMoveObjectCtr(this); tankCtr.moveObject = tank; logicDataManager.AddTankCtr(tankCtr); logicDataManager.AddPlayer(player); TankGroupInit tgi = new TankGroupInit(); tgi.id = tank.GetID(); tgi.isSelf = player.isSelf; tgi.isPlayer = tank.isPlayer; tgi.isCaptain = tank.isCaption; tgi.tank_type = tank.tankType; tgi.pos = tank.GetPos().ToUnityVector3(); tgi.dir = tank.GetDir().ToUnityVector3(); tgi.detectionLen = tank.moveData.detectionLen.Float; tgi.detectionWidth = tank.moveData.detectionWidth.Float; initMsg.tankGroup.Add(tgi); }