Ejemplo n.º 1
0
        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();
        }