Суббота, 16 Ноября 2024, 08:39

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • SnakeRДата: Понедельник, 02 Апреля 2012, 12:46 | Сообщение # 1821
    постоянный участник
    Сейчас нет на сайте
    Делаю кнопки на плашках. Стандартный GUI не нравится. Но вот вопрос, как сделать событие нажатия на плашку мышкой/пальцем(для мобильника) ??

    Unity3D Developer
    Ваш лучший помощник при разработке в Unity3D
    MyACTДата: Понедельник, 02 Апреля 2012, 13:38 | Сообщение # 1822
    C# CODERS
    Сейчас нет на сайте
    Через команду,пробуй Touch или как то так,что то похожее видел когда набирал smile

    3дэшечки: https://sketchfab.com/myactyindie
    Курентли воркс он: https://myacty.itch.io/raskopnik
    SnakeRДата: Понедельник, 02 Апреля 2012, 13:39 | Сообщение # 1823
    постоянный участник
    Сейчас нет на сайте
    MyACT, про тач я знаю =) Вопрос именно как узнать что я нажал там где надо и именно на свою плашку. Луч пускать что ли...

    Unity3D Developer
    Ваш лучший помощник при разработке в Unity3D


    Сообщение отредактировал SnakeR - Понедельник, 02 Апреля 2012, 13:40
    PovstalezДата: Понедельник, 02 Апреля 2012, 14:48 | Сообщение # 1824
    постоянный участник
    Сейчас нет на сайте
    Quote (SnakeR)
    про тач я знаю =) Вопрос именно как узнать что я нажал там где надо и именно на свою плашку. Луч пускать что ли...

    а отслеживать нажатие в самой плашке?
    Вроди OnMouseDown за это отвечает.
    СамоделкинДата: Понедельник, 02 Апреля 2012, 17:24 | Сообщение # 1825
    участник
    Сейчас нет на сайте
    Че-то я не догоняю в чем сложность. Разве обязательно Touch должен быть привязан к button? Видимо не понял вопрос.
    Если интересует конкретное место тыка на экране, то мб touch.position вам поможет?

    Добавлено (02.04.2012, 17:24)
    ---------------------------------------------
    Подскажите почему когда я делаю chek for updates то вижу сообщение: "The Unity Editor is up to date. Curently installed version 3.4.2f3". Как именно обновиться до версии 3.5 (и стоит ли?)

    Kp0c124578Дата: Понедельник, 02 Апреля 2012, 19:45 | Сообщение # 1826
    был не раз
    Сейчас нет на сайте
    Кто подскажет как получать процент загрузки при использрвании Application.LoadLevelAsync ?
    _LeVoID_Дата: Понедельник, 02 Апреля 2012, 22:45 | Сообщение # 1827
    VoID
    Сейчас нет на сайте
    Можете подсказать пожалуйста, как реализовать такой момент. Получается, когда игрок становится на платформу, то подлетает вверх (действин аналогично прыжку, только сильнее и срабатывает только при соприкосновении с платформой).

    QLines v1.3
    Forest Owl
    PovstalezДата: Вторник, 03 Апреля 2012, 00:08 | Сообщение # 1828
    постоянный участник
    Сейчас нет на сайте
    Quote (_LeVoID_)
    Можете подсказать пожалуйста, как реализовать такой момент. Получается, когда игрок становится на платформу, то подлетает вверх (действин аналогично прыжку, только сильнее и срабатывает только при соприкосновении с платформой).

    Ну тут через триггер. OnTriggerEnter(Stay) и даёшь импульс игроку по оси y
    MyACTДата: Вторник, 03 Апреля 2012, 06:12 | Сообщение # 1829
    C# CODERS
    Сейчас нет на сайте
    _LeVoID_, как сказали выше,но ты только добавь Vector3 и будет готово

    3дэшечки: https://sketchfab.com/myactyindie
    Курентли воркс он: https://myacty.itch.io/raskopnik
    YeT_1Дата: Вторник, 03 Апреля 2012, 18:39 | Сообщение # 1830
    3D Rad Guru
    Сейчас нет на сайте
    Всем привет.
    Может и был уже такой вопрос, может и нет, я не видел. (Может и плохо смотрел smile ).
    Суть вопроса в экспорте моделей из Google SketchUP в формат, который годен для Unity ( насколько я знаю это *.fbx ).
    Есть ли у кого ссылка на данный плагин? Буду очень благодарен, ну и как стимул - плюс в репутацию wink
    СамоделкинДата: Вторник, 03 Апреля 2012, 19:49 | Сообщение # 1831
    участник
    Сейчас нет на сайте
    PlayUp tools называется плагин.
    Ссылку посеял, но ее легко нагуглить. . Также этот плагин бесплатно доступен на Asset Store прямо из Интерфейса Юнити. Плагин ставится на сам СкетчАп и в Юнити.
    На сайте самих разработчиков плагина рекомендую также прочесть все рекомендации о том как лучше делать модели для Юнити и перегонять их (там страничка всего) и подробный туториал.
    Рекомендую поставить на ScetchUp еще и плагины которые на своей странице рекомендуют авторы PlayUp - это поможет избежать некоторых косяков ScetchUp типо того, что вместо нескольких полигонов создается целая куча. И вообще на их сайте много полезных и простых советов (всегда все объединять в компоненты, уменьшать простыми способами кол-во полигонов и тому подобное)
    Вспомнил! http://www.playuptools.com/ biggrin
    ---------------------------------------------------------------------

    А я зашел свой вопрос задать smile
    Есть платформа на которую падают предметы (если грбо,то 3Dтетрис). Требуется озвучить столкновение предметов с платформой. Платформа неподвижна и можно если что использовать координаты падающего предмета как условие. Самое простое для меня, что пришло в голову - это добавить аудиоисточники к префабам падающих предметов и задать срабатывание при достижении нужного значения Y. Но тогда создается очень много аудиоисточников.
    Я пробовал добавить в скрипт падающего объекта (добавив к нему аудиокомпонент) следующее:
    Code
    void Update(){
            if (myTransform.position.y <= 1)
       myTransform.audio.Play();
          }


    Но не работает. (правда иногда внезапно и невпопад клип вдруг проигрывается)
    А вот добавить в платформу аудиоисточник и в скрипте привязанному к платформе заставить его срабатывать я никак не могу. Прошу помощи (С#)
    ЗЫЫ: Если я хочу (но это необязательно), чтобы звук исходил именно из точки соприкосновения падающего предмета и платформы, уадиоисточник нужно добавить в префаб падающих объектов или в платформу и как-то "двигать" его?
    спс


    Сообщение отредактировал Самоделкин - Вторник, 03 Апреля 2012, 20:51
    SnakeRДата: Вторник, 03 Апреля 2012, 20:41 | Сообщение # 1832
    постоянный участник
    Сейчас нет на сайте
    Самоделкин, сделай префаб (пустышка с источником звука), создавай префаб в точке столкновения и звук будет проигрываться в этом месте.

    Unity3D Developer
    Ваш лучший помощник при разработке в Unity3D
    СамоделкинДата: Вторник, 03 Апреля 2012, 21:41 | Сообщение # 1833
    участник
    Сейчас нет на сайте
    SnakeR спс за подсказку
    Я создал префаб "boom" по твоему совету (в нем только transform и audiosourse). И поскольку у меня одновременно несколько клонов объектов могут падать, я добавил строки для аудио в скрипт прикрепленный к падающем объекту (это правильно или стоило крепить скрипт к чему другому в сцене?).
    Звук должен срабатывать когда объект достигает y=1. Если коротко, то приблизительно так:
    Code

    public class BrickScript : MonoBehaviour    

    {
        //myTransform это падающий объект, boom - это префаб со звуком
               private Transform myTransform;
               public Transform boom;    
            
             void Update(){
             if (myTransform.position.y > 1)    
                myTransform.position -= Vector3.up * fallspeed * Time.deltaTime;    
             if (myTransform.position.y <= 1)
                ypos =1 - myTransform.position.y;
                myTransform.position =myTransform.position +new Vector3(0,ypos,0);
             
              // Создание префаба boom в сцене при достижении Y=1
             if (myTransform.position.y <= 1)
                Instantiate(boom, myTransform.position,Quaternion.identity);
             }
    }

    Но вот при приземлении звук начинает запускаться постоянно и бесконечно и накладываться. Это из-за функции Update видимо? Но она ведь необходима чтобы y-координата отслеживалась постоянно. Посоветуйте как нужно поступить? И что делать с префабом boom после того как звук проиграется?
    Уничтожить или замьютить и как именно? Он ведь уничтожится еще до того как проиграет звук?


    Сообщение отредактировал Самоделкин - Вторник, 03 Апреля 2012, 21:47
    SnakeRДата: Вторник, 03 Апреля 2012, 22:06 | Сообщение # 1834
    постоянный участник
    Сейчас нет на сайте
    Самоделкин, используй audio.loop = false;
    Вообще почитай - AudioSource

    Добавлено (03.04.2012, 22:06)
    ---------------------------------------------
    И еще, хотя код давать не в моих принципах, но все же.

    Code

    using UnityEngine;
    using System.Collections;

    public class Death : MonoBehaviour {

        
      IEnumerator DestroySoundIE () {
       
             audio.Play();
       
      gameObject.renderer.enabled = false;
       
             gameObject.collider.enabled = false;
       
             while (audio.isPlaying) yield return null;
       
             Destroy(gameObject);
       
    }
       
    void OnTriggerEnter (Collider bullet) {
                     
             if (bullet.gameObject.tag == "Bullet") {
       
                     if (audio != null)  
         StartCoroutine("DestroySoundIE");
                     else Destroy(gameObject);
       
             }
      }
    }


    Это код смерти противника при попадании в него пули и проигрывание звука, переписать под твой случай труда составить не должно.
    Вешать на префаб со звуком. Суть в том, что при срабатывании коллайдера, запускается корутина с проигрыванием звука, пока звук не проиграется до конца, объект не уничтожится. А когда закончится звук, объект уничтожится. Собственно и цикличности проигрывания звука не будет.


    Unity3D Developer
    Ваш лучший помощник при разработке в Unity3D
    СамоделкинДата: Вторник, 03 Апреля 2012, 22:57 | Сообщение # 1835
    участник
    Сейчас нет на сайте
    Спасибо. Но вообще не в цикличности проигрывания была засада (loop отключен и так), а в том что префаб со звуком создавался постоянно пока условие верно, а как сделать это однократно при постоянно верном условии я не знаю. У меня ведь создается огромное кол-во префабов со звуком для одного и того же объекта.
    Попробую под свои нужды переписать. Вот только разберусь с Coroutine и YieldInstruction smile

    --------------------------------------
    UPD
    Не могу победить эту фигню. Пуля ведь в твоем случае тоже уничтожается (как и враг). А у меня все объекты остаются на месте и префаб со звуком продолжает создаваться.
    ------------------------------
    Как-то осилил я вчера эту фигню. Другим способом, но пока еще толком не понял каким smile подтормаживает только, но робит smile


    Сообщение отредактировал Самоделкин - Среда, 04 Апреля 2012, 22:49
    Knight1032Дата: Пятница, 06 Апреля 2012, 19:51 | Сообщение # 1836
    заслуженный участник
    Сейчас нет на сайте
    как реализовать код движения предмета в мышь но только при её нажатии? (какой скрипт обеспечивает движение в координаты мыши(цешка или жаба-без разницы)).

    Да, я программист, дизайнер, сценарист,
    Я сам себе издатель и сам себе игрок...
    EyeДата: Пятница, 06 Апреля 2012, 19:55 | Сообщение # 1837
    заслуженный участник
    Сейчас нет на сайте
    Knight1032, http://gcup.ru/publ/unity3d_dvizhenie_v_storonu_kursora/1-1-0-291

    ICQ: 422190728,
    E-Mail: funnyalien@yandex.ru,
    Jabber: funnyalien@jabber.ru,
    Steam: funnyalienvalentine,
    Twitter: MrFunnyAlien,
    Skype: happyconsole,
    ВКонтакте: vk.com/twinemen,
    Мобильный: +79199212414.


    Сообщение отредактировал Eye - Пятница, 06 Апреля 2012, 19:55
    Knight1032Дата: Пятница, 06 Апреля 2012, 20:01 | Сообщение # 1838
    заслуженный участник
    Сейчас нет на сайте
    Eye, respect

    Да, я программист, дизайнер, сценарист,
    Я сам себе издатель и сам себе игрок...
    ЛевшаДата: Суббота, 07 Апреля 2012, 18:34 | Сообщение # 1839
    почти ветеран
    Сейчас нет на сайте
    Quote (Knight1032)
    как реализовать код движения предмета в мышь но только при её нажатии?

    Code
    var plrCam : Camera;
    var moveSpeed : int = 5;
    var rotateSpeed : int = 1;
    var targPos : Vector3;

    function Update () {     
           if(Input.GetMouseButtonDown(0))  {
                   var ray = plrCam.ScreenPointToRay (Input.mousePosition);
                   var hit : RaycastHit;
               if (Physics.Raycast(ray, hit))
                   targPos = hit.point;
               }
                   var targDir = targPos - transform.position;
                   var targDist = Vector3.Distance(transform.position, targPos);
               if (targDist > 1.5) {
                   transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.LookRotation(targDir), rotateSpeed * Time.deltaTime);
                   transform.rotation.z = 0;  transform.rotation.x = 0;
                   transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
           }
    }


    X.cor.R (Prologue)

    Сообщение отредактировал Левша - Суббота, 07 Апреля 2012, 18:35
    ReSeRДата: Воскресенье, 08 Апреля 2012, 21:42 | Сообщение # 1840
    постоянный участник
    Сейчас нет на сайте
    удалено... biggrin

    FastRoad[PC][Android](Забыто)
    COSMO 3D[PC][Android](Забыто)
    SnowBall[PC][Android](Замороженно)


    Сообщение отредактировал ReSeR - Воскресенье, 08 Апреля 2012, 21:43
    Поиск:

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