Воскресенье, 29 Сентября 2024, 04:36

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • KiraДата: Понедельник, 08 Апреля 2013, 16:44 | Сообщение # 3821
    заслуженный участник
    Сейчас нет на сайте
    Knight1032,Я все правильно говорю.
    Поставь код в старт и будет 1 раз выполняться.
    Кто же вас поймет если вы загадками говорите.
    Цитата (Knight1032)
    Мне надо, чтоб если елемент массива = какому-то числу то к переменной один раз добавилась такая-та переменная, если значение меняется - другая...


    Во первых жуть, проверять массив постоянно на изменение и если он изменился изменить wacko . Логика увы.
    (Правильно будет, все это запихнуть в ф-цию, вызывать ее при смене значения а не каждый кадр. )
    Во вторых ваш вариант подразумевает существование двух одинаковых массивов.
    1- основной 2 - копия по которому сверяются изменения.
    Добавь вот что
    if( aBackpackOld[j]!=aBackpack[j]){ // Проверить изменился ли массив.)

    if(aBackpack[j]==1)
    aBackpackTextures[j]=id1Text;
    aBackpackWeight[j]=id1Weight;
    PlayerWeight+=id1Weight;
    aBackpackOld[j]=1;//итд
    }

    }

    Цитата (Knight1032)
    Что делает брейк?

    выход, дальше проверяться не будет. Его отсутствие позволит выполнение дальше. Чем можно воспользоваться в хитрой логике.
    ваш код выглядел бы так switche
    swithc(aBackpack[j])
    {
    case 1:
    aBackpackTextures[j]=id1Text;
    aBackpackWeight[j]=id1Weight;
    PlayerWeight+=id1Weight;
    breack;
    icase 2:
    aBackpackTextures[j]=id2Text;
    aBackpackWeight[j]=id2Weight;
    PlayerWeight+=id2Weight;
    breack;
    case 3:
    aBackpackTextures[j]=id3Text;
    aBackpackWeight[j]=id3Weight;
    PlayerWeight+=id3Weight;
    breack;
    }


    Unity3d разработчик на С#. Лучшее спасибо + в репу.
    "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
    "Человек, который никогда не ошибался никогда не пробовал ничего нового".
    "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн


    Сообщение отредактировал Kira - Понедельник, 08 Апреля 2013, 16:47
    Fr0sTДата: Понедельник, 08 Апреля 2013, 20:22 | Сообщение # 3822
    постоянный участник
    Сейчас нет на сайте
    А где можно почитать(или посмотреть)про character controller желательно на русском?



    KiraДата: Понедельник, 08 Апреля 2013, 20:34 | Сообщение # 3823
    заслуженный участник
    Сейчас нет на сайте
    Цитата (Fr0sT)
    А где можно почитать(или посмотреть)про character controller желательно на русском?

    Character Controller


    Unity3d разработчик на С#. Лучшее спасибо + в репу.
    "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
    "Человек, который никогда не ошибался никогда не пробовал ничего нового".
    "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
    Fr0sTДата: Понедельник, 08 Апреля 2013, 21:04 | Сообщение # 3824
    постоянный участник
    Сейчас нет на сайте
    ну да яж про это не знаю совсем))ладно пох с этим контроллером.
    Помогите лучше с этим.Некак не могу сделать чтобы нормально работало.Вот пишу я transform.rotation = Quaternion.FromToRotation(Vector3.up,hitFloor.normal); хочу сделать чтобы у меня перс перпендикулярно поверхности двигался.Всякой фигни перепробовал ну ничего не помогает(((Короче может ктонить написать что там нужно сделать чтобы он просто перпендликулярно поверхности стоял,учитывая поворот.Я уже и без character controllera делал с rigidbody но там со столкновениями и с гравитацией муть получается,но двигается нормально,как надо.А с этим character controllerom немогу сделать.Блин.




    KiraДата: Понедельник, 08 Апреля 2013, 21:32 | Сообщение # 3825
    заслуженный участник
    Сейчас нет на сайте
    Fr0sT, нужно чтоб он менял поворот в зависимости от наклона поверхности или только пенпердикулярно конкретной оси.

    transform.rotation = Quaternion.EulerAngles(new Vector3(0, y, 0));
    сохраняй позицию х и z перед изменением поворотов. а после присваивай обратно.

    Или по подробней что надо? И как выходит.


    Unity3d разработчик на С#. Лучшее спасибо + в репу.
    "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
    "Человек, который никогда не ошибался никогда не пробовал ничего нового".
    "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн


    Сообщение отредактировал Kira - Понедельник, 08 Апреля 2013, 21:35
    madballer34Дата: Понедельник, 08 Апреля 2013, 21:37 | Сообщение # 3826
    уже был
    Сейчас нет на сайте
    Не подскажите где почитать про ИИ для гонок? Или как его реализовать вообще
    Fr0sTДата: Понедельник, 08 Апреля 2013, 22:20 | Сообщение # 3827
    постоянный участник
    Сейчас нет на сайте
    Kira, ну я тут поразмышлял и впринцепе поддогнал.Да нужно чтобы персонаж был перпендикулярно плоскости на которой стоит.Типо как в играх про соника или в rayman origins.Создам пустую капсулу и дам ей character controller.Поворачивать это дело буду по осям X и Z(при помощи нормали к поверхности).У оставлю неизменной.Капсуле дабавлю модель персонажа и буду поворачивать её в сторону движения перса.Вот.А двигать капсулу буду не через controller.move и transform.translate - чтобы использовать движение space.self,чтобы он смог потом плавно перебегать на стену и потом на потолок.Space.self чтобы двигать в ту сторону куда повернут по тем самым осям Z и X.Думаю должно сработать)))Пожже опробую.





    Сообщение отредактировал Fr0sT - Понедельник, 08 Апреля 2013, 22:21
    Knight1032Дата: Понедельник, 08 Апреля 2013, 22:32 | Сообщение # 3828
    заслуженный участник
    Сейчас нет на сайте
    madballer34, по вейпоинтам...

    Да, я программист, дизайнер, сценарист,
    Я сам себе издатель и сам себе игрок...
    KiraДата: Вторник, 09 Апреля 2013, 11:13 | Сообщение # 3829
    заслуженный участник
    Сейчас нет на сайте
    madballer34,
    много чего про ИИ в целом

    А вот ещё по АИ (обход препятствий, следование, групповое взаимодействие ) http://opensteer.sourceforge.net/
    тоже с открытым кодом


    Unity3d разработчик на С#. Лучшее спасибо + в репу.
    "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
    "Человек, который никогда не ошибался никогда не пробовал ничего нового".
    "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
    NoterstoneДата: Четверг, 11 Апреля 2013, 21:09 | Сообщение # 3830
    участник
    Сейчас нет на сайте
    Где в юнити LightMass?
    White9Дата: Четверг, 11 Апреля 2013, 21:35 | Сообщение # 3831
    заслуженный участник
    Сейчас нет на сайте
    Если ты имеешь ввиду имитацию объёмного освещения, то включи Deffered lighting в Edit->Project Settings->Player->Other Settings->Rendering Path (только для pro версии)
    romgermanДата: Суббота, 13 Апреля 2013, 20:34 | Сообщение # 3832
    старожил
    Сейчас нет на сайте
    Привет. У меня тут такая проблема:
    Когда пишу так:
    Код

    var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    var hit : RaycastHit;
       
    if(Physics.Raycast(ray,hit)) {
        
    }

    Вылезает эта ошибка.. и так каждый раз.. ведь это должно работать..
    Цитата
    NullReferenceException
    UnityEngine.Camera.ScreenPointToRay (Vector3 position) (at C:/BuildAgent/work/812c4f5049264fad/Runtime/ExportGenerated/Editor/UnityEngineCamera.cs:291)
    MainRPGcontroller.Update () (at Assets/JS/MainRPGcontroller.js:5)
    [_RHYME_]Дата: Воскресенье, 14 Апреля 2013, 19:47 | Сообщение # 3833
    частый гость
    Сейчас нет на сайте
    Как сделать что бы First Person Controller не проходил сквозь моделей из макса и сквозь деревьев. Как ещё сделать что бы прыжок был быстрый, а не медленный, а то он как будто летит.

    Люди не летают, один сказал, все повторили. Мы доказали обратное © Трейсеры
    White9Дата: Воскресенье, 14 Апреля 2013, 20:00 | Сообщение # 3834
    заслуженный участник
    Сейчас нет на сайте
    romgerman, попробуй добавить в условие длину луча. Вот пример из scripting Reference

    [_RHYME_], выстави у импортированных объектов generate colliders или выбирай форму коллидера в component-> phisics. При этом нужный объект обязательно должен быть выделен
    [_RHYME_]Дата: Воскресенье, 14 Апреля 2013, 20:12 | Сообщение # 3835
    частый гость
    Сейчас нет на сайте
    White9, Спасибо получилось, а:
    Цитата
    Как ещё сделать что бы прыжок был быстрый, а не медленный, а то он как будто летит.


    Люди не летают, один сказал, все повторили. Мы доказали обратное © Трейсеры
    White9Дата: Воскресенье, 14 Апреля 2013, 20:46 | Сообщение # 3836
    заслуженный участник
    Сейчас нет на сайте
    [_RHYME_], самый простой вариант - выдели объект First Person Controller и найди у него скрипт Character motor. Там во вкладке movement есть параметр Gravity (притяжение). Измени его, например, с 20 до 50
    [_RHYME_]Дата: Воскресенье, 14 Апреля 2013, 20:53 | Сообщение # 3837
    частый гость
    Сейчас нет на сайте
    А как перенести своего персонажа из макса на 3d person contraller и сделать его активным, что бы он так же мог бегать/прыгать, только заменить его на свою модель.

    Люди не летают, один сказал, все повторили. Мы доказали обратное © Трейсеры
    White9Дата: Воскресенье, 14 Апреля 2013, 21:13 | Сообщение # 3838
    заслуженный участник
    Сейчас нет на сайте
    [_RHYME_], экспортируешь в формате fbx, затем во вкладке rig меняешь animation type на legacy, а во вкладке animations прописываешь каждую анимацию (кадр начала анимации и завершения)
    Ставишь модель на сцену, вешаешь на неё компонент character controller и скрипты Third person controller и third person camera. Настраиваешь их по аналогии с 3rd Person Controller и в поля анимации помещаешь свои получившиеся файлы (там где idle animation, Walk animation и так далее)
    Потом создай камеру, присвой тег "MainCamera" и наблюдай результат )
    [_RHYME_]Дата: Воскресенье, 14 Апреля 2013, 21:16 | Сообщение # 3839
    частый гость
    Сейчас нет на сайте
    А нету возможности сделать всё это в видео, просто некоторые действие мне не понятны.

    Люди не летают, один сказал, все повторили. Мы доказали обратное © Трейсеры
    White9Дата: Воскресенье, 14 Апреля 2013, 21:17 | Сообщение # 3840
    заслуженный участник
    Сейчас нет на сайте
    [_RHYME_], завтра сделаю
    Поиск:

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