Воскресенье, 24 Ноября 2024, 14:45

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
LertmindДата: Вторник, 14 Июня 2016, 08:13 | Сообщение # 241 | Тема: [Gamiron #12] Big_bubble
заслуженный участник
Сейчас нет на сайте
Цитата Grynskou ()
как только будет стабильна сразу выложу
В правилах запрещается публиковать игру:
Цитата
- Публиковать любую версию игры до окончания финального голосования и оглашения результатов.
Или я что-то путаю?
LertmindДата: Понедельник, 13 Июня 2016, 01:41 | Сообщение # 242 | Тема: Вопрос-[ответ] по Unity
заслуженный участник
Сейчас нет на сайте
Бозингар, тебе точно надо знать угол? Если управление через Input.GetAxis(), то легко определить одно из 8 направлений.

Если всё-таки надо угол, то можно вычислить с помощь Atan2:
Код
float a = Mathf.Atan2(velocity.z, velocity.x) * Mathf.Rad2Deg;
// Преобразуем в положительный угол
if (a < 0f)
    a += 360f;
// По часовой стрелки
a = 360f - a;
// Поворачиваем на 180
a = Mathf.Repeat(a + 180f, 360f);

Где velocity скорость объекта (является также направлением) и предполагается, что угол на плоскости XZ, а 0 градусов это вектор Vector3.left. Замечу, что последние два действия не обязательны, так как это только для отсчёта как у тебя на картинке. Другой вариант вычисления через Vector3.Angle, там возвращается всегда положительный минимальный угол, следовательно тоже надо делать проверки для получения угла больше 180.

Скорость (velocity) можно получить сохраняя предыдующую позицию:
Код
using UnityEngine;

public class MyScript : MonoBehaviour
{
    Vector3 prevPosition;

    void Start()
    {
        prevPosition = transform.position;
    }
    
    void Update()
    {
        Vector3 velocity = (transform.position - prevPosition) / Time.deltaTime;
        prevPosition = transform.position;
        // Возвращает для 0-180: [0, 180], для 180-360: [-180, 0]
        float a = Mathf.Atan2(velocity.z, velocity.x) * Mathf.Rad2Deg;
        // Преобразуем в положительный угол
        if (a < 0f)
            a += 360f;
        // По часовой стрелки
        a = 360f - a;
        // Поворачиваем на 180
        a = Mathf.Repeat(a + 180f, 360f);
        
        print(a + " " + velocity);
    }
}

Деление на Time.deltaTime необязательно, тогда это будет просто направление движения. Ещё у Rigidbody есть свойство velocity, но оно изменяется только при движении с помощью физических сил.

Чтобы узнать направление, как константу (от 0 до 7), смещаем угол на 360f/8f/2f == 22.5f, делим на 360f/8f == 45f и округляем вниз:
Код
int index = (int)(Mathf.Repeat(a + 22.5f, 360f) / 45f);

Где a - наш угол. Для 10 градусов будет индекс 0, для 40 - 1, для 92 - 2 и так далее.
LertmindДата: Понедельник, 13 Июня 2016, 00:00 | Сообщение # 243 | Тема: [Gamiron №12]Little Thief
заслуженный участник
Сейчас нет на сайте
Вдохновение от South Park? В игре South Park: The Stick of Truth было отведено достаточно времени на гномов.
LertmindДата: Суббота, 11 Июня 2016, 19:42 | Сообщение # 244 | Тема: EscapeCraft Ваше мнение?
заслуженный участник
Сейчас нет на сайте
Видел вашу игру в этой статье https://habrahabr.ru/post/273985/, с тех пор много было изменений?
LertmindДата: Суббота, 11 Июня 2016, 19:01 | Сообщение # 245 | Тема: Симулятор гаишника (не текстовый) поиск исходника
заслуженный участник
Сейчас нет на сайте
Atrek, напиши, что ответит, но вряд ли он будет палиться, хотя вряд ли в правилах Google Play это запрещено. Мотив: возможно рассчитывает, что больше людей скачает, названия ведь немного разные.
LertmindДата: Суббота, 11 Июня 2016, 18:54 | Сообщение # 246 | Тема: [2D] Pilam Sky (IOS, Android)
заслуженный участник
Сейчас нет на сайте
* Интерфейс нарисован плохо (кнопки назад, пауза, B и счётчик денег), градиенты с плохо подобранными цветами. Это относится и к графике, где похожие градиенты. Посмотрите как выглядит интерфейс у успешных стим-панк игр. Другая графика выглядит вполне нормально.
* Геймплей однобокий: летишь выше и тыкаешь в других якорем или копьями. Для казуалки может сойдёт, но по мне стоило бы это как-то компенсировать.
LertmindДата: Суббота, 11 Июня 2016, 18:36 | Сообщение # 247 | Тема: Симулятор гаишника (не текстовый) поиск исходника
заслуженный участник
Сейчас нет на сайте
Цитата Atrek ()
После декомпиляции получаем только исходный код без каких либо текстур и прочего
Не знаю как с apk, у проектов Unity для винды текстуры выдираются.

Думаю это один и тот же разработчик, просто на разных аккаунтах, судя по качеству игр это возможно. Названия аккаунтов разработчиков похожи и шрифты на скриншотах, что намекает.
LertmindДата: Пятница, 10 Июня 2016, 23:17 | Сообщение # 248 | Тема: Вопрос-[ответ] по Unity
заслуженный участник
Сейчас нет на сайте
Цитата Бозингар ()
Как можно изменить цвет примитивного объекта?
По умолчанию у них материал, который нельзя изменить, надо создать новый материл в панели Project, настроить и перетащить на объект.
LertmindДата: Пятница, 10 Июня 2016, 00:24 | Сообщение # 249 | Тема: To The Capital
заслуженный участник
Сейчас нет на сайте
* Управление неудобное, лучше добавить управление мышью.
* Местность скучная, стоит закрыть чёрную часть экрана тоже какой-нибудь местностью.
* Баг: например, покупал HEAL, после использования, хотя написано Empty Inventory, внизу отображается информация о HEAL. Тоже самое с другими предметами.
LertmindДата: Четверг, 09 Июня 2016, 21:37 | Сообщение # 250 | Тема: Движение С#
заслуженный участник
Сейчас нет на сайте
На объекте есть коллайдер? Если да, то добавь rigidbody и поставь isKinematic = true. Это на всякий случай, но проблему не должно решить.
Объект дёргается, когда игрок двигается от первого лица?
UPD: Сейчас заметил, что говорится про 2D, тогда вопрос, камера движется?

Добавлено (09 июня 2016, 21:37)
---------------------------------------------
Проверил, в общем, такого в билде нет, скорее всего связано с тем, что запускается в режиме отладки. Сделай Build и проверь.


Сообщение отредактировал Lertmind - Четверг, 09 Июня 2016, 21:37
LertmindДата: Четверг, 09 Июня 2016, 00:51 | Сообщение # 251 | Тема: как создать 3 рандомных не повторяющихся объекта из списка
заслуженный участник
Сейчас нет на сайте
Потому что FindObjectsOfType<CharactersDie>() возвращает массив из CharactersDie, а FindGameObjectsWithTag() возвращает массив из GameObject.

Добавлено (09 июня 2016, 00:51)
---------------------------------------------
Если использовать Linq, то можно так написать:

Код
GameObject[] gameObjects = GameObject.FindGameObjectsWithTag("Characters");
IEnumerable<CharactersDie> components = gameObjects.Select(x => x.GetComponent<CharactersDie>());
characters = new List<CharactersDie>(components);
LertmindДата: Среда, 08 Июня 2016, 23:58 | Сообщение # 252 | Тема: поместить точку в 2D simple Directional
заслуженный участник
Сейчас нет на сайте
Если ты имеешь в виду во время выполнения игры, то это невозможно, Animator Controller это asset. Если в редакторе, то вот класс BlendTree, а собирать аниматор с помощью AnimatorController.

Сообщение отредактировал Lertmind - Среда, 08 Июня 2016, 23:59
LertmindДата: Среда, 08 Июня 2016, 23:15 | Сообщение # 253 | Тема: как создать 3 рандомных не повторяющихся объекта из списка
заслуженный участник
Сейчас нет на сайте
dreenline, точно, забыл что все расширения надо в статических классах определять. Создай ещё файл и туда добавь класс, например static class MyExtensions, в него перенеси, кажется так:
Код
using System;
using System.Collections.Generic;

static class MyExtensions
{
private static System.Random rng = new System.Random();  

public static void Shuffle<T>(this IList<T> list)  
{  
    int n = list.Count;  
    while (n > 1) {  
        n--;  
        int k = rng.Next(n + 1);  
        T value = list[k];  
        list[k] = list[n];  
        list[n] = value;  
    }  
}
}
LertmindДата: Среда, 08 Июня 2016, 23:11 | Сообщение # 254 | Тема: Программирование шейдеров в Unity (Добавлен шестой урок)
заслуженный участник
Сейчас нет на сайте
OneKey, услышал рекламу игры Byte 2. Сначала поставил Byte первый, там конечно ужасный интерфейс, прогресс виден, после установки Byte 2. Косяки всё равно есть:
* Кнопка для выхода в главное меню из паузы выглядит странно, как ускорение.
* В меню паузы элементы интерфейса (сердце, стрелка, диалог) почему-то видны чётко, хотя это часть геймплея.
* Сердце и стрелка с текстом плохо читаются, стоит добавить фон или рамки.
* Читать текст из диалога неудобно, две строки и большой шрифт.
* Настройки графики поставил минимальные, но всё ещё вижу ужасное мыло (bloom + blur) по экрану, стоило сделать отключение.
* В главном меню при нажатии на Играть, список уровней прокручен вниз, приходится подниматься вверх, чтобы выбрать первый.
* Если нажать в начале уровня кнопку Skip и чуть двинуться, то текст появиться, но пропустить его уже нельзя: кнопка исчезла. Кроме того, после первого пропуска, дальше по уровню кнопка не появляется.

Добавлено (08 июня 2016, 23:11)
---------------------------------------------
* Ещё одно замечание: пока мотал видео урока, услышал произношение CG как эсджи. Думаю, догадался как правильно.

LertmindДата: Среда, 08 Июня 2016, 22:26 | Сообщение # 255 | Тема: Quick Penguin
заслуженный участник
Сейчас нет на сайте
Banvok, видео не сильно отличается от гифки. Загрузка всё ещё недоступна по ссылке: http://banvok.xyz/source/quick-penguin/linux.tar.gz, пишет 404. Нафиг этот Linux, надо сразу сначала для Windows выкладывать.
LertmindДата: Среда, 08 Июня 2016, 22:22 | Сообщение # 256 | Тема: как создать 3 рандомных не повторяющихся объекта из списка
заслуженный участник
Сейчас нет на сайте
Первая ошибка кажется из-за Random, там использует из System. Попробуй заменить Random на System.Random:
Код
private static System.Random rng = new System.Random();  

public static void Shuffle<T>(this IList<T> list)  
{  
    int n = list.Count;  
    while (n > 1) {  
        n--;  
        int k = rng.Next(n + 1);  
        T value = list[k];  
        list[k] = list[n];  
        list[n] = value;  
    }  
}


Добавлено (08 июня 2016, 22:22)
---------------------------------------------
Заметь, что мой код не учитывает твою переменную, где сохраняется, что персонаж уже был. Потому что, тебе возможно она нужна в другом коде.


Сообщение отредактировал Lertmind - Среда, 08 Июня 2016, 22:22
LertmindДата: Среда, 08 Июня 2016, 22:01 | Сообщение # 257 | Тема: как создать 3 рандомных не повторяющихся объекта из списка
заслуженный участник
Сейчас нет на сайте
Если нужно "Выбор элементов из набора без повторений", читай документацию в Unity: http://docs.unity3d.com/ru/current/Manual/RandomNumbers.html.

Добавлено (08 июня 2016, 21:26)
---------------------------------------------
Тогда смотри ссылку выше, что дал. После "фильтрации" используешь функцию из документации и отмечаешь тех, которые были.

Добавлено (08 июня 2016, 21:28)
---------------------------------------------
Ещё вместо специальной переменной, можно просто из списка characters удалять персонажей, которые были, тогда не придётся фильтровать каждый раз.

Добавлено (08 июня 2016, 21:32)
---------------------------------------------
На самом деле, можно просто один раз перемешать с помощью Shuffle в Awake() массив characters и без фильтра брать первые 3 элемента и удалять их (лучше characters сделать списком).

Добавлено (08 июня 2016, 21:42)
---------------------------------------------
Как-то так:

Shuffle надо перенести в отдельный класс хелперов, рандом заменить можно на тот, что у Unity. Код не компилировал.

Добавлено (08 июня 2016, 22:01)
---------------------------------------------
Цитата dreenline ()
и на нем спустя n секунд появляются персонажи из списка, в количестве 3х штук. На каждого из персонажей можно нажать, и тогда появится его биография. После этого, можно убить одного из персонажей. Тогда все 3 удаляются и создаются 3 новых персонажа. Но не создаются те, которые уже были на столе.
Сейчас увидел дополнение. Проблем нет, можно поступить разными путями. Один из них, как ты фильтровал, а потом вместо твоего нерабочего кода делаешь "Выбор элементов из набора без повторений" и отмечаешь, которые были. Это я уже писал, только другими словами.


Сообщение отредактировал Lertmind - Среда, 08 Июня 2016, 22:03
LertmindДата: Среда, 08 Июня 2016, 21:54 | Сообщение # 258 | Тема: Вопрос-[ответ] по Unity
заслуженный участник
Сейчас нет на сайте
AO, можешь хоть блокнот выбрать, идёшь в меню Edit > Preferences > External Tools > External Script Editor.
LertmindДата: Среда, 08 Июня 2016, 21:18 | Сообщение # 259 | Тема: как создать 3 рандомных не повторяющихся объекта из списка
заслуженный участник
Сейчас нет на сайте
* Не понял, что ты хочешь сделать. Что значит "рандомных неповторяющихся"? Объясни "что" тебе надо, а не "как".
* Конечно это не работает:
Код
int prefabIndex = UnityEngine.Random.Range (0, C); // это не работает

нужно передавать два числа.
* Возможно ты хочешь перемешать список FilteredData, чтобы потом создать в случайной последовательности? Реализация Shuffle здесь http://stackoverflow.com/questions/273313/randomize-a-listt. Только всё равно не понимаю, какая разница в какой последовательности создавать.
LertmindДата: Среда, 08 Июня 2016, 01:22 | Сообщение # 260 | Тема: Quick Penguin
заслуженный участник
Сейчас нет на сайте
Цитата Banvok ()
Для загрузки бета версий используйте форум
Там только нерабочая ссылка на бету для Linux. Доступность беты всё ещё не вижу.
Поиск:

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