Четверг, 06 Мая 2021, 20:14

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Форум игроделов » Записи участника » urbemAngeli [48]
Результаты поиска
urbemAngeliДата: Воскресенье, 08 Января 2017, 21:48 | Сообщение # 41 | Тема: Реализация в юнити отображения случайного спрайта
частый гость
Сейчас нет на сайте
Как написали выше, нужно использовать Random.Range. Тогда это будет выглядеть:
Код
    public SpriteRenderer[] sprites = new SpriteRenderer[10];
    private int nowSprite;
    
    void Start () {
        Generation();
        Setting(true);
    }

    // Случайный выбор спрайта
    private void Generation()
    {
        nowSprite = Random.Range(0, sprites.Length);
    }

    // Управление состоянием спрайта
    private void Setting(bool status)
    {
        sprites[nowSprite].enabled = status;
    }

    // Выбор следующего спрайта
    public void ChangeSprite()
    {
        Setting(false);
        Generation();
        Setting(true);
    }
urbemAngeliДата: Пятница, 02 Декабря 2016, 22:07 | Сообщение # 42 | Тема: Кем заменить зомби?
частый гость
Сейчас нет на сайте
Если игра про выживание на каком-то острове, врагами могут быть местные дикие племена людей

Сообщение отредактировал urbemAngeli - Пятница, 02 Декабря 2016, 22:08
urbemAngeliДата: Воскресенье, 04 Сентября 2016, 22:18 | Сообщение # 43 | Тема: Проблема со стабилизацией после движения объекта
частый гость
Сейчас нет на сайте
Спасибо за ответы, завтра буду разбираться с возможным решениями

Сообщение отредактировал urbemAngeli - Воскресенье, 04 Сентября 2016, 22:25
urbemAngeliДата: Воскресенье, 04 Сентября 2016, 20:45 | Сообщение # 44 | Тема: Проблема со стабилизацией после движения объекта
частый гость
Сейчас нет на сайте
Всем добрый вечер! Пытаюсь реализовать движение из точки А в точку Б с плавным затуханием скорости. Вроде бы все просто - брать метод Lerp(текущая позиция, цель, время) и далее двигать объект, но такой подход меня не совсем устраивает. Проблема в том, что за весь период движения объекта к цели(по оси y из -15 к 0), объект достигает цели примерно за 60-70 процентов от этого периода, остальное время идет какое-то хаотическое изменение transform переменных по той оси, которую изменяем(6, 2, -0.001, -1, 4, 3 и т.д). Визуально эти скачки никак не проявляются. Больше понравился метод SmoothStep, однако там тоже присутствует такой эффект. Меня такое явление совсем не устраивает, так как после достижения к цели необходимо сразу объект двигать к следующей цели, а для этого нужно знать окончание предыдущего, и у меня получается что объект у цели а из за "скачков" переменных он вроде еще как движется. Подскажите что это за скачки и как их устранить?
Код

    public float speed;
    float endPos = 0;
    float y;

    void Update()
    {
        //y = Mathf.Lerp(transform.position.y, _endPos, Time.time * speed);
        y = Mathf.SmoothStep(transform.position.y, endPos, Time.time / speed);

        if (transform.position.y != 0) // Движемся пока не будем у цели
        {
            transform.position = new Vector3(transform.position.x, y, transform.position.z);
        }
    }


Сообщение отредактировал urbemAngeli - Воскресенье, 04 Сентября 2016, 21:02
urbemAngeliДата: Понедельник, 15 Августа 2016, 08:13 | Сообщение # 45 | Тема: Проблема с поворотами объекта при многократном вращении
частый гость
Сейчас нет на сайте
Lertmind, спасибо за наводку, буду разбиратся
urbemAngeliДата: Воскресенье, 14 Августа 2016, 23:15 | Сообщение # 46 | Тема: Проблема с поворотами объекта при многократном вращении
частый гость
Сейчас нет на сайте
Lertmind, только сейчас добрался до Unity, ваш скрипт работает просто супер, так как я и задумывал. Огромное спасибо:) Техника с родителями не совсем понятна, если первый родидель вращать по одной из оси, то для второго родителя(внутренний) остальные 2 оси будут отличными от мировых, и очень сложно будет реализовать вращение в требуемом направлении.

Сообщение отредактировал urbemAngeli - Воскресенье, 14 Августа 2016, 23:21
urbemAngeliДата: Воскресенье, 14 Августа 2016, 13:56 | Сообщение # 47 | Тема: Проблема с поворотами объекта при многократном вращении
частый гость
Сейчас нет на сайте
Всем привет!Пытаюсь осуществить вращение обьекта при нажатии кнопки по одной из оси(y или z). Камера всегда неподвижна, и суть поворота куба заключается в том, что не зависимо от его поворота относительно камеры, если нажать кнопки(стрелки) он должен поворачиваться строго на 90 град. в том направлении как на скрине. Здесь у меня возникло две проблемы:
Проблема 1: Если куб допустим повернуть по оси z на +90° а затем по оси y на 180° , то при последующих поворотах вокруг z, кнопки вверх и вниз меняются местами, чего мне не нужно. Пришел к выводу что проблемой данного явления является когда узнаю текущие углы и добавляю или отнимаю 90 град, может происходить конфликт углов(допустим был угол -90 и нужно для правильного поворота -180, а у меня получается -90 + 90 = 0) и поэтому поворачивается не в ту сторону. Пробовал кубу добавлять родителя и у него брать углы, но тогда куб вращался как хотел.
Проблема 2: Если повернуть куб вдоль оси z, то при последующих поворотах вверх или вниз, вращение происходит по оси x, хотя в transform куба во время вращения углы меняются по z.
Помогите разобраться с данными проблемали, а то у самого мыслей уже 0 осталось как это можно решить.
Сорри что все так запутано описано, ниже скину еще проект, может кому наглядно лучше посмотреть на все это дело.



Код
public class HandlerRotation : MonoBehaviour
{
    Quaternion target;
    bool nowRotate = false;
    //public Transform parent;

    public int speed = 80;
    int nowFrame = 0;

    void FixedUpdate()
    {
        if (Input.GetKeyDown(KeyCode.UpArrow))
        {
            if (nowRotate == false) // Проверка для предотвращения поворота по второй оси
            {
                target = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, transform.rotation.eulerAngles.z + 90);
                nowRotate = true;
            }
        }

        if (Input.GetKeyDown(KeyCode.DownArrow))
        {
            if (nowRotate == false)
            {
                target = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, transform.rotation.eulerAngles.z - 90);
                nowRotate = true;
            }
        }

        if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            if (nowRotate == false)
            {
                target = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y + 90, transform.rotation.eulerAngles.z);
                nowRotate = true;
            }
        }

        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            if (nowRotate == false)
            {
                target = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y - 90, transform.rotation.eulerAngles.z);
                nowRotate = true;
            }
        }

        if (nowRotate)
        {
            if (nowFrame < 57) // Проверка на окончание поворота
            {
                transform.rotation = Quaternion.RotateTowards(transform.rotation, target, Time.deltaTime * speed);
                nowFrame++;
            }
            else
            {
                nowRotate = false;
                nowFrame = 0;
            }
        }
    }

Ссылка на проект


Сообщение отредактировал urbemAngeli - Воскресенье, 14 Августа 2016, 14:06
urbemAngeliДата: Пятница, 18 Сентября 2015, 20:08 | Сообщение # 48 | Тема: Collision of Balls [2.5D]
частый гость
Сейчас нет на сайте
Всем привет! Решил попробовать свои силы в программировании и написать свою первую инди-игру. Писал около 3-х месяцев и теперь хочу предоставить свое творение всеобщему вниманию. Интересно узнать ваше мнение и не забывайте оставлять отзывы в Google Play.
Жанр: Аркада
Движок: Unity3d 5
Пространство: 2.5D
Какой вид в игре: сверху
ЯП: C#
Платформа: Android
Тип лицензии распространения: Бесплатная
Похожие игры: Collide balls, Collision

Описание:
В данной игре вам нужна максимальная реакция в сочетании с точностью. В вашем распоряжении есть серый мяч который соединен с красным мячом при помощи резиновой веревки. Вам необходимо красным мячом отбивать черные, не дав белому мячу выйти из зоны. Чем сильнее вы отобьете, тем больший балл получите. Также вы можете сравнивать свои результаты с другими игроками.

Особенности игры:
- Красивая графика;
- Реалистичная физика;
- Уникальный геймплей;
- Таблицы лидеров;
- Достижения;

Скачать с Google Play:









Сообщение отредактировал urbemAngeli - Среда, 22 Ноября 2017, 10:42
Форум игроделов » Записи участника » urbemAngeli [48]
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск:

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