Пятница, 15 Ноября 2024, 10:13

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • JIeCHuKДата: Суббота, 23 Декабря 2017, 18:25 | Сообщение # 8441
    был не раз
    Сейчас нет на сайте
    Приветствую. Такой вопрос.
    Создал на потолке источник света Spot и наложил квадратную текстуру cookie.
    На полу свет к краям квадрата ослабевает.
    Как сделать так, чтобы интенсивность света была одинаковой по всей площади?
    drcrackДата: Суббота, 23 Декабря 2017, 18:47 | Сообщение # 8442
    старожил
    Сейчас нет на сайте
    Нужной тебе модели освещения в движке нет, придется писать самому
    Смотри здесь: https://docs.unity3d.com/Manual/SL-SurfaceShaderLighting.html

    UPD. Еще мысль появилась — поставь эту Cookie на Directional Light, должен получиться примерно такой же эффект


    Сообщение отредактировал drcrack - Суббота, 23 Декабря 2017, 20:51
    BoДата: Воскресенье, 24 Декабря 2017, 13:03 | Сообщение # 8443
    почетный гость
    Сейчас нет на сайте
    Вопрос. Написал скрипт движения персонажа.

    Код
    void Update () {

    transform.position = new Vector2 (Mathf.Clamp(transform.position.x, -6.6f, 6.6f), Mathf.Clamp(transform.position.y, -4.9f, 4.9f));

      if (Input.GetKey ("up"))
       transform.Translate (Vector2.up * Time.deltaTime);
      if (Input.GetKey ("down"))
       transform.Translate(Vector2.down * Time.deltaTime);
      if (Input.GetKey ("right"))
       transform.Translate(Vector2.right * Time.deltaTime);
      if (Input.GetKey ("left"))
       transform.Translate(Vector2.left * Time.deltaTime);  
        }
    }


    Хочу его переделать так, чтобы проверка (ограничние) Mathf.Clamp была в самом условии IF.
    При это хотелось бы оставить конструкции Vector2.up /down/left/right
    (т.е. чтобы не пользоваться, например вариантом типа

    Код
    float yMove = Input.GetAxis("Vertical") * Time.deltaTime;
         transform.Translate(0f, yMove, 0f);
          Vector3 clampedPosition = transform.position;
          clampedPosition.y = Mathf.Clamp(transform.position.y, -4.1f, 4.1f);
          transform.position = clampedPosition;


    и сохранить лаконичность и читаемость
    drcrackДата: Воскресенье, 24 Декабря 2017, 13:36 | Сообщение # 8444
    старожил
    Сейчас нет на сайте
    Код
    void Update () {

        var move = Vector2.zero;

        if (Input.GetKey ("up")) move += Vector2.up;
        if (Input.GetKey ("down")) move += Vector2.down;
        if (Input.GetKey ("right")) move += Vector2.right;
        if (Input.GetKey ("left")) move += Vector2.left;
        
        var position = transform.position + move * Time.deltaTime;
        
        position.x = Mathf.Clamp(position.x, -6.6f, 6.6f);
        position.y = Mathf.Clamp(position.y, -4.9f, 4.9f);
      
        transform.position = position;
    }


    Сообщение отредактировал drcrack - Воскресенье, 24 Декабря 2017, 14:00
    BoДата: Воскресенье, 24 Декабря 2017, 14:36 | Сообщение # 8445
    почетный гость
    Сейчас нет на сайте
    drcrack, большое спасибо! Идеально.
    JIeCHuKДата: Воскресенье, 24 Декабря 2017, 19:48 | Сообщение # 8446
    был не раз
    Сейчас нет на сайте
    drcrack, с направленным светом получается не так как хочется. Изменил файл Cookie так, что в центре у меня света идёт меньше а дальше к краям - больше. В итоге добился нужного мне вида. Но... Но так как он тускловатый получился (но зато равномерный, как надо), то при добавлении range или intensity от основного источника света идёт то ли повторяющееся отражение, то ли ещё что... То есть будто появляется несколько затухающих источников света... Что это быть может?
    drcrackДата: Воскресенье, 24 Декабря 2017, 21:21 | Сообщение # 8447
    старожил
    Сейчас нет на сайте
    Скриншот покажи
    JIeCHuKДата: Воскресенье, 24 Декабря 2017, 21:28 | Сообщение # 8448
    был не раз
    Сейчас нет на сайте

    drcrack, Та, что самая яркая (под объектом) - основная... Остальные так и идут с затуханием. Они могут пропасть, если под каким-то определённым углом камера находится...


    Сообщение отредактировал JIeCHuK - Воскресенье, 24 Декабря 2017, 21:28
    drcrackДата: Понедельник, 25 Декабря 2017, 01:07 | Сообщение # 8449
    старожил
    Сейчас нет на сайте
    Проверь чтобы у Cookie в настройках импорта стояло Wrap Mode → Clamp

    Сообщение отредактировал drcrack - Понедельник, 25 Декабря 2017, 01:07
    JIeCHuKДата: Понедельник, 25 Декабря 2017, 18:09 | Сообщение # 8450
    был не раз
    Сейчас нет на сайте
    drcrack, спасибо огромное за помощь. Всё заработало как надо.
    BassPiraT92Дата: Среда, 27 Декабря 2017, 19:47 | Сообщение # 8451
    участник
    Сейчас нет на сайте
    Подскажите годные уроки или примеры создания рандомных птиц для 2Д проекта? Спрайты и анимация полета имеются.

    drcrackДата: Четверг, 28 Декабря 2017, 11:44 | Сообщение # 8452
    старожил
    Сейчас нет на сайте
    Что такое рандомные птицы?
    BoДата: Пятница, 29 Декабря 2017, 06:38 | Сообщение # 8453
    почетный гость
    Сейчас нет на сайте
    В Unity3D есть прекрасный компонент Collider2D. Но вот что мне непонятно. Зачем для обработки столкновений необходимо кроме компонента Collider2D навешивать еще и Rigidbody? Зачем нужна физика для этого?
    FlyOfFlyДата: Пятница, 29 Декабря 2017, 08:25 | Сообщение # 8454
    заслуженный участник
    Сейчас нет на сайте
    Цитата Bo ()
    В Unity3D есть прекрасный компонент Collider2D. Но вот что мне непонятно. Зачем для обработки столкновений необходимо кроме компонента Collider2D навешивать еще и Rigidbody? Зачем нужна физика для этого?

    Потому что физика реализована через Box2D и хоть Unity скрывает реализацию, ну там все колайдеры присоединяется к телу и не обрабатываются отдельно, что логично. так как колайдеры берут позицию именно оттуда
    BassPiraT92Дата: Суббота, 30 Декабря 2017, 23:08 | Сообщение # 8455
    участник
    Сейчас нет на сайте
    Цитата drcrack ()
    Что такое рандомные птицы?

    Птички что бы летали в рандомных позициях
    drcrackДата: Суббота, 30 Декабря 2017, 23:49 | Сообщение # 8456
    старожил
    Сейчас нет на сайте
    Цитата
    Птички что бы летали в рандомных позициях

    А в чем конкретно проблема? Не можешь создать птичку? Не можешь заставить ее лететь?
    BassPiraT92Дата: Четверг, 04 Января 2018, 19:00 | Сообщение # 8457
    участник
    Сейчас нет на сайте
    С птичками разобрался) Теперь проблемка в другом. В иерархии:

    street_light (Спрайт с триггерной коллизией)
    -st_lamp(источник света Spotline)

    Написал скрипт:
    Код

       public GameObject Lamp;

        private void OnTriggerEnter2D(Collider2D collision)
        {
            if (collision.gameObject.name == "Character1")
            {
                Lamp.SetActive(true);
            }
        }
        private void OnTriggerExit2D(Collider2D collision)
        {
            if (collision.gameObject.name == "Character1")
            {
                Lamp.SetActive(false);
            }
        }


    Лампа исчезает при выходе из триггера но при заходе не появляется, подскажите в чем дело? И какие есть варианты
    drcrackДата: Пятница, 05 Января 2018, 01:59 | Сообщение # 8458
    старожил
    Сейчас нет на сайте
    На одном из обьектов должен быть Rigidbody2D, он есть?
    San-SanychДата: Понедельник, 08 Января 2018, 19:38 | Сообщение # 8459
    был не раз
    Сейчас нет на сайте
    Вопрос по экспорту объекта из Cinema 4D в Unity
    В общем, я создал в синеме меч, сделал для него анимация, сохранил в формате c4d, далее перетаскиваю этот файл в unity и возникает такая ошибка: Cinema 4D couldn't convert the .C4D file to an fbx file. Try exporting the .C4D file to an fbx file manually.
    EXPORT_ERROR: Source either does not exist or cannot be located
    Пробовал в ручную в синьке сохранить файл в формате fbx, но он сохраняется без анимации.
    drcrackДата: Вторник, 09 Января 2018, 00:37 | Сообщение # 8460
    старожил
    Сейчас нет на сайте
    Цитата
    Cinema 4D couldn't convert the .C4D file to an fbx file. Try exporting the .C4D file to an fbx file manually.
    EXPORT_ERROR: Source either does not exist or cannot be located

    попробуй:
    запустить юнити от админа
    запустить синему от админа
    проверить чтобы в имени твоей учетки были только латинские символы
    сохранить файл так, чтобы в имени были только латинские символы и не было пробелов
    закрывать синему перед импортом


    Сообщение отредактировал drcrack - Вторник, 09 Января 2018, 00:37
    Поиск:

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