Dreaman Dreaman

TheDarkestRed,

Отлично! Всё прям как в проектах AAA-класса ;)

Dreaman Dreaman

В игре "Mental State" на космической станции появилось новое просторное и довольно уютное помещение :)

...
win20082007 win20082007

Наконец то закончил работу над первым боссом, осталось сделать еще 7 :) Если кого заинтересовал проект со странными существами - милости прошу к нашему шалашу https://vk.com/another_arts

TheDarkestRed TheDarkestRed

Concept art нового врага для The Darkest Red 🎮 🧟 👨‍🎨

...
kirsakshlil kirsakshlil

Ох, давненько я не заходил сюда. С Новым Годом всех! Надеюсь в новом году работа попрёт!

Dreaman Dreaman

Jusper,

Спасибо! Приятно слышать :)

id230694559 id230694559

Хорошая подборка книг по разработке игр https://iunity3d.ru/top-luchshih-knig-po-razrabotke-igr/

Jusper Jusper

Dreaman, с наступившим Новым годом! Приятно следить за твоим прогрессом :)

Dreaman Dreaman

Присоединяюсь к поздравлениям! Отдельное спасибо за упоминание :)
Всех поздравляю с уже наступившим Новым Годом!

Jusper Jusper

Taske,

LOD-ы нет вроде, не делали.

Taske Taske

Возможно глупый вопрос, но я пока только вникаю в юнити.

Лоды при этом методе у мешей сохраняются? Какие объекты выгоднее всего таким образом объединять?

Jusper Jusper

И вас с наступающим, друзья.
Успехов!

TheDarkestRed TheDarkestRed

Новый лесной монстр для The Darkest Red 🎮 🧟 👹
https://vk.com/the_darkestred

TheDarkestRed TheDarkestRed

Тестируем новую механику захвата врагов 🎮🧟🤺

Jusper Jusper

Ato_Ome, скетч без контекста игры выглядит хорошо, стильно.
в игре сразу будут проблемы: так как это камера сверху имеет смысл прикидывать скетч сразу якобы сверху с игровой камеры. Плечи у этого упыря мелковаты...

Ato_Ome Ato_Ome

Скетч-арт от художницы для нашего проекта, упырь.

alexprey alexprey

ehnaton, никто его не обижает, у него просто стиль похожий

Логотип проекта Unity

Нажатие Button

Это опять я... :)
Делаю систему скрытия и отображения панелей. Запихнул все нужные панели и кнопки соответствующие панелям в массив.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GamePanelsSystem : MonoBehaviour
{
    public static GameObject [] panel;
    public static GameObject[] buttonpanel;
}
public class GamePanels : MonoBehaviour
{
    public GameObject Gpanel;
    public GameObject button;
    private void Start()
    {
        
    }

    public void PanelOff(Тута Я хз bttn)
    {

        for (int x = 0; GamePanelsSystem.panel[x] == null; x++)
        {
            Gpanel = GamePanelsSystem.panel[x];
            if (bttn == GamePanelsSystem.buttonpanel[x])
            {
                Gpanel.SetActive(true);
            }
            else Gpanel.SetActive(false);
        }
    }
    public void SavePanel()
    {
        GamePanelsSystem.panel[0] = GameObject.Find("PanelHome");
        GamePanelsSystem.panel[1] = GameObject.Find("PanelQuests");
        GamePanelsSystem.panel[2] = GameObject.Find("PanelEvents");
        GamePanelsSystem.panel[3] = GameObject.Find("PanelKnights");
        GamePanelsSystem.panel[4] = GameObject.Find("PanelTraining");
        GamePanelsSystem.panel[5] = GameObject.Find("PanelBuilding");
        GamePanelsSystem.panel[6] = GameObject.Find("PanelRecruits");
        GamePanelsSystem.panel[7] = GameObject.Find("PanelGold");
        GamePanelsSystem.buttonpanel[0] = GameObject.Find("ButtonHome");
        GamePanelsSystem.buttonpanel[1] = GameObject.Find("ButtonQuests");
        GamePanelsSystem.buttonpanel[2] = GameObject.Find("ButtonEvents");
        GamePanelsSystem.buttonpanel[3] = GameObject.Find("ButtonKnights");
        GamePanelsSystem.buttonpanel[4] = GameObject.Find("ButtonTraining");
        GamePanelsSystem.buttonpanel[5] = GameObject.Find("ButtonBuilding");
        GamePanelsSystem.buttonpanel[6] = GameObject.Find("ButtonRecruits");
        GamePanelsSystem.buttonpanel[7] = GameObject.Find("ButtonGold");
    }


}

Хотел перебором скрывать и показывать нужные панели, но случилось непредвиденное. Оказывается нельзя определить какой конкретно butten ты нажимаешь без свистоперделок? :(

Ответ

При этом число рыцарей мб рандомным, и новые рыцари могут генерироваться по ходу игры. Через On Click кажется не вариант. Есть статьи про менеджер UI на русском? D:

Делаешь UI менеджер и делаешь конфиг рыцарей. Когда игрок нажимает на рыцаря, UI менеджер ловит это через Listener, дергает его параметры и передает в окно. Окно при появлении делает update данных и отрисовывает результат. Массив рыцарей делаешь динамическим. Сам же префаб объекта оставляешь логически одним, подменяя только визуальное содержимое.

Структурно:

  • Определяешь структуру UI - кнопки, панельки, данные.
  • Определяешь массив рыцарей.
  • Делаешь конфиг каждого рыцаря (имя, статы, спрайт).
  • Определяешь массив соотв.
  • По нажатию на кнопку дергаешь - стасты, передаешь данные, апдейтишь визуалку и активируешь панельку

Смотрите также:


Комментарии



Оказывается нельзя определить какой конкретно butten ты нажимаешь без свистоперделок? :(

Давай конкретнее кейс.
У тебя есть панельки, когда ты нажимаешь на кнопку панелька открывается/появляется. Так?

У меня есть одинаковые панельки. Когда я нажимаю уcловно button "Quests", выводится панелька "Quests", а все другие панельки закрываются. Ну и с другими панельками аналогично.
Мне просто показалось, что через On Click () душновато эти 50 панелек закрывать и открывать.

Вариантов не так много.
Либо ты делаешь через событие нажатия On Click, либо делаешь менеджер UI, который будет обрабатывать нажатие конкретной кнопки (а ее тоже надо будет определить) и set active для назначенного объекта.
Та же возня, только кодом.

Jusper, смотри, что я хочу сделать. У меня будет таблица (панель) со списком "рыцарей". При нажатии на любого рыцаря из списка будет открываться отдельная панель с его параметрами. При этом число рыцарей мб рандомным, и новые рыцари могут генерироваться по ходу игры. Через On Click кажется не вариант. Есть статьи про менеджер UI на русском? D:

Я думал игру чисто через интерфейс сделать будет прикольная легкая тема, а тут оказывается свои заморочки. Юнити как-то душит на пустом месте, постоянно мне какую-то свинью подкладывает. >_<

При этом число рыцарей мб рандомным, и новые рыцари могут генерироваться по ходу игры. Через On Click кажется не вариант. Есть статьи про менеджер UI на русском? D:

Делаешь UI менеджер и делаешь конфиг рыцарей. Когда игрок нажимает на рыцаря, UI менеджер ловит это через Listener, дергает его параметры и передает в окно. Окно при появлении делает update данных и отрисовывает результат. Массив рыцарей делаешь динамическим. Сам же префаб объекта оставляешь логически одним, подменяя только визуальное содержимое.

Структурно:

  • Определяешь структуру UI - кнопки, панельки, данные.
  • Определяешь массив рыцарей.
  • Делаешь конфиг каждого рыцаря (имя, статы, спрайт).
  • Определяешь массив соотв.
  • По нажатию на кнопку дергаешь - стасты, передаешь данные, апдейтишь визуалку и активируешь панельку

статьи про менеджер UI на русском? D:

Вот один из примеров: https://habr.com/ru/post/472770/

Jusper, спасибо. Еще короткий вопрос: можно же как-то отследить нажатие на коллайдер и то на какой именно коллайдер было совершено нажатие? Если ответ - да и да, то можешь закрывать тему.

Diabfall,

Jusper, спасибо. Еще короткий вопрос: можно же как-то отследить нажатие на коллайдер и то на какой именно коллайдер было совершено нажатие? Если ответ - да и да, то можешь закрывать тему.

Да, можно.
Используй Physics.Raycast() на луче camera.ScreenPointToRay().
НО!
Если я правильно тебя понял, то лучше тебе не меш коллайдер использовать, а RenderTexture, в который у тебя будет транслироваться персонаж на камеру. Но много таких объектов - нагрузка, если мы говорим о мобилках, поэтому использовать надо с умом.

Возможность добавлять комментарии была ограничена