static int ISearchRoad(IntPtr L) { try { ToLua.CheckArgsCount(L, 7); int[][] arg0 = ToLua.CheckObjectArray <int[]>(L, 1); int arg1 = (int)LuaDLL.luaL_checknumber(L, 2); int arg2 = (int)LuaDLL.luaL_checknumber(L, 3); int arg3 = (int)LuaDLL.luaL_checknumber(L, 4); int arg4 = (int)LuaDLL.luaL_checknumber(L, 5); int arg5 = (int)LuaDLL.luaL_checknumber(L, 6); int arg6 = (int)LuaDLL.luaL_checknumber(L, 7); System.Collections.IEnumerator o = AStarPathFinding.ISearchRoad(arg0, arg1, arg2, arg3, arg4, arg5, arg6); ToLua.Push(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
/// <summary> /// 控制 /// </summary> private void Control() { if (Input.GetMouseButtonDown(1)) { // 释放技能 var ray = MainCamera.ScreenPointToRay(Input.mousePosition); RaycastHit hit; Physics.Raycast(ray, out hit); if (hit.collider != null && hit.collider.name.Equals(LoadMap.MapPlane.name)) { SkillManager.Single.DoSkillNum(1009, new FormulaParamsPacker() { StartPos = new Vector3(hit.point.x, 0, hit.point.z), TargetPos = new Vector3(hit.point.x, 0, hit.point.z), ReleaseMember = new DisplayOwner(scaner.gameObject, scaner), ReceiverMenber = new DisplayOwner(scaner.gameObject, scaner), }); } } if (Input.GetMouseButtonDown(0)) { var skill = SkillManager.Single.CreateSkillInfo(20001); Debug.Log(skill.SkillName); // 加载地图数据 //Debug.Log(PacketManage.Single.GetPacket("mapdatapack").LoadString("mapdata")); // 获取地图上的点击点 var ray = MainCamera.ScreenPointToRay(Input.mousePosition); RaycastHit hit; Physics.Raycast(ray, out hit); // 点击到底板 if (hit.collider != null && hit.collider.name.Equals(LoadMap.MapPlane.name)) { var posOnMap = Utils.PositionToNum(LoadMap.MapPlane.transform.position, hit.point, UnitWidth, MapWidth, MapHeight); Debug.Log("start:" + lastTimeTargetX + "," + lastTimeTargetY + " end:" + posOnMap[0] + "," + posOnMap[1]); // 加载文件内容 var mapInfoData = InitMapInfo(); var path = AStarPathFinding.SearchRoad(mapInfoData, lastTimeTargetX, lastTimeTargetY, posOnMap[0], posOnMap[1], DiameterX, DiameterY, IsJumpPoint); // 根据path放地标, 使用组队寻路跟随过去 //StartCoroutine(Step(path)); var loadMapPos = LoadMap.GetCenter(); ClusterManager.Single.Init(loadMapPos.x, loadMapPos.z, MapWidth, MapHeight, UnitWidth, mapInfoData); //LoadMap.RefreshMap(); StartMoving(path, mapInfoData, lastTimeTargetX, lastTimeTargetY); // 缓存上次目标点 lastTimeTargetX = posOnMap[0]; lastTimeTargetY = posOnMap[1]; } //var target = GameObject.Find("item0"); //if (target != null) //{ // //var testEffect = EffectsFactory.Single.CreateLinerEffect("linePrfb.prefab", null, target, 3, null, 12); // var testEffect = EffectsFactory.Single.CreateLinerEffect("linePrfb.prefab", null, new Vector3(0,0,0), new Vector3(100, 0, 100), 3, null, 12); // testEffect.Begin(); //} Debug.Log(Profiler.GetMonoUsedSize() + "/" + Profiler.GetTotalAllocatedMemory()); } if (Input.GetMouseButtonDown(2)) { // 获取地图上的点击点 var ray = MainCamera.ScreenPointToRay(Input.mousePosition); RaycastHit hit; Physics.Raycast(ray, out hit); // 点击到底板 if (hit.collider != null && hit.collider.name.Equals(LoadMap.MapPlane.name)) { var posOnMap = Utils.PositionToNum(LoadMap.MapPlane.transform.position, hit.point, UnitWidth, MapWidth, MapHeight); // 加载文件内容 var mapInfoData = InitMapInfo(); // 根据path放地标, 使用组队寻路跟随过去 StartCoroutine(AStarPathFinding.ISearchRoad(mapInfoData, lastTimeTargetX, lastTimeTargetY, posOnMap[0], posOnMap[1], DiameterX, DiameterY)); // 缓存上次目标点 lastTimeTargetX = posOnMap[0]; lastTimeTargetY = posOnMap[1]; } } if (Input.GetMouseButton(0)) { Utils.DrawGraphics(new RectGraphics(new Vector2(0, 0), 10, 10, 90), Color.white); } // 上下左右移动 if (Input.GetKey(KeyCode.UpArrow)) { MainCamera.transform.localPosition = new Vector3(MainCamera.transform.localPosition.x, MainCamera.transform.localPosition.y, MainCamera.transform.localPosition.z + 1); } if (Input.GetKey(KeyCode.DownArrow)) { MainCamera.transform.localPosition = new Vector3(MainCamera.transform.localPosition.x, MainCamera.transform.localPosition.y, MainCamera.transform.localPosition.z - 1); } if (Input.GetKey(KeyCode.LeftArrow)) { MainCamera.transform.localPosition = new Vector3(MainCamera.transform.localPosition.x - 1, MainCamera.transform.localPosition.y, MainCamera.transform.localPosition.z); } if (Input.GetKey(KeyCode.RightArrow)) { MainCamera.transform.localPosition = new Vector3(MainCamera.transform.localPosition.x + 1, MainCamera.transform.localPosition.y, MainCamera.transform.localPosition.z); } // 升高下降 if (Input.GetKey(KeyCode.PageUp)) { MainCamera.transform.localPosition = new Vector3(MainCamera.transform.localPosition.x, MainCamera.transform.localPosition.y + 1, MainCamera.transform.localPosition.z); } if (Input.GetKey(KeyCode.PageDown)) { MainCamera.transform.localPosition = new Vector3(MainCamera.transform.localPosition.x, MainCamera.transform.localPosition.y - 1, MainCamera.transform.localPosition.z); } if (Input.GetKeyUp(KeyCode.P)) { // 暂停 ClusterManager.Single.Pause(); } if (Input.GetKeyUp(KeyCode.G)) { // 继续 ClusterManager.Single.GoOn(); } if (Input.GetKeyUp(KeyCode.R)) { InitMapInfo(); } //if (Input.GetKey(KeyCode.A)) //{ // // 添加统计单位 // FightDataStatistical.Single.AddCostData(new ArmyTypeData() // { // ArmyId = 1, // ArmyType = 1, // Camp = 1, // GeneralType = 1, // SingleCost = 10 // }); //} //if (Input.GetKey(KeyCode.S)) //{ // // 打印统计数据 // Debug.Log("cost:" + FightDataStatistical.Single.GetCostData(1)); //} // 绘制关闭列表 DrawCloseMap(AStarPathFinding.closePathMap); }