/// <summary> /// 初始化Lua /// </summary> //private void InitLua() //{ // // TODO LUA需要销毁 // L = new LuaState(); // L.Start(); // // 读取lua文件 // L.DoFile( @"D:\project\Project1\GameProject\Assets\Lua\targetSelect.lua"); // // 获得lua方法 // LFunc = L.GetFunction("SearchTargetWithJson"); // // LFunc = L.GetFunction("String"); // TestData = L.GetTable("testData"); //} /// <summary> /// 单元移动 /// </summary> private void MemberMove() { bool isTouchTopBorder = false; bool isTouchBottomBorder = false; bool isTouchRightBorder = false; bool isTouchLeftBorder = false; foreach (var member in MemberList.List) { var memberData = member.AllData.MemberData; // 判断是否碰到边框 isTouchTopBorder = member.X + memberData.SpaceSet >= MapPlane.transform.localPosition.x + MapWidth * 0.5f; isTouchBottomBorder = member.X <= MapPlane.transform.localPosition.x - MapWidth * 0.5f; isTouchRightBorder = member.Y + memberData.SpaceSet >= MapPlane.transform.localPosition.z + MapHeight * 0.5f; isTouchLeftBorder = member.Y <= MapPlane.transform.localPosition.z - MapHeight * 0.5f; if (isTouchTopBorder || isTouchBottomBorder) { // X折射 member.Direction = new Vector3((isTouchTopBorder ? -1 : 1) * Math.Abs(member.Direction.x), 0, member.Direction.z); } if (isTouchRightBorder || isTouchLeftBorder) { // Y折射 member.Direction = new Vector3(member.Direction.x, 0, (isTouchRightBorder ? -1 : 1) * Math.Abs(member.Direction.z)); } // 按照方向移动 var step = member.Direction.normalized * memberData.MoveSpeed * Time.deltaTime; member.X += step.x; member.Y += step.z; } MemberList.RebuildQuadTree(); }