コード例 #1
0
 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));
     }
 }
コード例 #2
0
    /// <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);
    }