Пятница, 15 Ноября 2024, 08:57

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • ivan2009Дата: Вторник, 28 Июля 2015, 06:51 | Сообщение # 7181
    частый гость
    Сейчас нет на сайте
    Цитата seaman ()
    Смотрим AddForce. Что там первым параметром? А Вы что передаете?

    Ну... первый параметр вектор,я так думал что это координаты либо цели либо персонажа.Пробовал оба варианта...не то... Теперь думаю вот что это координаты точки от куда будет направлена сила...ну эт ток мои догадки..
    А про линейную алгебру взял на заметку, на работе почитаю. Спасибо
    Knife_KillДата: Вторник, 28 Июля 2015, 09:19 | Сообщение # 7182
    частый гость
    Сейчас нет на сайте
    Здравствуйте, возникла проблема при создании скрипта стрельбы, а именно - пуля создается, но не летит.

    Код
    using UnityEngine;
    using System.Collections;

    public class SpawnBullet : MonoBehaviour {

         public int forceSpeed = 800;
         public GameObject bullet;

         // Use this for initialization
         void Start()
         {

         }

         // Update is called once per frame
         void Update()
         {
             if (Input.GetKeyDown(KeyCode.Space))
             {
                 Transform prefabInstance = (Transform)Instantiate(bullet, GameObject.Find("Player").transform.position, Quaternion.identity);
               //  prefabInstance.GetComponent<Rigidbody2D>().AddForce(transform.right * 800);

             }

         }
         void FixUpdate()
         {

             prefabInstance.GetComponent<Rigidbody2D>().AddForce(transform.forward * 800);
         }
    }


    Самое интересное, если я "prefabInstance.GetComponent<Rigidbody2D>().AddForce(transform.forward * 800);" прописываю в Update, то код запускается, но ничего не происходит (т.к. физика прописывается в FixUpdate), но если я пропишу эту же строчку в FixUpdate, то пишет что-то типа "имя prefabInstance не существует в данном контексте". Как это исправить?
    P.s. пытался прописать private GameObject prefabInstance = null; но ничего не произошло, пуля так же спавнится, но не летит (тупо падает).
    Так же, на пуле масса 0.1, так что, дело не в этом.
    pixeyeДата: Вторник, 28 Июля 2015, 09:38 | Сообщение # 7183
    Red Winter Software
    Сейчас нет на сайте
    Цитата Knife_Kill ()
    FixUpdate, то пишет что-то типа "имя prefabInstance не существует в данном контексте". Как это исправить?


    Исправить отсутствие знаний можно только упорной учебой. Ты понимаешь, что объявил локальную переменную в методе Update ? prefabInstance. Просто объясни мне на основании какого умозаключения ты решил, что она есть в FixUpdate? КОНЕЧНО он напишет что префабинстанс не существует. И это так очевидно.
    Код
      Transform prefabInstance;
        void Update()   
           {   
               if (Input.GetKeyDown(KeyCode.Space))   
               {   
                      prefabInstance = (Transform)Instantiate(bullet, GameObject.Find("Player").transform.position, Quaternion.identity);   
                 //  prefabInstance.GetComponent<Rigidbody2D>().AddForce(transform.right * 800);   

               }   

           }


    А вот так вот ошибку писать не будет.

    Использовать в Апдейтах ГетКомпонент - моветон и вредно. Делай рефы. Иначе он каждый кадр будет заниматься поиском ригидбоди в этом объекте. Пожалей машину.


    ACTORS - мой фреймворк на Unity
    Until We Die - игра над которой работаю



    Сообщение отредактировал pixeye - Вторник, 28 Июля 2015, 09:38
    pixeyeДата: Вторник, 28 Июля 2015, 10:03 | Сообщение # 7184
    Red Winter Software
    Сейчас нет на сайте




    ACTORS - мой фреймворк на Unity
    Until We Die - игра над которой работаю

    Knife_KillДата: Вторник, 28 Июля 2015, 10:36 | Сообщение # 7185
    частый гость
    Сейчас нет на сайте
    pixeye, Спасибо!

    Сообщение отредактировал Knife_Kill - Вторник, 28 Июля 2015, 10:39
    PakypcДата: Вторник, 28 Июля 2015, 13:13 | Сообщение # 7186
    был не раз
    Сейчас нет на сайте
    Цитата seaman ()
    Вам тоже рекомендуется к прочтению и изучению

    Это ivan2009 сижу с планшета на работе...
    прочитал я про линейную алгебру...
    написано что бы получить направление от точька А к точке Б нужно Б-А.. так и сделал.
    получил трансформ позишн патрона получил позишн моба отминусовал...сделал 2 варинта normalaized и нет.
    добавлял результат Б-А(как нормал так и не нормал) в первый параметр addForse летит патрон куда попало...
    уже пробовал и через чарактер контроллер через метод SimpleMove запускать, все раано летит куда попало...
    не могу понять в чем дело
    seamanДата: Вторник, 28 Июля 2015, 14:03 | Сообщение # 7187
    старожил
    Сейчас нет на сайте
    Цитата
    сижу с планшета на работе...

    Как зайдешь с ПС приведи код какой теперь стал.
    А вообще pixeye выше уже все сделал. Копипасть...
    XимераДата: Вторник, 28 Июля 2015, 14:15 | Сообщение # 7188
    был не раз
    Сейчас нет на сайте
    Почему если wrap mode ставить на clamp в итоге я всеравно получаю артефакты в виде щелей в стыках текстур skybox'а?
    pixeyeДата: Вторник, 28 Июля 2015, 14:50 | Сообщение # 7189
    Red Winter Software
    Сейчас нет на сайте
    Цитата seaman ()
    А вообще pixeye выше уже все сделал. Копипасть...


    Не, я пример обычный привел для knife kill без таргет позишин


    ACTORS - мой фреймворк на Unity
    Until We Die - игра над которой работаю

    andarkyДата: Вторник, 28 Июля 2015, 17:17 | Сообщение # 7190
    старожил
    Сейчас нет на сайте
    кто имел дело с видео?
    мне нужно было небольшой ролик (800х600, fps=30, 120sec.) воткнуть в приложение (Win/WEB)
    это ведь делается текстурой? а запустить можно только скриптом - это решено.

    2 вопроса:
    • как узнать о том что проигрывание дошло до конца? только счетчиком в Update()?
    • почему жутко упал FPS?? как слайдшоу - 5 кадров в секунду

    исходник нормальный, Mp4 (h.264)

    Что делать?

    можно ли играть видео на текстуру из внешнего файла?



    Моя страничка по дизайну
    GameDev//Design//3D
    Ютубчик
    ivan2009Дата: Вторник, 28 Июля 2015, 18:07 | Сообщение # 7191
    частый гость
    Сейчас нет на сайте
    Цитата seaman ()
    Как зайдешь с ПС приведи код какой теперь стал.
    А вообще pixeye выше уже все сделал. Копипасть...


    Да у меня вроде всё так же в адд форс только для 3д ...
    Ну хз где я пропустил ошибку в упор не вижу...


    шарик спавнится вяло(причем что хоть ставлю shoot что хоть ставлю shootNormal).
    seamanДата: Вторник, 28 Июля 2015, 18:34 | Сообщение # 7192
    старожил
    Сейчас нет на сайте
    Пробуйте ForceMode.Impulse ForceMode.Force
    ivan2009Дата: Вторник, 28 Июля 2015, 20:03 | Сообщение # 7193
    частый гость
    Сейчас нет на сайте
    Цитата seaman ()
    Пробуйте ForceMode.Impulse ForceMode.Force

    пробовал оба варианта... шар ведет себя странно, в зависимости от положения персонажа шары вылетают по разному(с разной скоростью)
    XимераДата: Вторник, 28 Июля 2015, 21:03 | Сообщение # 7194
    был не раз
    Сейчас нет на сайте
    Цитата Xимера ()
    Почему если wrap mode ставить на clamp в итоге я всеравно получаю артефакты в виде щелей в стыках текстур skybox'а?

    Прикрепил скрин под спойлер.
    ReSeRДата: Вторник, 28 Июля 2015, 23:58 | Сообщение # 7195
    постоянный участник
    Сейчас нет на сайте
    Ребята подскажите,как сделать событие не по нажатию на кнопку (UI) а при удерживание?)

    FastRoad[PC][Android](Забыто)
    COSMO 3D[PC][Android](Забыто)
    SnowBall[PC][Android](Замороженно)
    Knife_KillДата: Среда, 29 Июля 2015, 00:20 | Сообщение # 7196
    частый гость
    Сейчас нет на сайте
    Здравствуйте, в связи с тем, что у меня, в моем 2D проекте возникли проблемы с NavMesh'eм, то я решил попробовать сделать аналогичный платформер, но уже в 3D проекте (при создании проекта вместо 2D выбрать 3D), стоит ли это делать? И решится ли проблема с NavMesh'ем? (по идее должна)
    ... Уже сил нет возиться с этим NavMeshem в 2D проекте...
    ivan2009Дата: Среда, 29 Июля 2015, 06:25 | Сообщение # 7197
    частый гость
    Сейчас нет на сайте
    Цитата ReSeR ()
    Ребята подскажите,как сделать событие не по нажатию на кнопку (UI) а при удерживание?)

    Input.GetMouseButton
    PakypcДата: Среда, 29 Июля 2015, 11:12 | Сообщение # 7198
    был не раз
    Сейчас нет на сайте
    Здравствуйте.Я все с той же проблемой...Не могу настроить патрон что бы летел к цели... немного переделал систему поиска цели,думал может в ней проблема а оказывается нет патрон стабильно еле двигаясь ползет куда то в старону(не в сторону моба).Я уже пересмотрел кучу примеров ну вроде все как у меня...уже просто не знаю в каком направлении искать ошибку.
    Цель -> моб у меня моздается динамически и постоянно двигается персонаж тоже передвигается и на ПКМ должен создавать патрон с префаба который в свою очередь выбирает ближайшую цель и двигается к ней. Это я для конкретики написал чего хочу добится...
    ниже новый код выстрела

    Исходник кода копировал в текстовый документ после по блютузу с ноута на планшет скидывал...вобщем после долгого пути с коментами такая борода...но на работу кода они не влияют так что думаю не страшно:-)

    ForseMode уже пробовал в 3 вариантах Impuls, Force, VelocityChange патрон всеравно кривой...
    Подскажите в каком направлении искать ошибку или ошибки
    Knife_KillДата: Среда, 29 Июля 2015, 13:13 | Сообщение # 7199
    частый гость
    Сейчас нет на сайте
    Есть вот такой вот код:

    Код
    using PigeonCoopToolkit.Navmesh2D;
    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;

    public class PathFollower : MonoBehaviour
    {

         public Transform pathingTarget;
         private List<Vector2> path;
       
      // LateUpdate is called once per frame
      void Update () {

          if(Input.GetKeyDown(KeyCode.E))
          {
              path = NavMesh2D.GetSmoothedPath(transform.position, pathingTarget.position);
          }

             if(path != null && path.Count != 0)
             {
                 transform.position = Vector2.MoveTowards(transform.position, path[0], 5*Time.deltaTime);
                 if(Vector2.Distance(transform.position,path[0]) < 0.01f)
                 {
                     path.RemoveAt(0);
                 }
             }
      }
    }


    Работает он только тогда, когда персонаж войдет в специальную зону и нажмет "E", как сделать что бы скрипт работал сразу, когда персонаж войдет в эту зону? (скрипт висит на противнике)
    Если я убираю строчку " if(Input.GetKeyDown(KeyCode.E))" - то при входе в зону ничего не происходит...

    Мне тут подсказали вот что:

    Но как это можно сделать? А точней построить путь до таргета. Через Vector2.Distance? Если да, то как проверить вот это - точка предыдущего (при построении пути) таргета достигнута?


    Сообщение отредактировал Knife_Kill - Среда, 29 Июля 2015, 17:19
    БозингарДата: Среда, 29 Июля 2015, 16:29 | Сообщение # 7200
    почетный гость
    Сейчас нет на сайте
    Чем лучше двигать 2d-персонажа в изометрии? Если нужна реалистичная физическая модель.

    #Хийвэл бүү ай, айвал бүү хий.
    Поиск:

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