Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 116

Создание объекта по клику мышки

11.02.2016, 23:18. Показов 2108. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И еще раз доброго времени!
Есть скрипт, отвечающий за постройку башни на кубике (нажали на кубик - появилась менюшка с башнями - нажали на нужную башню - построили. Менюшка эта - UI image/Button (не принципиально). Предположим, у меня 3 кнопки, как на скриншоте.
Объясните, пожалуйста, каким образом реализовать постройку разных башен, в зависимости от того, на какую кнопку нажали? Какая именно башня строится - указывается в public переменной tower (скрипт повешен на canvas)
P.S. При нажатии на любую из кнопок дебаг пишет, что нажал не на кнопку, а на canvas.
P.S.S. Пробовал реализовывать через 3 canvas'a (на каждом своя кнопка) с тремя различными башнями - начинается вообще непонятная ерунда. Сколько бы я канвасов не создавал и куда бы не кликал, дебаг пишет, что я кликаю именно на последний в иерархии

то, что выходит после клика по кубу (до этого все нормально работает)
часть скрипта, которая отвечает за постройку башни - ниже

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class TowerPressed : MonoBehaviour
{
    public Transform tower;
    private Pressing BuildPlacePosition;
    private Vector3 Position;
    private bool isTower;
    public int ID;
 
    void Update()
    {    
        GameObject[] Canvases = GameObject.FindGameObjectsWithTag("Canvas"); // находим все объекты с тегом Canvas\\ они же менюшки постройки и кидаем их в массив
        GameObject[] BuildPlaces; //создаем массив для кубов
        BuildPlaces = GameObject.FindGameObjectsWithTag("BuildPlace"); // находим все объекты с тегом BuildPlace\\они же кубы и кидаем их в массив
        for (int j = 0; j < Canvases.Length; j++)
        {
            if (Canvases[j].GetComponent<Canvas>().enabled == false) // проверяем для каждого канваса включен ли он
 
            {
                if (!GameObject.FindGameObjectWithTag("PressedBuildPlace").GetComponent<Pressing>().isTower)
                {
                    Debug.Log(gameObject.name);
                    GameObject.FindGameObjectWithTag("PressedBuildPlace").GetComponent<Pressing>().isTower = true;
                    Instantiate(tower, GameObject.FindGameObjectWithTag("PressedBuildPlace").GetComponent<Pressing>().Position + new Vector3(-3, 2, 0), Quaternion.identity);
                        GameObject.FindGameObjectWithTag("PressedBuildPlace").GetComponent<Pressing>().tag = "Tower";
                  }
                for (int i = 0; i < BuildPlaces.Length; i++)
                {
                    BuildPlaces[i].GetComponent<BoxCollider>().enabled = true; // добавили коллайдер для всех кубов
                }
            }
        }       
    }     
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.02.2016, 23:18
Ответы с готовыми решениями:

Создание объекта по клику мышки
Доброго времени суток, уважаемые форумчане. Начал разбираться с юнити3д, такая задача стоит сейчас: 2д пространство - требуется...

Создание объекта из префаба по клику мыши
Здравствуйте, такая ситуация: Есть скрипт MousePoint, прикрепленный к кнопке постройки через gameobject BuildTower. Суть скрипта в том,...

Создание объекта по клику
Добрый вечер! Подскажите пожалуйста, каким образом осуществить следующую процедуру: Необходимо, чтобы по клику на кнопку...

1
211 / 201 / 63
Регистрация: 24.09.2014
Сообщений: 532
12.02.2016, 13:00
Посмотри в сторону Dropdown стандартного GameObject->UI->Dropdown
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.02.2016, 13:00
Помогаю со студенческими работами здесь

Движение персонажа по клику мышки
У меня есть персонаж кубик, я хочу чтоб он двигался Все пишу в слой AS Вот код: stop(); var mSpeed = 5; var radius = 9; ...

Вывод слова по клику мышки
Написать программу, которая при нажатии левой кнопки мыши на форме ставит в этом месте какой-либо символ. Вид символа может выбираться из...

Пермещение объекта в позицию другого объекта по его клику
Имеется command1 и command2 Как сделать чтобы при нажатии на command2, command1 перемещалась в позицию command2 только не сразу...

Переключение набора виджетов по клику мышки.
День добрый. Подскажите пожалуйста, что лучше использовать. Цель такова - есть форма, сбоку кнопки, а центральная часть формы должна...

Выделение строки dataGrid по клику мышки
Надо сделать выделение строки грида по клику мышки. Получаю индекс сроки: DataGrid.HitTestInfo hitTestInfo = dataGrid1.HitTest(e.X,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru