예제 #1
0
        /// <summary>
        /// Удалить связь с ячейкой
        /// </summary>
        /// <param name="linkedCell">Связаная ячейка</param>
        public void UnlinkCell(CellBehaviour linkedCell)
        {
            //Определить тип горизонтального направления к ячейке по вектору направления
            Vector3 dirToLinkedCell = (transform.position - linkedCell.transform.position).normalized;

            GridTools.HorizontalDirections hDir = GridTools.GetHorizontalDirectionByVector(dirToLinkedCell);

            RemoveLink(hDir, linkedCell.GetCellData().RootCell);
        }
예제 #2
0
        /// <summary>
        /// Создать связь с ячейкой
        /// </summary>
        /// <param name="linkedCell">Связаная ячейка</param>
        /// <param name="addCellToConnection">Добавить ячейку в связи (редактор) <c>true</c>,
        /// иначе не добавлять ячейку в связи (загрущка)</param>
        public void LinkCell(CellBehaviour linkedCell, bool addCellToConnection = true)
        {
            //Определить тип горизонтального направления к ячейке по вектору направления
            Vector3 dirToLinkedCell = (transform.position - linkedCell.transform.position).normalized;

            GridTools.HorizontalDirections hDir = GridTools.GetHorizontalDirectionByVector(dirToLinkedCell);

            CreateLink(hDir, linkedCell.GetCellData().RootCell, addCellToConnection);

            //Обновить высоту всем соединениям конкретной ячейки
            UpdateVerticalDirectionForConnections(true);
        }
예제 #3
0
        /// <summary>
        /// Задать высоту соединения с конкретной ячейкой
        /// </summary>
        void SetVerticalDirectionToLinkedCell(CellBehaviour linkedCellBehaviour)
        {
            //Направление к ячейке
            Vector3 dirToLinkedCell = (transform.position - linkedCellBehaviour.transform.position).normalized;

            //Направление по вертикали и по горизонтали
            GridTools.HorizontalDirections hDir = GridTools.GetHorizontalDirectionByVector(dirToLinkedCell);
            GridTools.VerticalDirections   vDir = GridTools.GetVerticalDirectionByVector(dirToLinkedCell);

            //Изменить состояние направления соединения
            ConnectionList[(int)hDir].SetVerticaDirection(vDir);
        }