Среда, 13 Ноября 2024, 13:44

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-[ответ] по Unity
QWER56Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1
старожил
Сейчас нет на сайте
Вопрос-[Ответ] по Unity3d

  • База скриптов Unity3d
  • Курс Уроков по Unity 3D от Alcatraz

    ConsMark - поисковик по интернет магазинам.

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • SkyOfSoloДата: Воскресенье, 12 Апреля 2015, 22:24 | Сообщение # 6901
    уже был
    Сейчас нет на сайте
    Всем доброго времени суток.
    Ребята, мужчины, такой вопрос, ибо копал-копал, но сил нема:
    - Как обработать нажатие кнопки UI.Button, но не click (ибо это срабатывает только если кнопка отпущена впоследствии), а как только она нажата и отследить удерживание???
    - Подскажите, пожалуйста, как интуитивно понятно ПОНЯТЬ как работает TOUCH, т.е. как получить на что тыкнули пальцем, в том же направлении что и первый вопрос, и куда что повесить, а то как не пытаюсь, не работает никак???
    Буду очень благодарен, спасибо.
    Знания C# нормальные, гугл устал, ибо не писал бы.
    harmoxyneДата: Воскресенье, 12 Апреля 2015, 22:41 | Сообщение # 6902
    заслуженный участник
    Сейчас нет на сайте
    SkyOfSolo, по первому вопросу: Add Component - Event - Event Trigger.
    А там потыкай в нем, посмотри, всё просто и понятно smile
    SkyOfSoloДата: Понедельник, 13 Апреля 2015, 00:04 | Сообщение # 6903
    уже был
    Сейчас нет на сайте
    QNicolya, благодарствую за совет!!! Всё действительно просто и наглядно))) Немного подумать над гибкостью сего и самому переписать под себя и буде счастье!!! Спасибо еще раз!))) smile
    MANMANAДата: Понедельник, 13 Апреля 2015, 02:46 | Сообщение # 6904
    почти ветеран
    Сейчас нет на сайте
    Цитата Pe4enka ()
    , эта ошибка все испортила, она появляется когда в инвентарь ложиться более 1-ой вещи в момент открытия инвентаря... Как решать я не знаю, поэтому пришел за помощью в очередной раз.)

    а если вместо

    Код
        GUILayout.EndVertical();  
        }   
        GUILayout.EndScrollView();  
       }  
       GUILayout.EndArea();  
      

    вот так
    Код

         GUILayout.EndVertical();  
        }   
       }  
        GUILayout.EndScrollView();  
       GUILayout.EndArea();  
      

    т.е. вынести GUILayout.EndScrollView(); за цикл for
    Вроде бы, со скобками я не напутал


    http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
    VKонтакте 3Dbuffer

    Последнее:

    Новый раздел "Текстуры"

    Как запатентовать, защитить техническое решение, игру, идею
    berilДата: Понедельник, 13 Апреля 2015, 03:39 | Сообщение # 6905
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    Цитата SkyOfSolo ()
    Как обработать нажатие кнопки UI.Button, но не click (ибо это срабатывает только если кнопка отпущена впоследствии), а как только она нажата и отследить удерживание???
    - Подскажите, пожалуйста, как интуитивно понятно ПОНЯТЬ как работает TOUCH, т.е. как получить на что тыкнули пальцем, в том же направлении что и первый вопрос, и куда что повесить, а то как не пытаюсь, не работает никак???

    или интерфейсы реализовать(если скрипт весит на нашей Button) или собития (если надо проводить манипуляции или отслеживать нажатия и т.д по Button из постороннего скрипта)




    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    Pe4enkaДата: Понедельник, 13 Апреля 2015, 15:53 | Сообщение # 6906
    почетный гость
    Сейчас нет на сайте
    MANMANA, Спасибо! Помогло!

    Добавлено (13 апреля 2015, 15:53)
    ---------------------------------------------

    Код
    UnitySampleAssets.Characters.FirstPerson' is a `namespace' but a `type' was expected

    Что за ошибка ? Из-за нее я не могу обратиться к скрипту FirstPerson...
    Код
    using UnityEngine;
    using System.Collections;

    namespace UnitySampleAssets.Characters.FirstPerson{
    public class FPSedit : MonoBehaviour {
    public bool Switch;
    public GameObject Lol;
    public void Update(){
    if(Switch){   
    On();    
    }
    if(!Switch){
    Off();    
    }
    }
    public void On(){
       
    }
    public void Off(){
    GetComponent<FirstPerson>().enabled=true;// Не могу обратиться вот в этой строчке
    }
    }
    }


    Бадабум!
    harmoxyneДата: Понедельник, 13 Апреля 2015, 16:20 | Сообщение # 6907
    заслуженный участник
    Сейчас нет на сайте
    Pe4enka, тебе же четко сказано:
    Код
    namespace UnitySampleAssets.Characters.FirstPerson
    - это не тип, это область имен.
    Либо у тебя уже есть такой класс, а ты умудрился ещё один так назвать, или ты явно что-то делаешь не так.
    MANMANAДата: Понедельник, 13 Апреля 2015, 16:50 | Сообщение # 6908
    почти ветеран
    Сейчас нет на сайте
    здесь ты объявил FirstPerson пространством имен
    Цитата Pe4enka ()
    namespace UnitySampleAssets.Characters.FirstPerson{

    а здесь ты уже обращаешься к компоненту, но откуда же Юньке знать, что ты имеешь ввиду компонент, а не пространство имен?

    Цитата Pe4enka ()
    GetComponent<FirstPerson>().enabled=true;// Не могу обратиться вот в этой строчке


    Переназови UnitySampleAssets.Characters.FirstPerson как UnitySampleAssets.Characters.FirstPersonAss , например. или UnitySampleAssets.Characters.FirstPersonAsset

    Вот подобная ошибка http://answers.unity3d.com/questions/240864/cs0118-error.html


    http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
    VKонтакте 3Dbuffer

    Последнее:

    Новый раздел "Текстуры"

    Как запатентовать, защитить техническое решение, игру, идею
    Pe4enkaДата: Понедельник, 13 Апреля 2015, 20:34 | Сообщение # 6909
    почетный гость
    Сейчас нет на сайте
    QNicolya, Знаю, но гугл дал мне такое решение проблемы... Точнее понял.

    Добавлено (13 апреля 2015, 20:34)
    ---------------------------------------------
    MANMANA, Что-то не помогает (


    Бадабум!

    Сообщение отредактировал Pe4enka - Понедельник, 13 Апреля 2015, 20:04
    MANMANAДата: Понедельник, 13 Апреля 2015, 22:32 | Сообщение # 6910
    почти ветеран
    Сейчас нет на сайте
    Цитата Pe4enka ()
    MANMANA, Что-то не помогает (

    Стоп, а чей-то вы хотите этим сделать¿
    namespace UnitySampleAssets.Characters.FirstPerson
    Вы создаете пространство имен с таким именем? Страаанное название. А если назвать namespac firstPers
    http://docs.unity3d.com/ru/current/Manual/Namespaces.html
    Или ты собираешься использовать это пространство?

    Добавлено (13 апреля 2015, 22:32)
    ---------------------------------------------
    Это UnitySampleAssets.Characters. зачем?
    По аналогии с using System.Collection?
    Обратите внимание на первый пример из https://msdn.microsoft.com/ru-ru/library/z2kcy19k.aspx


    http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
    VKонтакте 3Dbuffer

    Последнее:

    Новый раздел "Текстуры"

    Как запатентовать, защитить техническое решение, игру, идею
    Pe4enkaДата: Вторник, 14 Апреля 2015, 11:57 | Сообщение # 6911
    почетный гость
    Сейчас нет на сайте
    MANMANA, Я сам пока не понимаю зачем это,но судя из гугла и Англоязычных форумов это есть решение, по сути я хочу получить доступ к скрипту First Person Controller(который ввели в Unity 5 ), но в public его нет, да и других способов чтобы его откопать я не знаю (

    Бадабум!
    MANMANAДата: Вторник, 14 Апреля 2015, 14:00 | Сообщение # 6912
    почти ветеран
    Сейчас нет на сайте
    Цитата Pe4enka ()
    MANMANA, Я сам пока не понимаю зачем это,но судя из гугла и Англоязычных форумов это есть решение, по сути я хочу получить доступ к скрипту First Person Controller(который ввели в Unity 5 ), но в public его нет, да и других способов чтобы его откопать я не знаю (

    кинь скрин, пожалуйста, с новым контроллером на C# (где он находится, как выглядят первые стройки кода). а то я тебе писал на предыдущей странице, но я так и не понял, к чему ты хочешь достучаться... smile раз тебе не подошел код, который я предлагал.


    http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
    VKонтакте 3Dbuffer

    Последнее:

    Новый раздел "Текстуры"

    Как запатентовать, защитить техническое решение, игру, идею
    Pe4enkaДата: Вторник, 14 Апреля 2015, 16:08 | Сообщение # 6913
    почетный гость
    Сейчас нет на сайте

    Уот


    Бадабум!

    Сообщение отредактировал Pe4enka - Вторник, 14 Апреля 2015, 16:09
    MANMANAДата: Вторник, 14 Апреля 2015, 16:38 | Сообщение # 6914
    почти ветеран
    Сейчас нет на сайте
    ага... там объявлено пространство имен
    Код
    namespace UnitySampleAssets.Characters.FirstPerson{...
    .
    ну, хотите использовать это пространство имен, то используйте по аналогии с
    using UnityEngine;
    using System.Collections;

    в своем скрипте
    удалите нафик
    Код
    namespace UnitySampleAssets.Characters.FirstPerson{...

    (закрывающую скобочку удалить тоже не забудьте)
    и поставьте после
    using System.Collections;

    вот так: using UnitySampleAssets.Characters.FirstPerson;

    и тогда Вы сможете достучаться до любой функции скрипта FirstPerson

    Метод попроще: просто писать
    Код
    UnitySampleAssets.Characters.FirstPerson.__названиефункции____
    каждый раз при обращении к той или иной функции

    например, UnitySampleAssets.Characters.FirstPerson.m_FovKick();

    и тогда мне непонятно, зачем Вам потребовалась вот это
    Код
    GetComponent<FirstPerson>().enabled=true;// Не могу обратиться вот в этой строчке
    это какой-то Ваш скрипт?

    Добавлено (14 апреля 2015, 16:38)
    ---------------------------------------------
    или Вы вот это прочитали?


    http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
    VKонтакте 3Dbuffer

    Последнее:

    Новый раздел "Текстуры"

    Как запатентовать, защитить техническое решение, игру, идею
    Pe4enkaДата: Вторник, 14 Апреля 2015, 17:43 | Сообщение # 6915
    почетный гость
    Сейчас нет на сайте
    Цитата MANMANA ()
    GetComponent<FirstPerson>().enabled=true;// Не могу обратиться вот в этой строчке
    это какой-то Ваш скрипт?

    Мой, сейчас опробую ваш совет и отпишусь.

    Добавлено (14 апреля 2015, 17:19)
    ---------------------------------------------
    MANMANA, Отлично ! Теперь все работает ! Спасибо !

    Добавлено (14 апреля 2015, 17:43)
    ---------------------------------------------
    Еще вопрос... Как удалить с инвентаря допустим оружие, но чтобы оно выкинулось вперед и можно было снова подобрать ? Почему то не могу сделать (


    Бадабум!
    MANMANAДата: Вторник, 14 Апреля 2015, 19:28 | Сообщение # 6916
    почти ветеран
    Сейчас нет на сайте
    Цитата Pe4enka ()
    Еще вопрос... Как удалить с инвентаря допустим оружие, но чтобы оно выкинулось вперед и можно было снова подобрать ? Почему то не могу сделать (

    нуу, батенька, не первый день на форуме же... как я могу ванговать?
    A. Как он у вас запихувается в инвентарь?
    у вас есть ГО (инстанс префаба на сцене)
    (i) из пула объектов?
    (ii) инстанциируется каждый раз из префаба, например, в момент гибели врага, открытия сундука и т.д.?
    (iii) как-то еще, например, сложена куча объектов в координатах (100000, 100000, 100000), а вы перетаскиваете их в место, где они должны появиться при той же гибели врага

    B. когда вы подходите к объекту и нажимаете кнопку, соответствующую "Хапнуть шмот", то
    (i) ГО возвращается в пул объектов
    (ii) ГО удаляется через Delete(ГО);
    (iii) ГО перемещается в дефолтные координаты (100000, 100000, 100000)
    и добавляете запись в List/Array

    Вы можете создать для пула объектов (i), для префабов (ii) для объектов в координатах (iii) их описание, например, БД с ними и их характеристиками, и при необходимости выкладывания ГО брать ID ГО и выполнять действия в п. A,
    причем касательно ВЫБРОСА ГО следует ГО назначить координаты игрока (или рядом с ним в случае использования физики, чтобы ГО не застрял в игроке, или коллайдер игрока не отбросил коллайдер ГО вместе с его коллайдером :)) с соответствующей позицией по Y, которая может быть взята из координаты Y персонажа (все зависит от того, где находится pivot point меша игрока), или м.б. использован RayCast вертикально вниз, чтобы определить точку пересечения с террейном.
    И.... назначить ГО вычисленные координаты.
    Можете задать ГО импульс вперед. Перед - есть вектор forward персонажа. минус forward сделает из игрока серебряное копытце, ну... или подходит для выброса кирпичей очень испуганным персонажем...


    http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
    VKонтакте 3Dbuffer

    Последнее:

    Новый раздел "Текстуры"

    Как запатентовать, защитить техническое решение, игру, идею


    Сообщение отредактировал MANMANA - Вторник, 14 Апреля 2015, 19:41
    Pe4enkaДата: Вторник, 14 Апреля 2015, 20:11 | Сообщение # 6917
    почетный гость
    Сейчас нет на сайте
    А, извини ). В общем, у меня делается так.
    Есть 3 префаба.
    1) Который лежит на сцене(после подбора он уничтожается).
    2) Появляется в инвентаре после уничтожения первого(он пустой).
    3) Уже игровой, которым можно стрелять.

    Основная проблема это с выкидыванием и повторным подбором оружия.(Так-же здесь причастен скрипт смены оружия).
    Так вот, пока у меня это сделано так. После полного подбора оружия(сначала он идет просто в инвентарь , а уже оттуда его нужно переместить в активный слот), появляется кнопка выброса и оружие выкидывается полностью, но перед тем как его выкинуть нужно достать это оружие .(Вот тут и трабл, скрипт смены оружия перестает работать ибо нет 1 объекта оружия). И остальные оружия просто не выкидываются... Нашел некое неполное решение, после удаления оружия создается пустышка и занимает место пропавшего оружия, это все работает до тех пор, пока не нужно снова подбирать оружие, ибо эти пустышки не удаляются и отсюда выходит что скрипт смены оружия просто не может переключится на них...И еще одна проблема, после выкидывания и повторного подбора не работает вторая кнопка выброса в окне инвентаря(у меня два окна- один уже с надетыми вещами, а другой с теми которые просто лежат в инвентаре).. Фух, надеюсь понятно..


    Бадабум!
    MANMANAДата: Вторник, 14 Апреля 2015, 21:04 | Сообщение # 6918
    почти ветеран
    Сейчас нет на сайте
    как-то все это мудрено. по-хорошему разбираться в коде нужно... smile

    http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
    VKонтакте 3Dbuffer

    Последнее:

    Новый раздел "Текстуры"

    Как запатентовать, защитить техническое решение, игру, идею
    Pe4enkaДата: Среда, 15 Апреля 2015, 13:30 | Сообщение # 6919
    почетный гость
    Сейчас нет на сайте
    MANMANA, Ну, есть немного. Если есть время могу сюда скинуть )

    Бадабум!

    Сообщение отредактировал Pe4enka - Среда, 15 Апреля 2015, 13:34
    MANMANAДата: Среда, 15 Апреля 2015, 15:21 | Сообщение # 6920
    почти ветеран
    Сейчас нет на сайте
    не, не, не...
    кто учится, я или Вы?:)


    http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
    VKонтакте 3Dbuffer

    Последнее:

    Новый раздел "Текстуры"

    Как запатентовать, защитить техническое решение, игру, идею
    Поиск:

    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг