Воскресенье, 15 Декабря 2019, 03:06

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 30
  • 1
  • 2
  • 3
  • 29
  • 30
  • »
Форум игроделов » Записи участника » Lertmind [593]
Результаты поиска
LertmindДата: Понедельник, 03 Октября 2016, 21:56 | Сообщение # 1 | Тема: Шаринг
заслуженный участник
Сейчас нет на сайте
Код сам не пробовал, но у меня вопрос: в других приложениях то, что вы хотите, работает? Возможно это проблема не скрипта, а системы?
LertmindДата: Понедельник, 03 Октября 2016, 21:44 | Сообщение # 2 | Тема: Привязать к вершине GameObject?
заслуженный участник
Сейчас нет на сайте
Тебе точно необходимо использовать морфинг (вроде это реализуется только через Skinned Mesh Renderer)? Анимацией спрайтов не обойтись?
Я нашёл только один способ - использовать SkinnedMeshRenderer.BakeMesh(), чтобы получить меш, обратиться к Mesh.vertices и не забыть применить Transform.TransformPoint() для получения мировых координат (или использовать матрицу). Realtime vertex position of a SkinnedMesh - здесь есть пример на JS, но он похоже только для костей.

Есть ещё одна бредовая идея: сделать анимацию/морфинг для одной вершины, которая будет сопоставлена с вершиной, или реализовать самому интерполяцию (с кривыми как вариант) по ключевым положениям вершин (кажется это можно провернуть в редакторе, заранее вызывая SkinnedMeshRenderer.BakeMesh для разных значений морфинга, тогда будет меньше вычислений в рантайм).

Добавлено (03 октября 2016, 21:44)
---------------------------------------------
Пока искал инфу URGINSAN ответил, в первом абзаце как раз об этом, но подробнее.


Сообщение отредактировал Lertmind - Понедельник, 03 Октября 2016, 21:47
LertmindДата: Понедельник, 03 Октября 2016, 20:00 | Сообщение # 3 | Тема: Вопрос-[ответ] по Unity.
заслуженный участник
Сейчас нет на сайте
uslucifer, я давал ссылку State Machine Behaviours, последний раздел про это "Communication between MonoBehaviours and StateMachineBehaviours". Основная мысль: state machine behaviour - asset, поэтому не может хранить ссылки на объекты сцены, но может получить или они могут быть переданы. Примеры кода там есть.

Добавлено (03 октября 2016, 20:00)
---------------------------------------------
beril, математический курс по векторной алгебре или конкретно для разработчиков игр? На каком языке и важны ли субтитры? Так же стоит уточнить, что понимается под векторной алгеброй, я понял как о разделе линейной алгебры. И неплохо было бы указать какой объём должно покрывать.


Сообщение отредактировал Lertmind - Понедельник, 03 Октября 2016, 20:05
LertmindДата: Понедельник, 03 Октября 2016, 05:02 | Сообщение # 4 | Тема: Рывки и мерцания в 3D режиме, синхронизация не помогает!
заслуженный участник
Сейчас нет на сайте
Тебе стоит уточнить, именно Game Maker 8, а не 8.1? Видел упоминания, что в старых версиях (7.0) были проблемы с синхронизацией и её обычно вовсе отключали.
Попробуй включить вертикальную синхронизацию принудительно в настройках видеокарты для твоей игры.
LertmindДата: Понедельник, 03 Октября 2016, 04:35 | Сообщение # 5 | Тема: Вопрос-[ответ] по Unity.
заслуженный участник
Сейчас нет на сайте
uslucifer, Варианты:
1. Через добавление события в конце анимации. В указанном методе вызовешь Destroy() или произведёшь другие деструктивные действия. Using Animation Events.
2. Использование coroutine:
* Как в пример для Animation.clip, где просто указывается время анимации. Для Animator надо написать что-то такое:
Код
yield return new WaitForSeconds(myAnimator.GetCurrentAnimatorStateInfo(0).length);
// Удаляем объект
// ...
* Написание своей сопрограммы:
Код
public class WaitForEndAnimation : CustomYeildInstruction
{
    private Animator animator;
    
    public override bool keepWaiting
    {
        get { return animator.GetCurrentAnimatorStateInfo(0).normalizedTime < 1.0f; }
    }
    
    public WaitForEndAnimation(Animator animator)
    {
        this.animator = animator;
    }
}

IEnumerator Start()
{
    yield return new WaitForEndAnimation(myAnimator);
    // Удаляем объект
    // ...
}
Кастомные корутины в Unity 5.3, часть информации в ответе от elenzil · 08/07/15 22:40 How can I wait for an animation to complete?.
3. Возможно лучший вариант, использование StateMachineBehaviour. Там уже есть метод, который вызывается при выходе из StateMachine, то есть когда Animator переходит в узел Exit. Статья State Machine Behaviours (на неё нет ссылки в обучающих материалах, возможно что-то устарело).

Код не проверял, возможны ошибки.


Сообщение отредактировал Lertmind - Понедельник, 03 Октября 2016, 04:38
LertmindДата: Четверг, 29 Сентября 2016, 19:53 | Сообщение # 6 | Тема: Как сделать такой параметр, как "редкость" у предмета?
заслуженный участник
Сейчас нет на сайте
Цитата maker-rus ()
Нет, не равносилен, логика абсолютно разная. И нужда, как раз была обусловлена необходимостью из за логики вычеслений.
Я не учёл, что твой код предполагает под $db_rareItem = 0 вероятность 1%, а под $db_rareItem = 99 вероятность 100% (оператор '>=' запутывает) и подумал, что ты ошибся, поэтому я рассчитывал на [0, 100]. Если брать твой код как есть, то равносильный код:
Код
$db_rareItem = 15;
$chance = rand(0, 99);
if ($chance <= $db_rareItem){
    echo "Предмет получен!";
}
Проверил статистически, можно доказать и математически. Если не понимаешь, почему код равносилен, советую изучить матчасть.

Цитата maker-rus ()
Замечайте после того, как вникните в особенности языка
В библиотеках нормальных языков есть random() для промежутка [0, 1). Лучше воспринимать как шутку, так как для С и C++ такое недоразумение также присутствует.
Цитата maker-rus ()
в данном случае можно и с целыми числами работать и не прибигать к тому, что потом вылезит боком.
Для меня так удобней, а генерировать числа от 0 до 99999 чтобы задать вероятность 0.125% считаю нелепым, хотя и возможным. Не знаю про какие проблемы ты намекаешь.

Цитата maker-rus ()
А если он захочет на конкретный предмет выставить определнный процент выпадания?
* Во-первых, редкость намекает, что вероятность для каждой категории одинаковая. В "4. Случайно выбираешь предмет с выбранной редкостью." я не указал, но предполагается, что будет применён фильтр или вычисления характеристик предмета, чтобы игрок 5-ого уровня не получил предмет для 40-ого.
* Во-вторых, как я написал, это один из вариантов и конечно он зависит от механики, так что нет смысла добавлять мысленно к моему алгоритму функционал, который сам же решаешь неэффективным методом, и жаловаться на это. Не говоря о том, что сам автор ещё не понимает как у него будет организована система предметов или не счёл важным нас посвятить в неё.
* В-третьих, если ты разбираешься в высоконагруженных приложениях, то почему не предложил нормальный вариант? В логике твоего совета мы знаем какой предмет надо выкинуть, но не знаем частоту выпадения и обращаемся за ней в базу. Может ты предполагал, что будет выбор по всем предметам базы на основе их вероятностей, но твой код и слова на это не указывают.


Сообщение отредактировал Lertmind - Четверг, 29 Сентября 2016, 19:59
LertmindДата: Четверг, 29 Сентября 2016, 04:48 | Сообщение # 7 | Тема: Дешевый SSD хостинг на DDR4 с DDOS защитой для 10 сайтов.
заслуженный участник
Сейчас нет на сайте
Цитата HostiMan ()
Бесплатная защита от DDOS-атак
Какой мощности? Недавно был рекорд в 600 Гбит/с, защита от такой атаки стоит сотни тысяч долларов в год. Так что без указания мощности, такие высказывания - враньё.


Сообщение отредактировал Lertmind - Четверг, 29 Сентября 2016, 04:49
LertmindДата: Четверг, 29 Сентября 2016, 00:46 | Сообщение # 8 | Тема: Как сделать такой параметр, как "редкость" у предмета?
заслуженный участник
Сейчас нет на сайте
maker-rus, он похоже хотел архитектурные советы, а то что написал ты и URGINSAN одно и тоже.
Твой код равносилен:
Код
$db_rareItem = 15;
$chance = rand(0, 100);
if ($chance <= $db_rareItem){
    echo "Предмет получен!";
}
Так что нет нужды в лишнем сложении.
Замечу, что лучше хранить во float от 0 до 1, тогда можно легко задавать, допустим, 0.125%:
Код
if (random() < 0.00125) { "ok" }
По какой-то нелепости в php нет случайного числа для промежутка [0, 1) и приходится писать костыли, впрочем никогда не считал PHP нормальным языком.

Добавлено (29 сентября 2016, 00:46)
---------------------------------------------
DeadDay, вот тебе вариант:
1. В БД указываешь не вероятность, а редкость (5 возможных значений).
2. Когда происходит событие (бой, кража, ...) случайно определяешь выпадет ли предмет вообще.
3. Для каждой редкости свои вероятности, значит выбираешь редкость предмета с помощью алгоритма выбора предметов с разными вероятностями.
Этот алгоритм известен всем, например вариант у Unity:


И похожий, но наоборот работающий алгоритм (и без проверки, что сумма вероятностей больше 1):

4. Случайно выбираешь предмет с выбранной редкостью.

Вообще, лучше почитать специальные статьи вроде Loot-Tables, Random Maps and Monsters - Part I.


Сообщение отредактировал Lertmind - Четверг, 29 Сентября 2016, 00:04
LertmindДата: Среда, 28 Сентября 2016, 23:27 | Сообщение # 9 | Тема: Вопрос-[ответ] по Unity.
заслуженный участник
Сейчас нет на сайте
valera_za, у неактивного объекта не вызывается Start(), пока он не активируется. Также Update(), FixedUpdate(), OnGUI() не вызываются пока он неактивный, а отключение GameObject прерывает сопрограммы. Так что надо управлять объектом через другой активный объект. В общем-то, в твоём коде нет ошибки, просто в herolala2 нельзя указывать объект на котором этом скрипт и нельзя держать это скрипт на неактивном объекте.

Сообщение отредактировал Lertmind - Среда, 28 Сентября 2016, 23:43
LertmindДата: Среда, 28 Сентября 2016, 22:56 | Сообщение # 10 | Тема: 3-4 колонки текста в ряд в Инспекторе?
заслуженный участник
Сейчас нет на сайте
alexsilent, это же официальная документация, там всегда есть код на JS.

Добавлено (28 сентября 2016, 22:56)
---------------------------------------------
Тот раздел в Scripting PropertyDrawer. Заметь, что я давал EditorGUILayout.BeginHorizontal для Custom Editor, у PropertyDrawer такое нельзя использовать. Разберёшься по примерам.

LertmindДата: Среда, 28 Сентября 2016, 22:44 | Сообщение # 11 | Тема: Шаринг
заслуженный участник
Сейчас нет на сайте
Ты менял здесь
Код
intentObject.Call<AndroidJavaObject>("setType", "image/jpeg");
image/jpeg на image/gif?


Сообщение отредактировал Lertmind - Среда, 28 Сентября 2016, 22:50
LertmindДата: Среда, 28 Сентября 2016, 21:31 | Сообщение # 12 | Тема: 3-4 колонки текста в ряд в Инспекторе?
заслуженный участник
Сейчас нет на сайте
Легко, EditorGUILayout.BeginHorizontal + EditorGUILayout.TextField | EditorGUILayout.TextArea.
Мне интересно, можно ли сделать пользовательское отображение в Инспекторе переменной своего класса, чтобы не надо было каждый раз писать свой Custom Editor? То есть как Vector3 только для своего класса.
UPD: Всё-таки можно PropertyDrawers :)


Сообщение отредактировал Lertmind - Среда, 28 Сентября 2016, 21:36
LertmindДата: Среда, 28 Сентября 2016, 21:01 | Сообщение # 13 | Тема: Лаги NetworkManager Unet
заслуженный участник
Сейчас нет на сайте
Цитата Fedi ()
Не знаю в другом форуме мне так сказали
При чём здесь форум, открываем документацию Vector3.Lerp:
Interpolates between the vectors a and b by the interpolant t. The parameter t is clamped to the range [0, 1].
Если нужна экстраполяция используй Vector3.LerpUnclamped.

Добавлено (28 сентября 2016, 21:01)
---------------------------------------------
Кстати, попробуй убрать условие "&& Vector3.Distance(myTransform.position,lastpos) < threshold".

LertmindДата: Среда, 28 Сентября 2016, 10:01 | Сообщение # 14 | Тема: Как сделать такой параметр, как "редкость" у предмета?
заслуженный участник
Сейчас нет на сайте
JackNazaryan, можно догадаться, что игра эта http://gcup.ru/forum/9-81849-1, а так как в JS генерировать не вариант, то код будет на PHP.
Самый интересный вопрос в расстановке вероятностей. В Diablo-похожих играх уникальные только у боссов или за какие-то определённые действия, для остальных правильно подобранные коэффициенты.


Сообщение отредактировал Lertmind - Среда, 28 Сентября 2016, 10:02
LertmindДата: Вторник, 27 Сентября 2016, 18:54 | Сообщение # 15 | Тема: Лаги NetworkManager Unet
заслуженный участник
Сейчас нет на сайте
Я не разбираюсь в Unet, но у тебя есть ошибка в этой строчке:
Код
myTransform.position = Vector3.Lerp (myTransform.position, syncPos, Time.deltaTime + lerpRate);
при условии, что в lerpRate значения больше 1, в результате всегда будет возвращаться syncPos.

Это условие будет выполняться постоянно:
Код
Vector3.Distance(myTransform.position,lastpos) < threshold
потому что myTransform.position будет уходить на маленькое расстояние, а если выйдет на большое, то условие вообще не будет работать.

Внимательно почитай ответ и код от lukas8 здесь https://community.unity.com/t5....2531451. Хотя у него в Lerp используется число с потолка - 0.1, так что наверно стоит использовать логику похожую здесь http://stackoverflow.com/questio....eobject, только не запутаться в deltaTime и fixedDeltaTime.

Твоё видео, судя по курсору, тоже тормозит.


Сообщение отредактировал Lertmind - Вторник, 27 Сентября 2016, 18:59
LertmindДата: Понедельник, 26 Сентября 2016, 02:33 | Сообщение # 16 | Тема: Предложения по улучшению
заслуженный участник
Сейчас нет на сайте
TLT, вместо смайлов вставляется html-код для смайла, а надо чтобы код был неизменным: если в коде >( , то и должно отображаться >( . Так же, как и сказал ShortKedr, будет плодиться html-мусор после каждого изменения сообщения, так как он будет находить символы смайла в атрибуте alt.

Сообщение отредактировал Lertmind - Понедельник, 26 Сентября 2016, 02:35
LertmindДата: Воскресенье, 25 Сентября 2016, 23:02 | Сообщение # 17 | Тема: Предложения по улучшению
заслуженный участник
Сейчас нет на сайте
TLT, то есть этот мусор:
Код
<img rel="usm" src="/SML/angry.gif" border="0" align="absmiddle" alt=">(" />

вместо символов >( по-вашему допустим?
LertmindДата: Воскресенье, 25 Сентября 2016, 19:07 | Сообщение # 18 | Тема: Ругается на скрипт
заслуженный участник
Сейчас нет на сайте
Spaceship, потому что это код на UnityScript (JavaScript), а не C#. Сохраняй с расширением js (playerhealth.js).

Добавлено (25 сентября 2016, 19:07)
---------------------------------------------
Советую выбросить в лес этот устаревший урок и не писать на JS. Находи новые уроки.

LertmindДата: Воскресенье, 25 Сентября 2016, 18:16 | Сообщение # 19 | Тема: Предложения по улучшению
заслуженный участник
Сейчас нет на сайте
Если было, извините. Заметил, что на текст отмеченный кодом действуют смайлы, такого раньше кажется не было. Приходится каждый раз отключать смайлы. Пример:
1. Должно быть: gameObject.GetComponent<Camera> (); // Без пробела после '>'
2. Это нормально: gameObject.GetComponent<Camera >( );
3. Плохо:
Код
gameObject.GetComponent<Camera <img rel="usm" src="/SML/angry.gif" border="0" align="absmiddle" alt=">(" /> );
LertmindДата: Воскресенье, 25 Сентября 2016, 18:06 | Сообщение # 20 | Тема: Ругается на скрипт
заслуженный участник
Сейчас нет на сайте
URGINSAN, там new не нужен (необязателен), а вот запятой не хватает.

Добавлено (25 сентября 2016, 17:55)
---------------------------------------------
Вот правильный код:
Код
private var player_health_max : int = 100;
private var player_health_min : int = 100;
private var player_health : int = 100;
private var player_death : boolean = false;

function Update  () {
    if (player_health >=player_health_max) {
        player_health = player_health_max;
    }

    if (player_health <= player_health_min) {
        if (!gameObject.GetComponent.<Rigidbody>()) {
            gameObject.AddComponent (Rigidbody);
            black_gui.change_speed = 0.5;
        }
        player_death = true;
        player_health = player_health_min;
    }
}

function OnGUI  () {
    if (player_death) {
        GameObject.FindGameObjectWithTag ("Player").GetComponent (My_character_controller).enabled = false;
        GameObject.FindGameObjectWithTag ("Player").GetComponent (MouseLook).enabled = false;
        GameObject.FindGameObjectWithTag ("MainCamera").GetComponent (MouseLook).enabled = false;
    }
    GUI.Label (Rect (50, 60,300, 40), "Здоровье: " + player_health);
}
black_gui, My_character_controller и MouseLook должны существовать, иначе будет ошибка об отсутствии.

Добавлено (25 сентября 2016, 18:06)
---------------------------------------------
Кстати, желательно использовать #pragma strict для js, хотя само использование js нежелательно.


Сообщение отредактировал Lertmind - Воскресенье, 25 Сентября 2016, 18:07
Форум игроделов » Записи участника » Lertmind [593]
  • Страница 1 из 30
  • 1
  • 2
  • 3
  • 29
  • 30
  • »
Поиск:

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