Exemplo n.º 1
0
        public TileCoord GetMapTile(ITileLogicChild tileChild, out Vector3 localPos)
        {
            TileCoord tilePos = GroundHelper.Logic.GetTileCoordByPos(logicHolder.position, GroundManager.Inst.tileSize, tileChild.transform.position);

            localPos = tileChild.transform.position - GroundHelper.Common.GetTilePos(logicHolder.position, GroundManager.Inst.tileSize, tilePos);
            return(tilePos);
        }
Exemplo n.º 2
0
        public void TryResetMapChild(ITileLogicChild tileChild)
        {
            Transform tileChildTrans = tileChild.transform;

            Vector4 boundary = GroundHelper.Logic.GetMapBoundary(logicHolder.position, GroundManager.Inst.tileSize);
            Vector3 fixDir   = Vector3.zero;

            if (tileChildTrans.position.x < boundary.x)
            {
                fixDir.x = 1;
            }
            else if (tileChildTrans.position.x > boundary.y)
            {
                fixDir.x = -1;
            }
            if (tileChildTrans.position.z < boundary.z)
            {
                fixDir.z = 1;
            }
            else if (tileChildTrans.position.z > boundary.w)
            {
                fixDir.z = -1;
            }

            if (fixDir.x == 0 && fixDir.z == 0)
            {
                return;
            }

            tileChildTrans.position += fixDir * GroundHelper.Common.GetCrossMapDst(GroundManager.Inst.tileSize);
            tileChild.DoCross();
        }