Показать сообщение отдельно
Старый 06.12.2010, 00:14   #88
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Визуальный редактор логики для Unity

Мы стараемся как можем. Никак не дотянем до запуска бетатеста, даже закрытого. Сейчас необходимо продвинуть другой проект до 15 числа, так что не знаю когда начнется ЗБТ.

В скрипты это нельзя конвертировать. Это готовая программа, работающая так, как это выглядит визуально. Да и какой смысл конвертировать в скрипты и потом на них вешать снова объекты?

Планируется визуальная отладка, в которой в рантайм режиме на открытом скрипте можно будет посмотреть все промежуточные данные на входах и выходах блоков. Принцип работы аналогичен скрипту, унаследованному от MonoBehaviour, но работает это на нашем ядре.

У нас собственная сериализация, которая поддерживает практически все стандартные ValueType (byte, long, double, ArrayList, List<>, Dictionary<,>, HashTable и т.д.) Их массивы и списки. Можно даже сохранить во входной переменной блока AnimationCurve, которую потом можно использовать для интерполяции при движении объекта. В видео выше это показано.

Система расширяемая. Достаточно написать свой собственный блок в виде класса, унаследованного от LogicBlock и система при открытии окна его найдет (не зависимо где он находится в проекте, или в подключенной dll). Вот пример:
[VisualLogicBlock("SmoothStep""UnityEngine/Mathf"ParentName "Mathf Do")]
  public class 
MathfSmoothStepDo LogicBlock
  
{
  
    [
Parameter(VariableType.Intypeof(float), Name "from")]
    public 
Variable fromIn;

    [
Parameter(VariableType.Intypeof(float), Name "to")]
    public 
Variable toIn;

    [
Parameter(VariableType.Intypeof(float), Name "t")]
    public 
Variable tIn;

    [
Parameter(VariableType.Outtypeof(float), Name "result")]
    public 
Variable result;

    public 
override void OnInitializeDefaultData()
    {
       
RegisterOutputTrigger("Exit");
    }

    [
EntryTrigger]
    public 
void In()
    {
      
result.Value UnityEngine.Mathf.SmoothStep((float)fromIn.Value, (float)toIn.Value, (float)tIn.Value);

      
ActivateTrigger();
    }

    public 
override bool useCustomTriggers get { return true; } }

  } 
Результатом будет такой блок:


Так что нужна вам такая система или нет, решать Вам

UPD: Возможно будет поддержка логических блоков, написанных на JavaScript. Об этом узнаем чуть позже, когда упакуем ядро в dll.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Dr.Evil (06.12.2010), Illidan (06.12.2010), Nuprahtor (06.12.2010), Reks888 (07.12.2010), viper86 (06.12.2010)