GodotФорумВопросы

Вопросы о редакторе

#0
12:18, 31 янв 2023

Скажите возможно увидеть в редакторе изменения обьектов
к примеру в Юнити есть окно игры и окно сцены в котором можно увидеть
статусы о обьектах (переменные самих обьектов)
или только  через  print() ??

#1
12:40, 31 янв 2023

Чем не устраивает просмотр свойств во вкладке remote? 

Также Смотри гайд "выполнение кода в редакторе" командой tool

И может пригодиться флаг OS.has_feature("standalone")

#2
16:49, 31 янв 2023

Что значит "статусы оБ объектах"? Как было упомянуто, есть инспектор дерева
выполняемого приложения и есть просто отладчик.

InfuriatedCoder
> И может пригодиться флаг OS.has_feature("standalone")
Standalone - немного другое - это экспортировано приложение или нет.
Для tool есть Engine.is_editor_hint()

Прошло более 1 года
#3
21:01, 10 авг 2024

s3dworld
Я не силён в анимациях.
Думаю, что дерево анимаций создано, чтобы _из_кода_не_фигачить.
Тоесть, визуальная настройка _до_запуска_игры.

Пробуй читать нечто..
https://docs.godotengine.org/en/3.5/tutorials/animation/animation_tree.html

Сравнивай с версией 4
https://docs.godotengine.org/en/stable/classes/class_animationnod… dspace1d.html
https://docs.godotengine.org/en/stable/tutorials/animation/animation_tree.html

#4
(Правка: 21:57) 21:54, 10 авг 2024

s3dworld
Это не о редакторе вопрос ))

Тебе никакого BlendSpace1D не надо, если у тебя управление дискретное.
Делаешь просто граф стейт-машины  (AnimationNodeStateMachine), там завязываешь переходы между анимациями и выставляешь xfade_time.
Оно и будет плавным. Далее, в нужных местах делаешь travel()

  stateMachine.travel("idle")
  ...
  stateMachine.travel("walk)
  ...
  stateMachine.travel("run")
Изображение
#5
12:51, 11 авг 2024

s3dworld
> Привык что есть слои, есть анимационные параметры в аниматоре

Так и здесь есть "слои" - это фильтры костей. А в аниматоре ты можешь поменять loop для отдельной анимации.
> Это основной и правильный способ?
Нет таких. AnimationTree - очень гибкий инструмент. В сочетании с кодом можно разные подходы рисовать.

У AnimationPlayer есть особенность, что сигналы не работают, когда он в связке с AnimationTree, т.к. используется не он, а его кэшированная копия.
У тебя много вопросов, ты бы их сгруппировал. Я когда изучал, всё в доках находил.
Напиши поконкретнее, что непонятно. И лучше в новой теме.

#6
(Правка: 14:15) 14:12, 11 авг 2024

s3dworld
> проблем не будет что я пишу не _isAttacking?
Это конвенция gdscript. В шарпе, как я понимаю паскалькейз.

KeyList.W - неправильно хардкодить. Нужны экшены. Ещё более правильно - это Inpit.get_vector(...)
И dir  должен быть Vector2

s3dworld
> В общем если игрок хоть раз атаковал, то двигаться он больше не сможет. Как это исправить?
Как то так

  private bool isAttacking = false;

  void setAttackState(bool value)
  {
     if (value != isAttacking)
    {
       isAttacking = value;
       stateMachine.Travel( isAttacking ? "Attack" : "Move");
    }
  }
  // ...
  setAttackState( Input.isActionJustPressed("attack") );
  Vector2 motionDir = isAttacking ? Vector2.Zero : Input.get_vector("move_left", "move_right", "move_forward", "move_back");
#7
(Правка: 16:32) 16:14, 11 авг 2024

s3dworld
Есть Input.isActionJustPressed(), а есть Input.isActionPressed()


> получать событие что анимация атаки завершилась

Я уже писал.
Der FlugSimulator
> У AnimationPlayer есть особенность, что сигналы не работают, когда он в связке с AnimationTree
Это некоторая багофича, которую подправили в G4, реструктуризацией классов.
В G3, я сильно не парился и делал одноразовый таймер
  get_tree().create_timer(aniPlayer.get_animation("fire").length)

#8
(Правка: 20:37) 17:32, 11 авг 2024

s3dworld
> Ох, надеюсь вызов create_timer() ничего там не выделяет
Что значит "не выделяет". Это RefCounted

> Но, честно говоря мне это не очень нравится. Везде строки. В Unity можно было хэшировать строку и работать через числа.
Мне тоже не нравится, что ты не прочитал о сравнениях строк в Godot. Они под капотом работают как целые.
Всё ведь в открытом доступе.

s3dworld
> Значит Godot 3 с багами. Весело.
Ты баггрекер юнити видел?
И собственно это не баг, я вроде всё объяснил.

> Да не суть.
Зачем я тогда трачу время на флуд?
Странный подход. Ты возьми да попробуй.

Просто у тебя 100 пионерских вопросов, которые есть в документации. Я тебе пишу ответы, а ты пытаешься их оспорить.
Прости, но у меня нет на это времени. В конце концов - это у тебя вопросы. А у меня всё работает как надо.

Если есть конкретные вопросы - задавай их в новой теме.
Если ты нашел баг, или очень недоволен движком, его подходами, то пожалуйста - тоже делай это в новой теме.
Если хочешь сделать предметное сравнение с Юнити - всё то же самое.

Раздел не очень большой, и тем более важно не превращать его во флудопомойку с дискуссиями ниочём в левой теме.

GodotФорумВопросы

Тема закрыта.