コード例 #1
0
        public void SetIntoTile(Transform trans, TileCoord tilePos, Vector3 localPos)
        {
            GroundTile tile = GroundHelper.Graphic.GetTileByRowColumn(tilePos);

            trans.parent        = tile.gobj.transform;
            trans.localPosition = localPos / GroundManager.Inst.tileSize;
        }
コード例 #2
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);
        }
コード例 #3
0
            internal static Vector3 GetTilePos(Vector3 centerPos, float tileSize, TileCoord tileCoord)
            {
                int     offsetRow    = tileCoord.row - CenterRow;
                int     offsetColumn = tileCoord.column - CenterColumn;
                Vector3 pos          = centerPos + new Vector3(offsetColumn, 0, offsetRow) * tileSize * tileMeshSize;

                return(pos);
            }
コード例 #4
0
 internal static GroundTile GetTileByRowColumn(TileCoord tileCoord)
 {
     tileCoord.row    = tileCoord.row % 3;
     tileCoord.column = tileCoord.column % 3;
     if (tileCoord.row < 0)
     {
         tileCoord.row += 3;
     }
     if (tileCoord.column < 0)
     {
         tileCoord.column += 3;
     }
     return(tileArr[tileCoord.row, tileCoord.column]);
 }
コード例 #5
0
            internal static GroundTile GetTileByPos(Vector3 pos)
            {
                float     minDst  = float.MaxValue;
                TileCoord tilePos = new TileCoord();

                foreach (GroundTile tile in tileArr)
                {
                    Transform tempTileTrans = tile.gobj.transform;
                    float     dst           = Mathf.Pow(tempTileTrans.position.x - pos.x, 2)
                                              + Mathf.Pow(tempTileTrans.position.z - pos.z, 2);
                    if (dst > minDst)
                    {
                        continue;
                    }
                    minDst  = dst;
                    tilePos = tile.tileCoord;
                }

                return(tileArr[tilePos.row, tilePos.column]);
            }
コード例 #6
0
 internal static void GetRowColumnByIndex(int index, out TileCoord tileCoord)
 {
     tileCoord        = new TileCoord();
     tileCoord.row    = index / 3;
     tileCoord.column = Mathf.Max(0, index - tileCoord.row * 3);
 }