private IEnumerator FixCoorinate(Action endCall) { foreach (var VARIABLE in _roomInfos) { VARIABLE.AddRigidbody2D(); } while (!AllRoomSleep()) { yield return(new WaitForFixedUpdate()); } Debug.Log("开始坐标休整"); foreach (var VARIABLE in _roomInfos) { VARIABLE.Rigidbody2D.constraints = RigidbodyConstraints2D.FreezeAll; VARIABLE.Pos = new Vector3(GridSize * ((int)(VARIABLE.Pos.x / GridSize)), GridSize * ((int)(VARIABLE.Pos.y / GridSize)), VARIABLE.Pos.z); //Point和room映射 point2Room.Add(PointMgr.GetPoint(VARIABLE.Pos), VARIABLE); } Debug.Log("坐标休整完成"); endCall?.Invoke(); }