Пятница, 20 Декабря 2024, 11:17

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • andarkyДата: Вторник, 12 Апреля 2011, 17:57 | Сообщение # 421
    старожил
    Сейчас нет на сайте
    как сделать так:
    чтоб <тык> на объект и камера перед ним на него глядит.
    Знаю что нужно через Lerp както...
    сейчас у меня работает тупо при нажатии на объект камера становится над ним и глядит на него сверху:
    Code

    OnMouseDown()
    {
    Kamera.position.x=target.x;
    Kamera.position.z=target.z;
    Kamer.LookAt(target.position)
    }

    но я хочу чтоб камера была не строго над ним,
    а немного недолетая до него на определенное число единиц ("Чтоб смотреть ему в лицо").
    ?



    Моя страничка по дизайну
    GameDev//Design//3D
    Ютубчик
    noTformaTДата: Вторник, 12 Апреля 2011, 18:05 | Сообщение # 422
    Ukrainian independent game developer
    Сейчас нет на сайте
    andarky, добавь в позицию смешение smile
    Quote (andarky)
    Знаю что нужно через Lerp както...

    Лерп тут как бы не нужен smile


    @noTformaT
    andarkyДата: Среда, 13 Апреля 2011, 09:58 | Сообщение # 423
    старожил
    Сейчас нет на сайте
    noTformaT,
    а как же без Лерпа сделать, чтобы камера летела как в редакторе Unity?

    как прибавлять (вычитать) это самое смещение?
    Ведь объекты могут иметь и отрицательные координаты?
    Можно конечно математическими формулы всё написать, если другого решения не найду
    то так и сделаю.

    А мне интересно нет ли в Unity специальных функций для этого?



    Моя страничка по дизайну
    GameDev//Design//3D
    Ютубчик
    noTformaTДата: Среда, 13 Апреля 2011, 10:07 | Сообщение # 424
    Ukrainian independent game developer
    Сейчас нет на сайте
    Lerp - метод интерполяции минимума до максимума за определенное время. Тоесть изменить одно значение на другое за определенное время. Например. Минимум - 10, Максимум - 30, Ну и время за которое 10 станет 30 - 2 сек. Ну а тебе как я понял надо чтобы камера стояла возле объекта, как например вид камеры Front в 3д редакторах? или нет? Если да, то поставь камеру на место объекта и отодвинь на столько сколько тебе надо, тоесть на определенное смешение smile

    @noTformaT


    Сообщение отредактировал noTformaT - Среда, 13 Апреля 2011, 10:08
    andarkyДата: Среда, 13 Апреля 2011, 10:37 | Сообщение # 425
    старожил
    Сейчас нет на сайте
    noTformaT,
    мне хотелось красивости.
    У меня над объектами появляются иконки, на которые можно кликать.
    Хочу чтоб при клике камера за 1 секунду подлетала и становилась перед объектом, на иконку которого было кликнуто.
    А сейчас у меня получается только строго над ним моментально появляться: <Камера(x,y,z)=Цель(x,y+2,z)>



    Моя страничка по дизайну
    GameDev//Design//3D
    Ютубчик
    seamanДата: Среда, 13 Апреля 2011, 10:44 | Сообщение # 426
    старожил
    Сейчас нет на сайте
    У Огасоды в уроках все это есть.

    В update

    Code
    _myTransform.rotation = Quaternion.Slerp(_myTransform.rotation,
                  Quaternion.LookRotation(target.position - _myTransform.position), Time.deltaTime * rotationSpeed)
       if(Vector3.Distance(target.position, _myTransform.position) > minDistance)
                  _myTransform.position += _myTransform.forward * moveSpeed * Time.deltaTime;

    _myTransform - трансформ камеры. target - понятно
    Камера повернется на target со скоростью rotationSpeed и переместится к нему на расстояние minDistance со скоростью moveSpeed

    Посмотрите все же его уроки!!!

    Сообщение отредактировал seaman - Среда, 13 Апреля 2011, 10:49
    andarkyДата: Среда, 13 Апреля 2011, 10:47 | Сообщение # 427
    старожил
    Сейчас нет на сайте
    А как узнать координаты X,Z позиции перед объектом.
    Это же школьная математика, но я что-то уже подзабыл всё...

    Добавлено (13.04.2011, 10:47)
    ---------------------------------------------
    seaman,
    спасибо!
    попробую сейчас



    Моя страничка по дизайну
    GameDev//Design//3D
    Ютубчик
    pixeyeДата: Среда, 13 Апреля 2011, 11:16 | Сообщение # 428
    Red Winter Software
    Сейчас нет на сайте
    Quote (andarky)
    А как узнать координаты X,Z позиции перед объектом.
    Это же школьная математика, но я что-то уже подзабыл всё...

    Если я правильно понял то

    Code
    var pos: Vector3;
    var dist: int; //дистанция впереди объекта
    dist = 1;
    var inFront: Vector3 = transform.TransformDirection(Vector3.forward*dist);  //pos будет следовать на одну единичку координат впереди объекта. Увеличивая Dist можно получать другие величины удаления от объекта.

    pos = transform.position+inFront; //pos будет следовать на одну единичку координат впереди объекта.

    Далее используете pos для нужных вам задач : pos.x , pos.y , pos.z .

    Подобным методом я например делал вылет пули не из центра объекта а из дула.
    Наверняка есть другие способы. Буду рад услышать.


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



    Сообщение отредактировал pixeye - Среда, 13 Апреля 2011, 11:21
    cvbncvДата: Среда, 13 Апреля 2011, 15:44 | Сообщение # 429
    участник
    Сейчас нет на сайте
    Как сделать так, чтобы курсор был в центре во время игры?

    Мои проекты:
    Cubez! - http://gcup.ru/forum/9-15867-1
    Bungee Amster - http://gcup.ru/forum/9-17140-1
    pixeyeДата: Среда, 13 Апреля 2011, 15:55 | Сообщение # 430
    Red Winter Software
    Сейчас нет на сайте
    Quote (cvbncv)
    Как сделать так, чтобы курсор был в центре во время игры?

    Screen.lockCursor = true;

    Создаешь объект ( курсор) аттачишь его к своей основной камере по центру ( можешь кодом ( Screen.height /2 Screen.width/2 ) ) Он будет всюду следовать за камерой - в той позиции которой ты его заатачил.


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

    cvbncvДата: Среда, 13 Апреля 2011, 16:19 | Сообщение # 431
    участник
    Сейчас нет на сайте
    pixeye, можно по подробнее? Screen.lockCursor = true; это как скрипт к курсору применять?

    Мои проекты:
    Cubez! - http://gcup.ru/forum/9-15867-1
    Bungee Amster - http://gcup.ru/forum/9-17140-1
    EyeДата: Среда, 13 Апреля 2011, 16:32 | Сообщение # 432
    заслуженный участник
    Сейчас нет на сайте
    cvbncv, biggrin

    Code
    function Update () {
    // Лочим курсор по середине экрана
    Screen.lockCursor = true;
    }
    // При нажатии Esc блокировка скидывается
    if (Input.GetKeyDown ("escape"))
    Screen.lockCursor = false;

    Это JS, применять на камеру FPC (игрока).


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


    Сообщение отредактировал Eye - Среда, 13 Апреля 2011, 16:32
    noTformaTДата: Среда, 13 Апреля 2011, 17:34 | Сообщение # 433
    Ukrainian independent game developer
    Сейчас нет на сайте
    Quote (cvbncv)
    Как сделать так, чтобы курсор был в центре во время игры?

    не когда не видел игр в которых курсор в центре экрана smile


    @noTformaT
    pixeyeДата: Среда, 13 Апреля 2011, 18:42 | Сообщение # 434
    Red Winter Software
    Сейчас нет на сайте
    Quote (noTformaT)
    не когда не видел игр в которых курсор в центре экрана

    мне кажется он хочет сделать мушку.


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

    noTformaTДата: Среда, 13 Апреля 2011, 20:38 | Сообщение # 435
    Ukrainian independent game developer
    Сейчас нет на сайте
    Quote (pixeye)
    мне кажется он хочет сделать мушку.

    ну, мушка, если как в кс - то это обычная текстура по середине экрана:)
    А управление - через оси Инпута smile


    @noTformaT
    cvbncvДата: Суббота, 16 Апреля 2011, 15:59 | Сообщение # 436
    участник
    Сейчас нет на сайте
    Существует ли русский урок по добавлению ботов?

    Мои проекты:
    Cubez! - http://gcup.ru/forum/9-15867-1
    Bungee Amster - http://gcup.ru/forum/9-17140-1
    noTformaTДата: Суббота, 16 Апреля 2011, 16:00 | Сообщение # 437
    Ukrainian independent game developer
    Сейчас нет на сайте
    Quote (cvbncv)
    Существует ли русский урок по добавлению ботов?

    а есть ссылка на англ оригинал?


    @noTformaT
    SnakeRДата: Воскресенье, 17 Апреля 2011, 12:21 | Сообщение # 438
    постоянный участник
    Сейчас нет на сайте
    Двигаю объект через
    rigidbody.AddForce (0,0,power);
    Power сила с которой толкаю, зависит от нажатия кнопки.
    Вопрос, как просчитать скорость летящего объекта?


    Unity3D Developer
    Ваш лучший помощник при разработке в Unity3D
    ValterДата: Воскресенье, 17 Апреля 2011, 15:40 | Сообщение # 439
    почетный гость
    Сейчас нет на сайте
    Скорость в момент времени, равна корню из суммы квадратов первых производных проекций скоростей. Не могу написать формулу нормально форматирования не хватает, как, то так: sqrt((dx/dt)*(dx/dt)+(dy/dt)*(dy/dt)+(dz/dt)*(dz/dt)), где sqrt - это корень из того, что в внутри скобок (...).
    С уважением Андрей.


    Сообщение отредактировал Valter - Воскресенье, 17 Апреля 2011, 15:56
    SnakeRДата: Воскресенье, 17 Апреля 2011, 15:49 | Сообщение # 440
    постоянный участник
    Сейчас нет на сайте
    Valter, спасибо, буду пробовать =)

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

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