Интересуют варианты реализаций сетки на 2d карте

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Интересуют варианты реализаций сетки на 2d карте

Сообщение Ivan1983 24 мар 2017, 10:50

Собственно вопрос чем сделана такая сетка. Я понимаю что может и картинка просто в центре пусто по краям рамка но моет есть какие то другие средства типа шейдеры или еще что то.

http://www.picshare.ru/view/7992463/
Ivan1983
UNец
 
Сообщения: 40
Зарегистрирован: 07 мар 2014, 09:28

Re: Интересуют варианты реализаций сетки на 2d карте

Сообщение samana 24 мар 2017, 20:49

Если это в эдиторе, то думаю нарисовано с помощью Gizmos.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Интересуют варианты реализаций сетки на 2d карте

Сообщение seaman 24 мар 2017, 20:55

Не, не, не... GL в редакторе. Типа
Синтаксис:
Используется csharp
        private const float __MAJOR_GRID_SIZE = 120f;
        private const float __NODE_GRID_SIZE = 12f;

        internal static void _DrawGrid(Rect position, Color majorColor, Color minorColor)
        {
            if (Event.current.type != EventType.Repaint) return;
            //new HandleUtility().GetType().GetMethod("ApplyWireMaterial", BindingFlags.NonPublic | BindingFlags.Static).Invoke(null, null);
            GL.PushMatrix();
            GL.Begin(1);
            __DrawGridLines(position, __NODE_GRID_SIZE, minorColor);
            __DrawGridLines(position, __MAJOR_GRID_SIZE, majorColor);
            GL.End();
            GL.PopMatrix();
        }

        internal static Rect _SnapPositionToGrid(Rect position)
        {
            int num = Mathf.RoundToInt(position.x/__NODE_GRID_SIZE);
            int num2 = Mathf.RoundToInt(position.y/__NODE_GRID_SIZE);
            position.x = num*__NODE_GRID_SIZE;
            position.y = num2*__NODE_GRID_SIZE;
            return position;
        }

        private static void __DrawGridLines(Rect position, float gridSize, Color gridColor)
        {
            GL.Color(gridColor);
            for (float i = position.xMin - position.xMin%gridSize; i < position.xMax; i += gridSize) __DrawLine(new Vector2(i, position.yMin), new Vector2(i, position.yMax));
            GL.Color(gridColor);
            for (float j = position.yMin - position.yMin%gridSize; j < position.yMax; j += gridSize) __DrawLine(new Vector2(position.xMin, j), new Vector2(position.xMax, j));
        }

        private static void __DrawLine(Vector2 p1, Vector2 p2)
        {
            GL.Vertex(p1);
            GL.Vertex(p2);
        }
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Интересуют варианты реализаций сетки на 2d карте

Сообщение Ivan1983 25 мар 2017, 13:56

нет это не в редакторе. Такую же видел в Oxygen Not Included. Но она там не сплошная, а в некотором радиусе от курсора. Это из игры Forts.
Ivan1983
UNец
 
Сообщения: 40
Зарегистрирован: 07 мар 2014, 09:28


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20