Godot: [рдЯреНрд░реИрдХрд░] рдЕрдЧрд▓реЗ рдирд┐рдпреЛрдЬрд┐рдд рд╕рдВрдЧрддрддрд╛ рдЯреВрдЯрдиреЗ рдореЗрдВ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ, рдЧреБрдг рдФрд░ рд╕рдВрдХреЗрдд

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдлрд╝рд░ре░ 2018  ┬╖  366рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: godotengine/godot

рдпрд╣ рдореБрджреНрджрд╛ рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдирд╛рдорд┐рдд рдпрд╛ рдмрд╣рд┐рд╖реНрдХреГрдд рд╡рд┐рдзрд┐рдпреЛрдВ, рдЧреБрдгреЛрдВ рдФрд░ рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЕрдЧрд▓реА рдмрд╛рд░ рдЕрд╡рд╕рд░ рдорд┐рд▓рдиреЗ рдкрд░ рдирд╛рдо рдмрджрд▓рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

рдпрд╣ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдкрдиреЗ рдкреБрд░рд╛рдиреЗ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

  • рдпрд╛ рддреЛ рдПрдХ рдмрд╣рд┐рд╖реНрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж: рдкрджрд╛рд╡рдирдд рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд - рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рджрд┐рдЦрд╛рддрд╛ рд╣реИ - рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреВрд░реНрдг рд▓рдШреБ рд░рд┐рд▓реАрдЬ рдЪрдХреНрд░ (рдЬреИрд╕реЗ 3.1.x) рдХреЗ рд▓рд┐рдП, рдлрд┐рд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдорд╛рдореВрд▓реА рдпрд╛ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдЯрдХреНрдХрд░ рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
  • рдпрд╛ рдПрдХ рдкреНрд░рдореБрдЦ рд╕рдВрдЧрддрддрд╛ рдмреНрд░реЗрдХрд┐рдВрдЧ рд░рд┐рд▓реАрдЬ рдХреЗ рднреАрддрд░ (рдЬреИрд╕реЗ рдХрд┐ 3.0 рд╕реЗ 2.1 рддрдХ рдерд╛; рд▓реЗрдХрд┐рди рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдЕрдХреНрд╕рд░ рдирд╣реАрдВ рд╣реЛрдВрдЧреА - рдпрджрд┐ рдХрднреА рдлрд┐рд░ рд╕реЗ - рддреЛ рдмрд╣рд┐рд╖реНрдХрд░рдг рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП)ред

рд╡рд┐рдзрд┐рдпреЛрдВ, рдЧреБрдгреЛрдВ рдФрд░ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдареАрдХ рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ #4397 рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдП: рдЯрд╛рдбрд╛: @ akien -mga рдпрд╛


рдХрдХреНрд╖рд╛рдУрдВ

  • [ ] OS* рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ Platform* https://github.com/godotengine/godot/issues/16863#issuecomment -403253127
  • [ ] Label : TextLabel рдирд╛рдо рдмрджрд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ https://github.com/godotengine/godot/issues/16863#issuecomment -502517425
  • [ ] PHashTranslation рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ CompressedTranslation рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЗрд╕рдХреЗ рд╢реАрд░реНрд╖рд▓реЗрдЦ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реБрдП)
  • [ ] ResourceFormat* : ResourceFormatLoader , ResourceFormatSaver рдФрд░ ImageFormatLoader рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рд╡реЗ рдПрдХ рд╣реА рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ (рд╡рд░реНрдЧ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рджреЛрдиреЛрдВ)
  • [x] ShortCut рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ Shortcut рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП https://github.com/godotengine/godot/issues/16863#issuecomment -685236980 #41926
  • [ ] TCP_Server рдФрд░ IP_Unix рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ TCPServer рдФрд░ IPUnix #37700 рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  • [ ] Viewport рдХреЛ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ https://github.com/godotengine/godot/issues/16863#issuecomment -631789777

рддрд░реАрдХреЛрдВ

  • [ ] @GDScript (рдФрд░ рдХрдИ рдЕрдиреНрдп рд╕реНрдерд╛рди): instance рдЬрдм рдХреНрд░рд┐рдпрд╛/рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ instantiate https://github.com/godotengine/godot/issues/ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  • [x] @GDscript : decimals рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ step_decimals #21425 рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  • [ ] @GDscript : stepify рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ snapped рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрд┐ рд╣реЛ рд╕рдХреЗ https://github.com/godotengine/godot/issues/16863#issuecomment -655258916
  • [ ] AcceptDialog рдФрд░ ConfirmationDialog : get_ok рдФрд░ get_cancel get_ok_button рдФрд░ get_cancel_button (рдорд┐рд▓рд╛рди WindowDialog.get_close_button ) https://github.com/godotengine/godot/issues/16863#issuecomment -421071469
  • [ ] AnimatedSprite2D рдФрд░ AnimatedSprite3D : stop pause рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП https://github.com/godotengine/godot/issues/31168
  • [] Animation : track_remove_key_at_position рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП track_remove_key_at_time
  • [ ] AnimationPlayer : play_backwards рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ https://github.com/godotengine/godot/issues/16863#issuecomment -490298187
  • [ ] Area : set_audio_bus рдФрд░ get_audio_bus рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ set_audio_bus_name рдФрд░ get_audio_bus_name рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдкрддреНрддрд┐ рдФрд░ рдЙрдирдХреЗ Area2D рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  • [ ] Array (рдХреБрдЫ рдмрджрд▓рд╛рд╡ PackedArrays рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ) https://github.com/godotengine/godot/issues/16863#issuecomment -441376010:

    • рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП remove рд╕реЗ remove_at рдирд╛рдо рдмрджрд▓реЗрдВ (рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдПрдВ)

    • рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП erase рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ remove_value (рдорд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдЯрд╛рдПрдВ) рдХрд░реЗрдВ

    • рдЕрдзрд┐рдХ рд╕реНрдерд╛рдкрд┐рдд рдирд╛рдордХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП invert рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ reverse рдХрд░ рджреЗрдВ

    • рдЕрдзрд┐рдХ рд╕реНрдерд╛рдкрд┐рдд рдирд╛рдордХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП duplicate рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ clone рдХрд░ рджреЗрдВ

    • empty рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ is_empty рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдПрдХ рдмреВрд▓рд┐рдпрди рдЪреЗрдХ рд╣реИ рдФрд░ рд╕рд░рдгреА рдХреЛ рдЦрд╛рд▓реА рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдСрдкрд░реЗрд╢рди рдирд╣реАрдВ рд╣реИ

  • [ ] Camera : set_znear рдФрд░ set_zfar рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ near рдФрд░ far рдЧреБрдгреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП https://github.com/ Godotengine/godot/issues/16863#issuecomment -412810788
  • [ ] Control : рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдФрд░ рдЙрдирдХреЗ рд╕реЗрдЯрд░/рдЧреЗрдЯреНрдЯрд░ рдирд╛рдореЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рд╕рдВрдЧрддрд┐ https://github.com/godotengine/godot/issues/16863#issuecomment -381420942
  • [] CollisionShape : make_convex_from_brothers рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП make_convex_from_siblings https://github.com/godotengine/godot/issues/16863#issuecomment -+рекреп,рейрен,репрек,рейрезрей
  • [] EditorInterface : get_editor_viewport рд╣реЛ рд╕рдХрддрд╛ рд╣реИ get_editor_main_screen https://github.com/godotengine/godot/issues/16863#issuecomment -+ремрей,рекреи,релрео,релрежреи + 2 рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ
  • [x] GridMap : set_cell_item (3 int s) рдХреЛ Vector3i #39958 рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  • [ ] InputMap : load_from_globals load_from_project_settings рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП https://github.com/godotengine/godot/issues/16863#issuecomment -426457888
  • [ ] ItemList : unselect рдФрд░ unselect_all deselect рдФрд░ deselect_all , рдЬреЛ рд╕рдорд╛рди рддрд░реАрдХреЛрдВ рд╕реЗ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реЛрдВред deselect_items рдореЗрдВ рднреА рд╣реИ FileDialog , рдЗрд╕ #28558 рдореЗрдВ рд╕рд╛рдордВрдЬрд╕реНрдп рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  • [ ] JSON : print рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдХреБрдЫ рдФрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП https://github.com/godotengine/godot/issues/16863#issuecomment -557657413 + рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
  • [ ] KinematicBody рдФрд░ KinematicBody2D : рдПрдкреАрдЖрдИ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рдФрд░ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдХреБрдЫ рд╡рд┐рдзрд┐ рддрд░реНрдХреЛрдВ рдХрд╛ рдПрдХ рд░рд┐рдлреИрдХреНрдЯрд░/рдкреБрдирд░реНрдХреНрд░рдордг рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП #16757 #19648 рджреЗрдЦреЗрдВ)ред
  • [ ] MainLoop : _iteration рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ _physics_process рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, _idle рдХреЛ _process рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЧреИрд░ рдЖрднрд╛рд╕реА рддрд░реАрдХреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ input_text рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП #30096
  • [ ] Mesh : surface_get_material -> get_surface_material рдФрд░ surface_set_material -> set_surface_material https://github.com/godotengine/godot/ рдореБрджреНрджреЗ/16863#рдореБрджреНрджрд╛ рдЯрд┐рдкреНрдкрдгреА -652067884
  • [x] Node : get_index рдФрд░ get_position_in_parent рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рд╣реИрдВ, рдПрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП #21802 #37556
  • [ ] Node : is_a_parent_of рдХреЛ is_ancestor_of рдпрд╛ is_descendant_of рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП https://github.com/godotengine/godot/issues/16863#issuecomment - 564532042
  • [x] Node : set_as_toplevel set_as_top_level рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рднреА рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ https://github.com/godotengine/godot/issues/16863#issuecomment - 498428024 https://github.com/godotengine/godot/issues/24154 #42451
  • [ ] Node2D рдФрд░ Node3D : рд╡рд╕реНрддреБ-рд╕реНрдерд╛рдиреАрдп рдЕрдиреБрд╡рд╛рдж рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрддрд┐ https://github.com/godotengine/godot/issues/16863#issuecomment -530519327
  • [ ] OptionButton : get_selected_id #21837 . рдХреЗ рдмрд╛рдж рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
  • [ ] OS : can_draw Engine рд╕рд┐рдВрдЧрд▓рдЯрди рдореЗрдВ рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓ рд╣реЛрдЧрд╛
  • [ ] OS : execute рдХреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдПрдХ рдЕрд╡рд░реБрджреНрдз рдФрд░ рджреВрд╕рд░рд╛ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдзред
    рдЙрджрд╛рд╣рд░рдг рдХреЗ рдирд╛рдо: execute / exec_process (рдЕрд╡рд░реБрджреНрдз) рдФрд░ spawn_process (рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз) #19302
  • [x] рднреМрддрд┐рдХреА (рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧ): add_force рдФрд░ apply_impulse рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЙрдирдХреЗ рддрд░реНрдХ рдХреНрд░рдо рдХреЗ рд╕рд╛рдордВрдЬрд╕реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ https://github.com/godotengine/godot/issues/16863#issuecomment -416791048 #37350
  • [ ] Quat : рд╕реЗрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ https://github.com/godotengine/godot/issues/16863#issuecomment -515892880
  • [ ] Rect2 : AABB рд╕рд╛рде рд╕рдВрдЧрддрд┐ рдХреЗ рд▓рд┐рдП clip рд╕реЗ intersection рдирд╛рдо рдмрджрд▓реЗрдВред https://github.com/godotengine/godot/issues/16863#issuecomment -655299536
  • [ ] RichTextLabel : set_use_bbcode рдФрд░ set_bbcode рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ set_use_fixed_bbcode рдФрд░ set_fixed_bbcode рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ bbcode рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди #19118 . рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЪреЗрддрд╛рд╡рдиреА рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП
  • [ ] Skeleton : set_bone_global_pose рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ set_bone_skeleton_pose рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЧреЗрдЯреНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди)ред get_bone_transform рдХрд╛ рднреА рдирд╛рдо рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП #19551
  • [ ] Sprite , Sprite3D : set_region рдФрд░ is_region рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ set_region_enabled рдФрд░ is_region_enabled https:// github.com/godotengine/godot/issues/16863#issuecomment -380225780
  • [ ] String : ord_at рдЕрд╕реНрдкрд╖реНрдЯ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ unicode_at #15519 рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ
  • [ ] String: right рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрддрд░ substr рдХрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИ https://github.com/godotengine/godot/issues/16863#issuecomment -419635744
  • [ ] String : http_escape рд╕реЗ uri_encode , http_unescape рд╕реЗ uri_decode рдирд╛рдо рдмрджрд▓реЗрдВ https://github.com/godotengine/godot/issues /16863#рдЗрд╢реНрдпреВ рдХрдореЗрдВрдЯ -503491938
  • [ ] Texture2D : get_data get_image рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП https://github.com/godotengine/godot/issues/16863#issuecomment -652064475
  • [x] TileMap : set_y_sort_mode рдФрд░ is_y_sort_mode_enabled рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ set_y_sort_enabled рдФрд░ is_y_sort_enabled https://github.com/godotengine/ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • [ ] TileMap : рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдФрд░ рдЙрдирдХреЗ рд╕реЗрдЯрд░/рдЧреЗрдЯреНрдЯрд░ рдирд╛рдореЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рд╕рдВрдЧрддрд┐ https://github.com/godotengine/godot/issues/16863#issuecomment -382545668
  • [ ] TileMap : set_cell (2 int s) рдФрд░ set_cellv ( Vector2 ) рдХреЛ Vector2i рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  • [ ] Tree : get_selected рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ get_active рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП https://github.com/godotengine/godot/issues/16863#issuecomment -425712040
  • [x] Tween : рдХрдИ рддрд░реАрдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ bool рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдЗрд╕реЗ void рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП https://github.com/godotengine/godot/issues/16863#issuecomment -420286639 #36844
  • [x] UndoRedo : is_commiting_action рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ, "рдкреНрд░рддрд┐рдмрджреНрдз" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
  • [ ] VisualServer : sync рдФрд░ draw рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдореМрдЬреВрджрд╛ force_sync рдФрд░ force_draw #15892 рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  • [ ] Vector2 : tangent рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯ/рдЧрд▓рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ perpendicular рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП https://github.com/godotengine/godot/issues/16863#issuecomment -618294043 https ://github.com/godotengine/godot/pull/39685
  • [ ] XRPositionalTracker : get_type -> get_tracker_type рдФрд░ get_name -> get_tracker_name https://github.com/godotengine/godot/ рдореБрджреНрджреЗ/16863#рдореБрджреНрджреЗ -571283702 https://github.com/godotengine/godot/issues/15763#issuecomment -568908661 #36382 https://github.com/godotengine/godot/issues/16863#issuecomment -494437342

рдЧреБрдг

  • [ ] BoxShape , CubeMesh рдФрд░ CSGBox : рдЙрдирдХреЗ рдЖрдпрд╛рдо рдЧреБрдг рдЕрд╕рдВрдЧрдд рд╣реИрдВ, рдФрд░ CubeMesh рдирд╛рдо рдмрджрд▓рдХрд░ BoxMesh https:/ /github.com/godotengine/godot/issues/16863#issuecomment -403253127
  • [ ] Camera2D : offset рдФрд░ offset_h / offset_v рднреНрд░рдорд┐рдд рд░реВрдк рд╕реЗ рдирд╛рдорд┐рдд рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╕рдВрднрд╡рддрдГ Camera рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ h_offset рдФрд░ v_offset https://github.com/godotengine/godot/issues/16863#issuecomment -407133383 #7489 рд╣реИ
  • [ ] Camera2D : limit_ рдорд╛рдиреЛрдВ рдХреЛ Rect2i рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреЗ https://github.com/godotengine/godot/issues/16863#issuecomment -595585595 рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
  • [ ] Control: рдирд╛рдо рдмрджрд▓реЗрдВ margin рд╕реЗ offset рдЕрдм рдХрд┐ рд╡реЗ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ? https://github.com/godotengine/godot/issues/16863#issuecomment -401824810
  • [ ] Control: rect_rotation рдбрд┐рдЧреНрд░реА рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП Node2D рдХреЗ rotation_degrees рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ rect_rotation_degrees рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдПрдХ рдирдпрд╛ rect_rotation рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд░реЗрдбрд┐рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
  • [ ] CPUParticles2D : рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд▓рд┐рдП normalmap рд╕реЗ normal_map рдирд╛рдо рдмрджрд▓реЗрдВ https://github.com/godotengine/godot/issues/16863#issuecomment -615254863
  • [x] Engine : iterations_per_second рд╕реЗ physics_fps рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рд╕рдорд╛рди рдирд╛рдо рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗрдЯрд┐рдВрдЧ рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░реЗрдВ https://github.com/godotengine/godot/issues/16863#issuecomment -554682554 https://github.com/godotengine/godot/pull/41956
  • [ ] ImageTexture : lossy_quality рдХреЛ рдПрдХ рдПрдирдо (рдирд┐рдореНрди, рдордзреНрдп, рдЙрдЪреНрдЪ, рдЖрджрд┐) рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрдЬрд╛рдп рдПрдХ рдлреНрд▓реЛрдЯ рдЕрдиреБрдкрд╛рдд рдХреЗ рдЬрд┐рд╕реЗ рдордирдорд╛рдиреЗ рдкрдард╛рд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ( Image::compress() ) https://github.com/godotengine/godot/pull/21167#issuecomment -414234160
  • [ ] LightOccluder2D : light_mask -> occluder_light_mask https://github.com/godotengine/godot/issues/16863#issuecomment -571283702 https://github.com/ Godotengine/godot/issues/15763#issuecomment -568908661 https://github.com/godotengine/godot/pull/36382
  • [ ] Label рдФрд░ Button : clip_text рдЕрдм рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдореЗрдВ rect/clip_content #20228 рд╣реИ
  • [ ] LineEdit : cursor_* рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ caret_* #16116 рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  • [ ] LineEdit рдФрд░ TextEdit : рдЙрдирдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдкреАрдЖрдИ рдХреЛ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕рдВрднрд╡ рд╣реЛ рд╕рдорд░реВрдк рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ https://github.com/godotengine/godot/issues/16863#issuecomment -409058538
  • [ ] Node2D , Spatial : position (2D) рдФрд░ translation (3D) #9128 рдХреЗ рдмреАрдЪ рдЕрд╕рдВрдЧрддрд┐
  • [ ] NoiseTexture : рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд▓рд┐рдП as_normalmap рд╕реЗ as_normal_map рдирд╛рдо рдмрджрд▓реЗрдВ https://github.com/godotengine/godot/issues/16863#issuecomment -615254863
  • [x] RayCast : cast_to рд╕реЗ target_position рдирд╛рдо рдмрджрд▓реЗрдВ https://github.com/godotengine/godot/issues/16863#issuecomment -676512989
  • [ ] RayCast рдФрд░ рдЕрдиреНрдп: disabled рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ enabled рд╡рд╛рд▓реЗ рдореЗрдВ рдмрджрд▓реЗрдВ https://github.com/godotengine/godot/issues/16863#issuecomment -511037393 + рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд 2 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
  • [ ] Resource : resource_name рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП #13358
  • [ ] TileMap : collision_friction рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ friction #18191 рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рд╕рд┐рдЧреНрдирд▓

  • [ ] CanvasItem : hide рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ hidden рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  • [ ] Tabs : tab_close рдФрд░ tab_hover рд╡рд░реНрддрдиреА tab_closed рдФрд░ tab_hovered рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
  • [ ] Tree : item_activated (рд▓реЗрдмрд▓ рдбрдмрд▓-рдХреНрд▓рд┐рдХ) рдФрд░ item_double_clicked (рдЖрдЗрдХрди рдбрдмрд▓-рдХреНрд▓рд┐рдХ), рдирд╛рдо рдареАрдХ рд╕реЗ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ #16839
  • [ ] XRController : button_release рд╡рд░реНрддрдиреА button_released рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (рдЬреИрд╕реЗ button_pressed )

Enums

рд╕реНрдерд┐рд░рд╛рдВрдХ

  • [ ] рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░рд╛: PROPERTY_USAGE_STORE_IF_NONZERO рдФрд░ PROPERTY_USAGE_STORE_IF_NONONE рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд╣ рднреА GDNative рд╕реЗ

рдереАрдо рдЖрдЗрдЯрдо

  • [ ] ItemList , LineEdit , RichTextLabel , TextEdit рдФрд░ Tree : font_color_selected рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ font_selected_color рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП _color рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред #30018

рд╡рд╕реНрддреБрдУрдВ

  • [x] CapsuleShape рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓рдВрдмрд╡рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП #36488

рдЫрд╛рдпрд╛рдВрдХрди рднрд╛рд╖рд╛

  • [ ] WORLD_MATRIX рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдореЙрдбрд▓-рд╡реНрдпреВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред @reduz рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреГрд╢реНрдп рдФрд░ рдореЙрдбрд▓ рдореИрдЯреНрд░рд┐рд╕реЗрд╕, рдЬреИрд╕реЗ CANVAS_MATRIX рдФрд░ ITEM_MATRIX рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ (рдФрд░ CAMERA_MATRIX , рдЬреЛ рдПрдХ рджреГрд╢реНрдп рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ) рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕

  • [ ] display/window/size/test_width рдФрд░ test_height рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ window_width рдФрд░ window_height рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдореЗрдВ width рдФрд░ height рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╢рд╛рдпрдж render_width рдФрд░ render_height ред https://github.com/godotengine/godot/issues/16863#issuecomment -412308210

рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдк

  • [ ] рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдХрд╕реНрдЯрдо рдмрд╛рдЗрдирд░реА рд╕рдВрд╕рд╛рдзрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди ( RES_BASE_EXTENSION ) рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ https://github.com/godotengine/godot/issues/16863#issuecomment -413620204
breaks compat enhancement core tracker

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдердХрд╛рдК рд╣реИ, рд▓реЗрдХрд┐рди рдЧреЙрдбрд╕реНрдкреАрдб рдЬреЛ рдХреЛрдИ рднреА instance рдХреЛ instantiate рд░реВрдк рдореЗрдВ рдареАрдХ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рднреА 366 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдердХрд╛рдК рд╣реИ, рд▓реЗрдХрд┐рди рдЧреЙрдбрд╕реНрдкреАрдб рдЬреЛ рдХреЛрдИ рднреА instance рдХреЛ instantiate рд░реВрдк рдореЗрдВ рдареАрдХ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

16116

Sprite.set_region(val) -> Sprite.set_region_enabled(val)
Sprite.is_region () -> Sprite.is_region_enabled ()

рдЯрд╛рдЗрд▓рдореИрдк.рд╕реЗрдЯ_рдп_рд╕реЙрд░реНрдЯ_рдореЛрдб (рд╡реИрд▓) -> рдЯрд╛рдЗрд▓рдореИрдк.рд╕реЗрдЯ_рдп_рд╕реЙрд░реНрдЯ_рдЗрдиреЗрдмрд▓реНрдб (рд╡реИрд▓)
рдЯрд╛рдЗрд▓рдореИрдк.is_y_sort_mode_enabled () -> рдЯрд╛рдЗрд▓рдореИрдк.is_y_sort_enabled ()

rect_min_size
Control.set_custom_minimum_size(value) -> Control.set_rect_min_size(value)
Control.get_custom_minimum_size() -> Control.get_rect_min_size

рдХрдВрдЯреНрд░реЛрд▓ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫ рд╣реИрдВ, рдЧреЗрдЯ/рд╕реЗрдЯ рдХрд╛ рдирд╛рдо рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рдЖрдк рд╡реЗрд░рд┐рдПрдмрд▓ рдирд╛рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рддреЛ рд╣рд░ рдмрд╛рд░ рдбреЙрдХ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реЛрддрд╛ рд╣реИред

TileMap рд╡рд░реНрдЧ рдореЗрдВ рдЧреЗрдЯрдЯрд░ рдФрд░ рд╕реЗрдЯрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ рдЬреЛ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдЧреБрдгреЛрдВ рд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реИрдВред рдЕрд╕рд▓ рдореЗрдВ рдореИрдВ рдЙрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░реНрд╕ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдЕрдкрдиреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдирд╛рдордХрд░рдг рд╕реЗ рд╕рд╣рдордд рд╣реИрдВред

рдПрдирд┐рдореЗрд╢рди.track_remove_key_at_position рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдПрдирд┐рдореЗрд╢рди.рдЯреНрд░реИрдХ_рд░рд┐рдореВрд╡_рдХреА_рдПрдЯ_рдЯрд╛рдЗрдо

рддрд░реАрдХреЛрдВ

  • OS : execute рдХреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдПрдХ рдЕрд╡рд░реБрджреНрдз рдФрд░ рджреВрд╕рд░рд╛ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдзред
    рдЙрджрд╛рд╣рд░рдг рдХреЗ рдирд╛рдо: execute / exec_process (рдЕрд╡рд░реБрджреНрдз) рдФрд░ spawn_process (рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз) #19302

LineEdit рдореЗрдВ "text_changed" рдкрд░ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ new_text рд╣реИ, рд▓реЗрдХрд┐рди TextEdit рдирд╣реАрдВ рд╣реИред

https://github.com/godotengine/godot/blob/master/scene/gui/text_edit.cpp#L6104
https://github.com/godotengine/godot/blob/master/scene/gui/line_edit.cpp#L1466

рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ VBoxContainer/HBoxContainer/GridContainer рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рд╕рд╛рдзрд╛рд░рдг VBox/HBox/рдЧреНрд░рд┐рдб рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП ...

рдФрд░ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХрд╛ рдлрд┐рд░ рд╕реЗ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ рдЬреИрд╕реЗ pos->position :D

рд╡реЗ рдереЛрдбрд╝реЗ рд▓рдВрдмреЗ рд╣реИрдВ рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЧреЛрдбреЛрдЯ рдХреЗ рд╡рд┐рдзрд┐ рдирд╛рдореЛрдВ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛рдПрдВ рд╣реИрдВред

рдХрднреА-рдХрднреА, рдпрд╣ рдПрдХ рдЖрдо рдкрд░рдВрдкрд░рд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реА # рдпрд╛ рдЬрд╛рд╡рд╛ рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдПрдкреАрдЖрдИ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ [action][object]() рдлреЙрд░реНрдо: рдпрд╛рдиреА)

  • Mesh.GetBlendShapeName()
  • AnimationPlayer.GetCurrentAnimation()
  • Button.GetButtonIcon()

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдиреНрдп рдЬрдЧрд╣реЛрдВ рдкрд░, рдпрд╣ [prefix][action][object]() рдПрдХ рдЕрд▓рдЧ рд╕рдореНрдореЗрд▓рди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ:

  • Mesh.SurfaceGetFormat()
  • AnimationTreePlayer.NodeGetInputCount()
  • CollisionObject.ShapeOwnerGetOwner()

рд╡реЗ рдХрдИ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред

рдЕрдЧрд░ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрднреА-рдХрднреА рд╡реНрдпрд╛рдкрдХ рдЕрдиреБрдХреВрд▓рддрд╛ рддреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдирдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдПрдХрд▓, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдкреВрд░реНрд╡, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдХреНрд╕рд░ рдЧреЛрдбреЛрдЯ рдХреЗ рдЕрдВрджрд░ рдФрд░ рдмрд╛рд╣рд░ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдиреНрдп рдЬрдЧрд╣реЛрдВ рдкрд░, рдпрд╣ [prefix][action][object]() рдПрдХ рдЕрд▓рдЧ рд╕рдореНрдореЗрд▓рди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ:

  • Mesh.SurfaceGetFormat()
  • AnimationTreePlayer.NodeGetInputCount()
  • CollisionObject.ShapeOwnerGetOwner()

рдореИрдВрдиреЗ рд╕рднреА рдЙрдкрдпреЛрдЧреЛрдВ рдХреА рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдирд╛рдордХрд░рдг рдХреА рд╢реИрд▓реА рдХреЛ рджреЗрдЦрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИ, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдореНрдореЗрд▓рди рдХрд╛ рднреА рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП shape_owner_get рддрд░реАрдХреЗ:

doc/classes/CollisionObject.xml
101:            <method name="shape_owner_get_owner" qualifiers="const">
110:            <method name="shape_owner_get_shape" qualifiers="const">
121:            <method name="shape_owner_get_shape_count" qualifiers="const">
130:            <method name="shape_owner_get_shape_index" qualifiers="const">
141:            <method name="shape_owner_get_transform" qualifiers="const">

"рдЙрдкрд╕рд░реНрдЧ" рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ get рдмрд╛рдж рдХрд╛ рднрд╛рдЧ рд╡рд╣ рд╣реИ рдЬреЛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рдЙрдкрд╕рд░реНрдЧ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, shape_owner_get_shape_index(owner_id, shape_id) рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ get_shape_owner(owner_id)->get_shape_index(shape_id) , рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдПрдкреАрдЖрдИ рдХреЗ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рдХреЛрдИ ShapeOwner рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ "рд╢реЙрд░реНрдЯрдХрдЯ" рд╣реИред

surface_get рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╣реА рдХрд╣рд╛рдиреА:

doc/classes/ArrayMesh.xml
88:             <method name="surface_get_array_index_len" qualifiers="const">
97:             <method name="surface_get_array_len" qualifiers="const">
106:            <method name="surface_get_arrays" qualifiers="const">
114:            <method name="surface_get_blend_shape_arrays" qualifiers="const">
122:            <method name="surface_get_format" qualifiers="const">
131:            <method name="surface_get_material" qualifiers="const">
140:            <method name="surface_get_name" qualifiers="const">
148:            <method name="surface_get_primitive_type" qualifiers="const">

doc/classes/VisualServer.xml
2363:           <method name="mesh_surface_get_aabb" qualifiers="const">
2374:           <method name="mesh_surface_get_array" qualifiers="const">
2385:           <method name="mesh_surface_get_array_index_len" qualifiers="const">
2396:           <method name="mesh_surface_get_array_len" qualifiers="const">
2407:           <method name="mesh_surface_get_arrays" qualifiers="const">
2418:           <method name="mesh_surface_get_blend_shape_arrays" qualifiers="const">
2429:           <method name="mesh_surface_get_format" qualifiers="const">
2440:           <method name="mesh_surface_get_index_array" qualifiers="const">
2451:           <method name="mesh_surface_get_material" qualifiers="const">
2462:           <method name="mesh_surface_get_primitive_type" qualifiers="const">
2473:           <method name="mesh_surface_get_skeleton_aabb" qualifiers="const">

рдпрд╛ рдПрдЯреАрдкреА рдореЗрдВ *node_get рддрд░реАрдХреЗ:

doc/classes/AnimationTreePlayer.xml
35:             <method name="animation_node_get_animation" qualifiers="const">
44:             <method name="animation_node_get_master_animation" qualifiers="const">
53:             <method name="animation_node_get_position" qualifiers="const">
109:            <method name="blend2_node_get_amount" qualifiers="const">
146:            <method name="blend3_node_get_amount" qualifiers="const">
172:            <method name="blend4_node_get_amount" qualifiers="const">
225:            <method name="mix_node_get_amount" qualifiers="const">
255:            <method name="node_get_input_count" qualifiers="const">
264:            <method name="node_get_input_source" qualifiers="const">
275:            <method name="node_get_position" qualifiers="const">
284:            <method name="node_get_type" qualifiers="const">
315:            <method name="oneshot_node_get_autorestart_delay" qualifiers="const">
324:            <method name="oneshot_node_get_autorestart_random_delay" qualifiers="const">
333:            <method name="oneshot_node_get_fadein_time" qualifiers="const">
342:            <method name="oneshot_node_get_fadeout_time" qualifiers="const">
478:            <method name="timescale_node_get_scale" qualifiers="const">
523:            <method name="transition_node_get_current" qualifiers="const">
532:            <method name="transition_node_get_input_count" qualifiers="const">
541:            <method name="transition_node_get_xfade_time" qualifiers="const">

рдореИрдВрдиреЗ рдЕрдм рддрдХ рджрд┐рдП рдЧрдП рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдУрдкреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред

рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ VBoxContainer/HBoxContainer/GridContainer рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рд╕рд╛рдзрд╛рд░рдг VBox/HBox/рдЧреНрд░рд┐рдб рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП

рдореИрдВ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реВрдВ, рдЧреЛрдбреЛрдЯ рдореЗрдВ рд╣рдо рд╣рд░ рдЪреАрдЬ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдирд╛рдо рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Grid рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реИред VBox рдФрд░ HBox рдХреЛрдИ рддрд░реНрдХ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмрдХреНрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрдВрдЯреЗрдирд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ BoxContainer рдЬреЛ Container рдЬреИрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рдЪрд╛рд▓рддрд╛ рдЕрднреА рднреА рд╡рд╛рд░рдВрдЯ рд╣реИред

LineEdit рдореЗрдВ "text_changed" рдкрд░ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ new_text рд╣реИ, рд▓реЗрдХрд┐рди TextEdit рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ new_text рдХреЛ TextEdit рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рд▓рд╛рдЗрдирдПрдбрд┐рдЯ рдкрд░, рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рд▓рд╛рдЗрдирдПрдбрд┐рдЯ рдХрд╛ рдкреВрд░рд╛ рдЯреЗрдХреНрд╕реНрдЯ рд╣реЛрддрд╛ рд╣реИ, рди рдХрд┐ рд╡рд╣ рдЯреЗрдХреНрд╕реНрдЯ рдЬреЛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣ рднреА рддрд░реНрдХ рджреВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд▓рд╛рдЗрдирдПрдбрд┐рдЯ рдХреЗ text_changed рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рднреА, рдЬрдм рдХреЛрдИ рдирдпрд╛ рд╡рд░реНрдг рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдорд▓реНрдЯреАрд▓рд╛рдЗрди рдЯреЗрдХреНрд╕реНрдЯрдПрдбрд┐рдЯ рдХреЗ рдкреВрд░реНрдг рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдХрд┐ рдЖрдк рдЗрдирдкреБрдЯ рдкрд░ рд▓рд╛рдЗрдирдПрдбрд┐рдЯ рдХреЗ рдкреВрд░реНрдг рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

@ рдПрдХрд┐рдпрди-рдордЧрд╛

рдореИрдВрдиреЗ рд╕рднреА рдЙрдкрдпреЛрдЧреЛрдВ рдХреА рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдирд╛рдордХрд░рдг рдХреА рд╢реИрд▓реА рдХреЛ рджреЗрдЦрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИ, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдореНрдореЗрд▓рди рдХрд╛ рднреА рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ

рдореИрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЕрд╡рдЧрдд рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕реНрд╡рдпрдВ рдХрд╛ рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рди рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдЧреЛрдбреЛрдЯ рдХреЗ рдмрд╛рд╣рд░ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рднреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрднреА-рдХрднреА рдПрдХ рд╣реА рд╢рдмреНрдж рдЬреИрд╕реЗ BlendShape рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рддрд░реАрдХреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд▓рд┐рдП рдЙрди рд╕рднреА рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ GetPrefix* рдФрд░ SetPrefix* рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдВред

#16757 рдореЗрдВ рддрд░реАрдХреЗ рдмрджрд▓ рдЧрдПред рддрд░реНрдХ рдХреНрд░рдо рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ 3.0 рдФрд░ 3.1 (#19648) рдХреЗ рдмреАрдЪ рдПрдкреАрдЖрдИ рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред

рдореИрдВ рдлрд┐рд░ рд╕реЗ #9128 рдмрдврд╝рд╛рдКрдВрдЧрд╛: 3рдбреА рдореЗрдВ translation рдмрдирд╛рдо 2рдбреА рдореЗрдВ position рдПрдХ рдЕрдЬреАрдм рдЕрд╕рдорд╛рдирддрд╛ рд╣реИред
рдЗрд╕реЗ 3.0 рд╕реЗ рдкрд╣рд▓реЗ рдмрдврд╝рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди 3.0 рдХреЗ рдмрд╛рд╣рд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ... 3.0 рдмрд╛рд╣рд░ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдгред

OS.execute рдХреЛ posix_spawn рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдирд┐рдпрдВрддреНрд░рдг рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ "рдорд╛рд░реНрдЬрд┐рди" рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ "рдСрдлрд╝рд╕реЗрдЯ" рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рдорд╛рд░реНрдЬрд┐рди рджрд╛рдИрдВ рдУрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИ, рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЛ рдЧреБрдорд░рд╛рд╣ рдХрд░рддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рд╕реНрдЯрд╛рдЗрд▓рдмреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп

@ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдСрдлрд╕реЗрдЯ рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдорд╛рд░реНрдЬрд┐рди рд╕рд╣реА рд╢рдмреНрдж рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реА рдмрд╛рд░ рдкреЗрд╢ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рд╡реЗ рджрд╛рдИрдВ рдУрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЙрдиреНрдореБрдЦ рдирд╣реАрдВ рдереЗ

@ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдСрдлрд╕реЗрдЯ рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдорд╛рд░реНрдЬрд┐рди рдПрдХ рдЕрдЪреНрдЫрд╛ рд╢рдмреНрдж рдерд╛ (рдФрд░ рдкрд╣рд▓реА рдмрд╛рд░ рдкреЗрд╢ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдирд╣реАрдВ рдерд╛)

рдЦреИрд░, рдорд╛рд░реНрдЬрд┐рди рдЕрдм рднреНрд░рд╛рдордХ рд╣реИ рдХрд┐ рд╡реЗ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИрдВред рдСрдлрд╕реЗрдЯ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд┐рдпрдВрддреНрд░рдг рдиреЛрдбреНрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣реИред
рд╡реИрд╕реЗ рднреА рдореИрдВ рдмреЗрд╣рддрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдпрд╣рд╛рдВ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрдкрддреНрддрд┐ рдирд╛рдо рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рд╕реБрдЭрд╛рд╡ рдкрд╣рд▓реЗ рд╣реА рджрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВред

рдмрдХреНрд╕реЛрдВ/рдХреНрдпреВрдмреНрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдирд╛рдо рдЕрд╕рдВрдЧрдд рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдЯрдХрд░рд╛рд╡ рдХреЗ рд▓рд┐рдП BoxShape рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдХреНрдпреВрдмрдореЗрд╢ рдХреЗ рдкрд╛рд╕ x, y рдФрд░ z рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдХрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЖрдзреЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИрдВред
CSGBox рдореЗрдВ рдЪреМрдбрд╝рд╛рдИ, рдКрдВрдЪрд╛рдИ рдФрд░ рдЧрд╣рд░рд╛рдИ рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреНрдпреВрдмрдореЗрд╢ рдореЗрдВ x, y рдФрд░ z рдЖрдХрд╛рд░ рдХреА рддрд░рд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдХрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрднреА-рдХрднреА "рдХреНрдпреВрдм" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрднреА-рдХрднреА "рдмреЙрдХреНрд╕" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП "рдмреЙрдХреНрд╕" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреНрдпреВрдмрдореЗрд╢ рдХреЗ рд▓рд┐рдП x, y рдФрд░ z рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рдПрдХ рдмреЙрдХреНрд╕ рднреА рд╣реИред

рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдФрд░ рдпреВрдбрдмреНрд▓реНрдпреВрдкреА рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдУрдПрд╕ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо (рдкреНрд▓реЗрдЯрдлреЙрд░реНрдорд╡рд┐рдВрдбреЛ, рдкреНрд▓реЗрдЯрдлреЙрд░реНрдордпреВрдирд┐рдХреНрд╕,...) рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВред
рдУрдПрд╕/рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕реНрдкреНрд▓рд┐рдЯ рдХреЗ рд╕рд╛рде рднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдЗрд╕ #20228 рд╕реЗ, Label.clip_text рдЕрдм рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ Button.clip_text рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред

Camera2D рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧреБрдг рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдирд╛рдо offset (рдирд┐рдпрдорд┐рдд рдСрдлрд╕реЗрдЯ рдФрд░ рдПрдХ V рдФрд░ H рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ) рдЬреЛ рджреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реИрдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рддрд░реАрдХреЛрдВ

- Dictionary : erase_checked рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╣ рд╡рд┐рдзрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рдирд╣реАрдВ рд╣реИ)ред
- Dictionary : erase рдХреЛ bool рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реА рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВ ( erase_checked рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреЗрдЦреЗрдВ)ред

20945

@neikeq рдпрд╣ рдЕрдм IMO рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, Dictionary.erase рдХреЗ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдХреЛ void рд╕реЗ рдмрджрд▓рдХрд░ bool рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред

@ akien-mga рд▓реЗрдХрд┐рди рдпрд╣ GDNative API рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛, рд╣реИ рдирд╛?

@ akien-mga рдХреНрдпрд╛ рд╡рд╣ рдЖрдЧреЗ рдХреА рд╕рдВрдЧрддрддрд╛ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝реЗрдЧрд╛? рдХреНрдпрд╛ рд╣рдореЗрдВ рдРрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ 3.1 рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдЬреИрд╕реЗ 3.0 рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ?

@neikeq рд╣рд╛рдВ, 3.1 рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 3.0 рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИрдВ ( class_name , рдирдП рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдпрд╛ рдмреНрд░рд╛рдВрдб рдирдИ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ/рд╡рд┐рдзрд┐рдпреЛрдВ, рдирдИ рдХрдХреНрд╖рд╛рдУрдВ, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдХрдИ рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди)ред рд╣рдо рдХреЗрд╡рд▓ рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддреЗ рд╣реИрдВ, рдЖрдЧреЗ рдирд╣реАрдВред

рдУрд╣ рдореИрдВ рд╕рдордЭрд╛! рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдореИрдВ рдЕрднреА рд╡реЗ рдмрджрд▓рд╛рд╡ рдХрд░реВрдВрдЧрд╛ред

рдЕрдЧрд░ рдореИрдВ рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ, рддреЛ рд▓рд╛рдЗрдирдПрдбрд┐рдЯ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯрдПрдбрд┐рдЯ рдирд┐рдпрдВрддреНрд░рдг рдиреЛрдбреНрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд▓рдЧрд╛рддрд╛рд░ рдПрдкреАрдЖрдИ рд░рдЦрдиреЗ рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрдВрдЧреЗ рддрд╛рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ (рдЬреНрдпрд╛рджрд╛рддрд░) рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЕрднреА рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдПрдХ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ, рдЙрд╕ рдмрд┐рдВрджреБ рддрдХ рдЬрд╣рд╛рдВ рдПрдХ рдиреЛрдб рдХреЛ рджреЗрдЦрдХрд░ рдореИрдВ рджреВрд╕рд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреНрд░рдорд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реВрдВред

@ eska014 рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, scons рд╡рд┐рдХрд▓реНрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА platform ред рд╕реБрд╕рдВрдЧрдд рд╣реЛрдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ display/window/size/test_width рдФрд░ test_height рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ window_width рдФрд░ window_height рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдореЗрдВ width рдФрд░ height рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╢рд╛рдпрдж render_width рдФрд░ render_height ред

рдХреИрдорд░реЗ рдХреЗ рдирд┐рдХрдЯ рдФрд░ рджреВрд░ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рдирд╛рдо рдЙрд╕рдХреЗ рд╕реЗрдЯрд░реНрд╕/рдЧреЗрдЯрд░реНрд╕ (рдЬреИрд╕реЗ set_znear/set_zfar) рд╕реЗ рднрд┐рдиреНрди рд╣реИрдВред рдЗрд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

znear рдФрд░ zfar рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ Z рдЕрдХреНрд╖ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ clip_near рдФрд░ clip_far рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХреНрд▓рд┐рдкрд┐рдВрдЧ рд╡рд┐рдорд╛рдиреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдХреЗрд╡рд▓ near рдФрд░ far ред

рд╣рд╛рдБ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред

рд╣рдореЗрдВ рдмрд╛рдЗрдирд░реА рд╕рдВрд╕рд╛рдзрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ (рдпрд╛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдЪрд░реНрдЪрд╛) рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП .. (RES_BASE_EXTENSION)

gdscript_function.cpp рдФрд░ gdscript_functions.cpp рдмрд╣реБрдд рд╕рдорд╛рди рдирд╛рдо рд╣реИрдВ, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдорд┐рд▓рд╛рддрд╛ рд░рд╣рддрд╛ рд╣реВрдВред рдирд╛рдо рдмрджрд▓рдиреЗ рд▓рд╛рдпрдХ? @vnen

рдореИрдВрдиреЗ "рджрд╢рдорд▓рд╡" рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ "step_decimals" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/godotengine/godot/pull/21425 рдмрджрд▓ рджрд┐рдпрд╛ рд▓реЗрдХрд┐рди "рджрд╢рдорд▓рд╡" рдХреЛ рдЙрдкрдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦреЗрдВред рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЕрдЧрд▓реЗ рд╕рдВрдЧрддрддрд╛ рдЯреВрдЯрдиреЗ рдореЗрдВ "рджрд╢рдорд▓рд╡" рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдмрд╕ рдирд╛рдо рдмрджрд▓ рджреЗрдВред

@mysticfall рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рд╡рд┐рдзрд┐ рдирд╛рдореЛрдВ рдореЗрдВ "рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ" рд╢рдмреНрдж рдирд╣реАрдВ рд╣реЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рдХрднреА-рдХрднреА рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ, рд▓реЗрдХрд┐рди рдкрд╣реБрдВрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗред рд╕реА # рдореЗрдВ, рдЧреБрдг рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдФрд░ рдЕрд╕рд╛рдЗрди рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдПрдХ рдлрд╝реАрд▓реНрдб рдерд╛, рдЬреЛ рдЕрдЪреНрдЫрд╛ рд╣реИред

 var thing = CollisionObject.ShapeOwner;
 CollisionObject.ShapeOwner = thing;

рд╣рд╛рд▓рд╛рдБрдХрд┐, GDScript рдореЗрдВ, рдЧреБрдг рдХреЛрдИ рдЪреАрдЬрд╝ рдирд╣реАрдВ рд╣реИрдВ (?) рд╢рдмреНрдж рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдмрд┐рдирд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдзрд┐ рдирд╛рдо рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдзрд┐рдпрд╛рдВ рдХреБрдЫ рд▓реМрдЯрд╛рддреА рд╣реИрдВ рдЗрд╕рд▓рд┐рдП -рдиреЗрд╕ рд╣реЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ: рдЪреВрдВрдХрд┐ рдЬреАрдбреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЧреБрдг рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдореБрдЭреЗ setget рд╕рд╛рде рдЬреАрдбреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрджрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдорд┐рд▓рд╛ рд▓реЗрдХрд┐рди рд╕реА ++ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЕрд╕рдВрдЧрдд рд╕реНрдерд╛рдиреЛрдВ рдкрд░ "рдкреНрд░рд╛рдкреНрдд" рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдЖрджрд░реНрд╢ рд╕рдорд╛рдзрд╛рди рдЗрд╕ рд╕рдордп GDScript рдЧреБрдгреЛрдВ рдпрд╛ рд╣рдо "рдкреНрд░рд╛рдкреНрдд" рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ "рд╕реЗрдЯ" рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред .

@aaronfranke GDScript рдореЗрдВ рдПрдХ рддрд░рд╣ рд╕реЗ рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдЬрди рд╡рд░реНрдЧ рдПрдХ рдЧреЗрдЯрд░ рдФрд░ рд╕реЗрдЯрд░ (рдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЧреЗрдЯрд░) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ GDScript рдХреЛ рдЧреБрдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдореИрдВ рддрд░реАрдХреЛрдВ рд╕реЗ get рдФрд░ set рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ 1) рдпрд╣ рдирд╛рдо рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ 2) рдпрд╣ рдЧреЗрдЯрд░ рдФрд░ рд╕реЗрдЯрд░ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Mesh.SurfaceFormat() рдПрдХ рд╡рд┐рдзрд┐ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ "рд╕рддрд╣ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддрд╛ рд╣реИ", рди рдХрд┐ "рдкреНрд░рд╛рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ"ред рд╕рд╛рде рд╣реА, рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ (рдпрджрд┐ рд╕рднреА рдирд╣реАрдВ) рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЧреБрдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдм, рдореБрдЭреЗ gdscript_function.cpp рдФрд░ gdscript_functions.cpp рдЗрддрдиреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИред рдПрдХ рдореЗрдВ GDScriptFunction рдХреНрд▓рд╛рд╕ рд╣реИ, рджреВрд╕рд░реЗ рдореЗрдВ GDScript рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдпрд╣ рднреА рдПрдХ рддреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдпрд╣рд╛рдВ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╣рд╛рдБ, GDScript рдореЗрдВ рдЧреБрдг рд╣реИрдВред C# рдЧреБрдг ClassDB рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рд╕реЗ GDScript рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

RigidBody рдФрд░ рдЗрд╕рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

  • RigidBody.add_force(force, position) рд╕реЗ add_force(position, force)
  • PhysicsDirectBodyState.add_force(force, position) рд╕реЗ add_force(position, force)
  • PhysicsServer.body_add_force(force, position) рд╕реЗ add_force(position, force)

рдХрдХреНрд╖рд╛ рдФрд░ рд╡рд┐рдзрд┐ рд╕реВрдЪреА

@TGRCdev рдореИрдВ add_force рдХреЛ (рд╕реНрдерд┐рддрд┐, рдмрд▓) рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп apply_impulse (рдмрд▓, рд╕реНрдерд┐рддрд┐) рдореЗрдВ рдмрджрд▓рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдмрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрдВрдд рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╕рднреА рдмрд▓реЛрдВ рдФрд░ рдЖрд╡реЗрдЧреЛрдВ рдореЗрдВ рдПрдХ рдмрд▓ рд╡реЗрдХреНрдЯрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@aaronfranke рдлреЗрдпрд░ рдкреЙрдЗрдВрдЯред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрд╡рд╢реНрдпрдХ рд╕реНрд╡реИрдк рдХреА рд╕реВрдЪреА рд╣реИ:

  • RigidBody.apply_impulse(position, impulse) рд╕реЗ apply_impulse(impulse, position)
  • RigidBody2D.add_force(position, force) рд╕реЗ add_force(force, position)
  • RigidBody2D.apply_impulse(position, impulse) рд╕реЗ apply_impulse(impulse, position)
  • PhysicsDirectBodyState.apply_impulse(position, impulse) рд╕реЗ apply_impulse(impulse, position)
  • Physics2DDirectBodyState.add_force(position, force) рд╕реЗ add_force(force, position)
  • Physics2DDirectBodyState.apply_impulse(position, impulse) рд╕реЗ apply_impulse(impulse, position)
  • PhysicsServer.body_apply_impulse(position, impulse) рд╕реЗ body_apply_impulse(impulse, position)
  • Physics2DServer.body_add_force(position, force) рд╕реЗ body_add_force(force, position)
  • Physics2DServer.body_apply_impulse(position, impulse) рд╕реЗ body_apply_impulse(impulse, position)

@aaronfranke рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ Get- рдпрд╛ Set- рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ 'рдЬрд╛рд╡рд╛рд╡рд╛рдж' рдХреА рддрд░рд╣ рд╣реИ рдЬрд┐рд╕реЗ рд╕реА # рдореЗрдВ рдЯрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рдореЗрд░реА рдореБрдЦреНрдп рдЪрд┐рдВрддрд╛ shape_owner_get_shape рдпрд╛ node_get_input_count рдЬреИрд╕реЗ рдорд╛рдорд▓реЗ рдореЗрдВ 'рдбреЛрдореЗрди рдЙрдкрд╕рд░реНрдЧ' рдХрд╛ рдЙрдкрдпреЛрдЧ рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ Get- рдпрд╛ Set- рдмрд┐рдирд╛ рдЙрдЪрд┐рдд C# рдЧреБрдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрди: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдПрдХ рддрд░рдл рдзреНрдпрд╛рди рджреЗрдВ, рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдпрд╣ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рдЧреЛрдбреЛрдЯ рдХреЗ рд╕реА # рдПрдкреАрдЖрдИ рдореЗрдВ рдЧреБрдгреЛрдВ рдореЗрдВ рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░реНрд╕ рдХрд╛ рдорд┐рд▓рд╛рди рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Node.Name рдФрд░ Node.GetName() / Node.SetName() ред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдмреЗрдорд╛рдиреА рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо рдРрд╕рд╛ рд╕рдореНрдореЗрд▓рди рдХреНрдпреЛрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ NodeInputCount рдФрд░ GetNodeInputCount() / SetNodeInputCount() рджреЛрдиреЛрдВ рдорд┐рд▓реЗрдВрдЧреЗ, рдЕрдЧрд░ рд╣рдо рд╣реИрдВ рд╕реБрдЭрд╛рд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ node_get_input_count рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред

рджреЛрд╕реНрддреЛрдВ, рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд╣рд░ рд╕реА # рдПрдкреАрдЖрдИ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╕рдореНрдореЗрд▓рдиреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ, рдЬреЛ рдЧреЛрдбреЛрдЯ рдПрдкреАрдЖрдИ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред рдЧреЛрдбреЛрдЯ рдПрдкреАрдЖрдИ (рд╕реА ++, рд╕реА рдФрд░ рдЬреАрдбреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдХреЛ рд╕реА # рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рд╕реБрдзрд╛рд░ рди рд╣реЛред

@ akien-mga рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕реА # рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд╛рдд рд╣реИ рдЬреЛ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реА рд╣реИ рдХрд┐ node_get_input_count рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ get_node_input_count ред

рдирд╣реАрдВ, рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдХреБрдЫ рднреА рд╕реА # рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд╕реА # -рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЧрддрддрд╛ рдЯреВрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдЖрдИрдЖрдИрдПрдирдПрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИрдВ)ред

рд╕реНрдерд╛рдирд┐рдХ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ Node3D рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдпрд╣ рдЕрдЬреАрдм рд▓рдЧрд╛ред

@KoBeWi рдЧреЛрдбреЛрдЯ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд╛рдордХрд░рдг рдпреЛрдЬрдирд╛ 2D рд╕рд╛рдорд╛рди рдХреЗ рд▓рд┐рдП "Thing2D" рд╣реИ рдФрд░ 3D рд╕рд╛рдорд╛рди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ "рдерд┐рдВрдЧ" рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╛рдХреА 2D рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рд╕рдВрдЧрдд рд╣реИред рдмреЗрд╢рдХ "2D" рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рдж "рд╕реНрдерд╛рдирд┐рдХ" рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд░реНрдХрд┐рдХ рдмрд╛рдд "рдиреЛрдб" рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рд╡рд╣ рдирд╛рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЧреЛрдбреЛрдЯ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЬрд┐рд╕ рдирд╛рдордХрд░рдг рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ 2рдбреА рд╕рд╛рдорд╛рди рдХреЗ рд▓рд┐рдП "рдерд┐рдВрдЧ2рдбреА" рд╣реИ рдФрд░ 3рдбреА рд╕рд╛рдорд╛рди рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл "рдерд┐рдВрдЧ" рд╣реИред

рддреЛ рд╢рд╛рдпрдж рд╕рдм рдХреБрдЫ 3D рдХреЛ "Thing3D" рдореЗрдВ рдмрджрд▓ рджреЗрдВ? рдЗрд╕рдиреЗ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдХреЛ рднреА рдкрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдУрд╡рд░рдХрд┐рд▓ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред
рд╡реИрд╕реЗ рднреА, рдореИрдВрдиреЗ рдЕрднреА рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд╕рд╛рде рд╣реА, Spatial2D, Spatial рд╕реЗ рднреА рдмрджрддрд░ рд╣реИред

рддреЛ, String.right() рджрд┐рдП рдЧрдП рд╕реНрдерд╛рди рд╕реЗ n рд╕рд╣реА рд╡рд░реНрдг рджреЗрддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЕрдзрд┐рдХ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рдХреЗрд╡рд▓ n рд╡рд░реНрдгреЛрдВ рдХреЛ рджрд╛рдИрдВ рдУрд░ рд╕реЗ рдЧрд┐рдирддрд╛ рд╣реИ?

"abcdef".right(2)
"cdef" рдХреЗ рдмрдЬрд╛рдп "ef" рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рдЖрдИрдПрдордУ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рднреА рдпрд╣реА рдЙрдореНрдореАрдж рдереАред

рдкрд╛рдпрдерди рдХреА рд╡рд╣реА рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреАрдбреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддреБрд▓рдирд╛ рдкрд╛рдпрдерди рд╕реЗ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдореЗрдВ рдФрд░ рднреА рднреНрд░рдорд┐рдд рдХрд░реЗрдЧрд╛ред

@KoBeWi рдореИрдВ рд╕рд╣рдордд рд╣реВрдБред рдореБрдЭреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред

рдЧреЛрдбреЛрдЯ substr рдЖрдкрдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рджрд╛рдИрдВ рдУрд░ рд╕рдм рдХреБрдЫ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

@Zylann рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕реЗ рдЧреЛрдбреЛрдЯ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдПрдХ рдореБрджреНрджрд╛ рдорд╛рдиреВрдВрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░реЗ рдкрд╛рд╕ substr рдПрдХ рдЕрд▓рдЧ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рдирд╛ рд╣реИред

@Zylann @neikeq рдпрд╣ рдЧреИрд░-рдЕрдзрд┐рднрд╛рд░рд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдкрд░рд┐рдгрд╛рдо рд╣реИ, рд▓рдВрдмрд╛рдИ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдФрд░ рд▓рдВрдмрд╛рдИ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рджреЛрдиреЛрдВ рд╣реЛрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

@aaronfranke рдЙрдо, рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХ рдореМрдЬреВрдж рд╣реИрдВред 0 рдпрд╛ -1 рдХреЛ рдХреЛрдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдВрдмрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдЧрд┐рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

get_selected_id() рдХреЛ OptionButton рд╕реЗ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рд╣рдореЗрд╢рд╛ -1 рд▓реМрдЯрд╛рддрд╛ рд╣реИред https://github.com/godotengine/godot/pull/21837 рд╡рд┐рд▓рдп рдХреЗ рдмрд╛рдж get_selected_id() get_selected() рдХреЗ рд╕рдорд╛рди рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред

рдРрд╕реА рдХрдИ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рд╣рд░ рдмрд╛рд░ рд╕рдЪ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд╢рд╛рдпрдж рд╢реВрдиреНрдп рдмрдирд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

WindowDialog.get_close_button ()
рдХрдиреНрдлрд░реНрдореЗрд╢рдирдбрд╛рдпрд▓реЙрдЧ.рдЧреЗрдЯ_рдХреИрдВрд╕рд▓ () -> рдХрдиреНрдлрд░реНрдореЗрд╢рдирдбрд╛рдпрд▓реЙрдЧ.рдЧреЗрдЯ_рдХреИрдВрд╕рд▓_рдмрдЯрди ()
AcceptDialog.get_ok () -> AcceptDialog.get_ok_button ()

рдЯреНрд░реА рдиреЛрдб рдореЗрдВ get_selected() рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдлрд╝реЛрдХрд╕ рдХрд┐рдП рдЧрдП TreeItem рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ get_active() рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдлрд╝реЛрдХрд╕ рдФрд░ рдЪрдпрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬрд╝реЗрдВ рд╣реИрдВред

рдЗрдирдкреБрдЯ рдореИрдк рдореЗрдВ load_from_globals() рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП load_from_project_settings() ред

рдореИрдВ рдПрдХ рдЬреЛрдбрд╝реВрдВрдЧрд╛: рдЯрд╛рдбрд╛: рд╕рднреА рд╕реБрдЭрд╛рд╡реЛрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬреЛ рдУрдкреА рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдПрдХ рдмреЗрд╣рддрд░ рдЕрд╡рд▓реЛрдХрди рдХреЗ рд▓рд┐рдПред

рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд▓рд┐рдП global_rotate рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ rotate_global рдФрд░ rotate_object_local рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ rotate_local рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рддрд╛рдХрд┐ рд╕рднреА рдШреБрдорд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ "рд░реЛрдЯреЗрдЯ" рд╕реЗ рд╢реБрд░реВ рд╣реЛрдВред

рдЧреНрд▓реЛрдмрд▓_рд░реЛрдЯреЗрдЯ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рд░реЛрдЯреЗрдЯ_рдЧреНрд▓реЛрдмрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд░реЛрдЯреЗрдЯ_рдСрдмреНрдЬреЗрдХреНрдЯ_рд▓реЛрдХрд▓ рдХреЛ рдХрдВрд╕рд┐рд╕реНрдЯреЗрдВрд╕реА рдХреЗ рд▓рд┐рдП рд░реЛрдЯреЗрдЯ_рд▓реЛрдХрд▓ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рддрд╛рдХрд┐ рд╕рднреА рд░реЛрдЯреЗрдЯ рддрд░реАрдХреЗ "рд░реЛрдЯреЗрдЯ" рд╕реЗ рд╢реБрд░реВ рд╣реЛрдВред

рдареАрдХ рд╣реИ, рджреВрд╕рд░реА рдУрд░ рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ-рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди (рдЬреИрд╕реЗ Global_position, Global_scale рдФрд░ Global_transform) рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕реБрдЭрд╛рд╡реЛрдВ рдореЗрдВ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╣реИрдВред рджреЛрдиреЛрдВ рд╕рдорд╛рдзрд╛рди IMHO рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ tree_exiting рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ tree_exited рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдм рддрдХ рдХреБрдЫ рднреНрд░рдо рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред #22840 рджреЗрдЦреЗрдВред

@groud рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ tree_exited рд╕рд┐рдЧреНрдирд▓ рд╣реИ рдирд╛?

@groud рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ tree_exited рд╕рд┐рдЧреНрдирд▓ рд╣реИ?

рдзрд┐рдХреНрдХрд╛рд░ рд╣реИ рддреБрдо рд╕рд╣реА рд╣реЛред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ #22840 рдореЗрдВ рдЕрдиреБрд░реЛрдз рддрдм рдорд╛рдиреНрдп рд╣реИ

MenuItems.MENU_MAX рдХрд╛ рдЙрдкрдпреЛрдЧ LineEdit рдФрд░ TextEdit рдореЗрдВ рдХрднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП?

Tabs.ALIGN_MAX рд▓рд┐рдП рд╕рдорд╛рди https://github.com/godotengine/godot/blob/master/scene/gui/tabs.cpp#L750

Position3D рдФрд░ Position2D рдиреЛрдбреНрд╕ рдереЛрдбрд╝реЗ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИрдВред рд╡рд┐рд╡рд░рдг рдХреЛ рдкрдврд╝реЗ рдмрд┐рдирд╛, рдХреЛрдИ рдпрд╣ рдорд╛рди рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ Spatial рдФрд░ Node2D рдХреА рддрд░рд╣ рд╣реИрдВ рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ рд░реЛрдЯреЗрд╢рди рдпрд╛ рд╕реНрдХреЗрд▓ рдХреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рд╢рд╛рдпрдж PositionHint рдФрд░ PositionHint2D рдпрд╛ рд╢рд╛рдпрдж рдХреБрдЫ рдЕрдиреНрдп рд╢рдмреНрдж рдЬреИрд╕реЗ Gizmo рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╕рдВрдкрд╛рджрдХ рдпрд╛ AxisMarker рдореЗрдВ рдПрдХ gizmo рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдереЛрдбрд╝рд╛ рдЕрдХреНрд╖ рдорд╛рд░реНрдХрд░ред

рдпрджрд┐ рдЙрдирдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ Gizmo рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рддреЛ рд╢рд╛рдпрдж рдЙрдиреНрд╣реЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рджрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рдереЗред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрдВрдЯреНрд░реЛрд▓ рдЯреНрд░реА рдореЗрдВ рд╕рдорд╛рди рдиреЛрдб ReferenceRect , рдЗрд╕рд▓рд┐рдП, ReferenceAxis/2D рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЕрднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкрд╕рдВрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдмрд╛рдж рдореЗрдВ рдЗрд╕рд╕реЗ рдирдлрд░рдд рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрдм рдЯреВрдЯрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рд┐рдЯ рд╣реЛ;)

рд╡рд┐рдирдореНрд░ Array рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рд╕реНрддрд╛рд╡:

  • duplicate тЖТ рдпрд╛ рддреЛ copy рдпрд╛ clone ред рдореИрдВ рдРрд╕реА рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдЬреЛ рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ "рдбреБрдкреНрд▓рд┐рдХреЗрдЯрд┐рдВрдЧ" рдХрд╣рддреА рд╣реЛред copy рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕реЗ рдкрд╛рдпрдерди рдФрд░ рд╕реА ++ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЧреЛрдбреЛрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ред clone рдЬрд╛рд╡рд╛ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╣реИ рдФрд░ рд╢рд╛рдпрдж рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реИред
  • invert тЖТ reverse ред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЗрд╕реЗ "рд░рд┐рд╡рд░реНрд╕" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд╡рд░реНрдгрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдмрд╣рд╛рдирд╛ рдирд╣реАрдВ рд╣реИред
  • remove рдмрдирд╛рдо erase рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рд╕реБрдЭрд╛рд╡: remove_at рдФрд░ remove_value ред

рдЕрдВрддрд┐рдо рджреЛ рд╕рднреА Pool*Array рдХрдХреНрд╖рд╛рдУрдВ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред

рдиреЛрдЯ: рдбреБрдкреНрд▓реАрдХреЗрдЯ тЖТ рдХреЙрдкреА/рдХреНрд▓реЛрди рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

Rect2 :

  • clip тЖТ intersection

AABB рдореЗрдВ intersection рд╡рд┐рдзрд┐ рд╣реИ рд▓реЗрдХрд┐рди clip , рдЖрдорддреМрд░ рдкрд░ рдХреНрд▓рд┐рдкрд┐рдВрдЧ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдХреБрдЫ рдХрд╛рдЯ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ:

Returns the intersection of this Rect2 and b.

рдирд╛рдо рднреА рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:

  • intersects тЖТ overlaps
    рд╡рд╛рд╕реНрддрд╡рд┐рдХ intersection рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП:
Returns true if the Rect2 overlaps with another.

grabber_area -> slider_progress
slider -> slider_background

image

рд╡рд┐рдирдореНрд░ рдРрд░реЗ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рд╕реНрддрд╛рд╡:
рдбреБрдкреНрд▓рд┐рдХреЗрдЯ тЖТ рдпрд╛ рддреЛ рдХреЙрдкреА рдпрд╛ рдХреНрд▓реЛрдиред
...
рдиреЛрдЯ: рдбреБрдкреНрд▓реАрдХреЗрдЯ тЖТ рдХреЙрдкреА/рдХреНрд▓реЛрди рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рдФрд░ рдиреЛрдбреНрд╕ рдФрд░ рд╕рдВрд╕рд╛рдзрди (рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдЙрдЬрд╛рдЧрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╡рд╕реНрддреБ, afaik)ред

рдореИрдВ "рдХреНрд▓реЛрди" рд╢рдмреНрдж рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИред

рд╕реБрдмрд╣! @ akien-mga рд╣рдо рдирд╛рдо рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ instance рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП new рдХреЗ рдмрдЬрд╛рдп instantiate ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП PackedScene рдкрд░ Object s рдХреЗ рд╕рдорд╛рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛрдиреЗ рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд▓рдЧрдЗрди рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рдЖрдо рддреМрд░ рдкрд░ред @willnationsdev рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ? рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдерд╛ред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрджрд┐ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╣реАрдВ рдмрд╛рдд рд╣реЛ рд░рд╣реА рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рд╕реНрдХрд┐рдо рдХрд░рдХреЗ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрд╛ред

grabber_area -> slider_progress
slider -> slider_background

image

рдпрд╛ рдХреЗрд╡рд▓:
grabber_area -> progress
slider -> background ?

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рд╣реБрдИ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди AnimationPlayer рдореЗрдВ root_node рд╕рд╛рде set_root рдФрд░ get_root , рд╡реЗ рд╢рд╛рдпрдж set/get_root_node

CanvasItem.visible рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ CanvasItem.is_visible (рдФрд░ рдЕрдиреНрдп рд╕рднреА рд╕реНрдерд╛рди рдЬрд╣рд╛рдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)? рд╕рднреА рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП (рдпрд╛ рдЕрдзрд┐рдХрддрд░, рд╢рд╛рдпрдж рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖрдпрд╛) bool рдЧреБрдг?

Tween.tween_completed рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ Tween.tween_finished ? Animation.animation_finished ? рдЖрдо рддреМрд░ рдкрд░ _finished рд╕реЗ рдЕрдзрд┐рдХ _completed ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ started/finished рдХрд╛ started/completed рд╕реЗ рдЕрдзрд┐рдХ рдХрдбрд╝рд╛ рд╕рдВрдмрдВрдз рд╣реИ - рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рдЦреЗрд▓ рд╕реЗ рдкрдХреНрд╖рдкрд╛рддреА: start/finish - рд╢рд╛рдпрдж: рдбреА

рдХреГрдкрдпрд╛ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ JavaScript рд╕реЗ HTML5 рдпрд╛ рдХреБрдЫ рдФрд░ред
рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХрд▓ рд╡рд┐рдзрд┐ рд╣реИ рдФрд░ рдпрд╣ Script рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

JavaScript рдХрд╛ рдЙрдкрдпреЛрдЧ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╡рд░реНрдЧ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ @clayjohn рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, WORLD_MATRIX рдХреИрдирд╡рд╛рд╕ рдЗрдЯреИрдо рд╢реЗрдбрд░реНрд╕ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдореЙрдбрд▓рд╡реНрдпреВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИред @reduz рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реИ рдХрд┐ 4.0 рдореЗрдВ рд╣рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореЙрдбрд▓ рд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ CANVAS_MATRIX рдФрд░ ITEM_MATRIX ред

рдирд╛рдо рдмрджрд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ Array.invert рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Array.reverse ред рдЙрд▓рдЯрд╛ рдЕрдзрд┐рдХ рдЙрд▓реНрдЯрд╛ рдпрд╛ "рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ" рдкреНрд░рдХрд╛рд░ рдХреА рдЪреАрдЬ рдХреА рддрд░рд╣ рд╣реИред рджреЗрдЦреЗрдВ https://docs.godotengine.org/en/latest/classes/class_color.html#class -color-method-inverted

CanvasItem.visibility_changed() рд╕рд┐рдЧреНрдирд▓ рдХреЛ CanvasItem.visibility_changed(visibility: bool) рдмрджрд▓реЗрдВ, рдпрд╛рдиреАред рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд┐рдЬрд┐рдмрд┐рд▓рд┐рдЯреА рд╕реНрдЯреЗрдЯрд╕ рднреЗрдЬреЗрдВред рдЪреВрдВрдХрд┐ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ рддреЛ CanvasItem.hide() рд╕рд┐рдЧреНрдирд▓ рд╣рдЯрд╛ рджреЗрдВ

Resource::notify_change_to_owners , Resource::{un}register_owner рдирд┐рдХрд╛рд▓реЗрдВред
рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ GridMap рдФрд░ CollisionShape рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╢реЗрд╖ рдХреЛрдб "changed" рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

Rect2 : has_no_area рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ has_area рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕рд╢рд░реНрдд рдореЗрдВ рд╡рд┐рдкрд░реАрдд рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджреЛрд╣рд░реЗ рдирд┐рд╖реЗрдз рддрд░реНрдХ рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛ред рд╡рд╣реА AABB : has_no_surface рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

@lupoDharkael рдиреЗ рдЬреЛ рдХрд╣рд╛, рдЙрд╕рдХреЗ

parse_input_event (рдЗрдирдкреБрдЯ рдЗрд╡реЗрдВрдЯ)
рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдирдкреБрдЯрдЗрд╡реЗрдВрдЯ рдлрд╝реАрдб рдХрд░рддрд╛ рд╣реИред рдХреЛрдб рд╕реЗ рдЗрдирдкреБрдЯ рдИрд╡реЗрдВрдЯ рдХреЛ рдХреГрддреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрд╛рд░реНрд╕ рднреНрд░рд╛рдордХ рд╣реИ, рдкрд╛рд░реНрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рд╡рд┐рд╡рд░рдг рдПрдХ рдЗрдирдкреБрдЯ рднреЗрдЬрдиреЗ рдпрд╛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ

#24153 рдХреЗ рдЕрдиреБрд╕рд╛рд░ - CanvasLayer рдкрд░рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдкрд░рдд рдкрд░ рдЗрд╕рдХреЗ рдиреЛрдбреНрд╕ рдХреЛ рдЦреАрдВрдЪрдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рд▓рдЧрднрдЧ рд╣рд░ рджреВрд╕рд░рд╛ 2D рдиреЛрдб рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "Z рдЗрдВрдбреЗрдХреНрд╕" ( z_index ) рд╢рдмреНрджрд╛рд╡рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдкрд╣рд▓реЗ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ)ред рдЬреИрд╕рд╛ рдХрд┐ @swarnimarun рдиреЗ https://github.com/godotengine/godot/issues/24153#issuecomment -444950584 рдкрд░рддреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ред

рдХреНрдпрд╛ OS.has_feature() / Platform.has_feature() ProjectSettings рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЭрджрд╛рд░ рд╣реЛрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ OS рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрддрд╛рддреЗ рд╣реИрдВ?

рдЧреНрд░рд┐рдбрдореИрдк рдХреЛ рдЯрд╛рдЗрд▓рдореИрдк рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП set_cell_item рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ set_cell рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдЧреНрд░рд┐рдбрдореИрдк рдХреЛ рдЯрд╛рдЗрд▓рдореИрдк рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП set_cell_item рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ set_cell рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдУ, рд╢рд╛рдпрдж рдЧреНрд░рд┐рдбрдореИрдкреНрд╕ рдХреЗ рд▓рд┐рдП рднреА set_cellv рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдПрдЖрд░рд╡реАрдЖрд░рдЗрдВрдЯрд░рдлрд╝реЗрд╕:

  • ar_is_anchor_detection_enabled -> anchor_detection рдпрд╛ рд╕рдорд╛рди
  • interface_is_initialized -> is_initialized рдпрд╛ is_interface_initialized

рдПрдирд┐рдореЗрд╢рди рдкреНрд▓реЗрдпрд░:

  • play_backwards рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ play рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмреВрд▓ рд╣реИред

рдмреЗрд╕рдмрдЯрди / рдЯрдХрд░рд╛рд╡ рдЖрдХрд╛рд░ / рдЯрдХрд░рд╛рд╡ рдмрд╣реБрднреБрдЬ / рдЯрдХреНрдХрд░ рдЖрдХрд╛рд░ 2 рдбреА / рдЯрдХрд░рд╛рд╡ рдкреЙрд▓реАрдЧреЙрди 2 рдбреА:

  • disabled рдмреВрд▓ рдХреЛ enabled рдмреВрд▓ рдореЗрдВ рдмрджрд▓реЗрдВред

рдмреЛрди2рдбреА:

  • get_index_in_skeleton -> get_skeleton_index
  • play_backwards рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ play рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмреВрд▓ рд╣реИред

рдпрд╣ рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдмреБрд░рд╛ рд╣реЛрдЧрд╛, рдХрдо рд╕реЗ рдХрдо рдЬрдм рддрдХ #6866 рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реА # рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд╛рдорд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

id_pressed( int ID ) рдФрд░ id_focused( int ID ) рдореЗрдВ рдЖрдИрдбреА рд▓реЛрдЕрд░ рдХреЗрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

^
рд╡рд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝реЗрдЧрд╛ред рдЗрд╕реЗ рд╢рд╛рдпрдж рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред

^
рд╡рд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝реЗрдЧрд╛ред рдЗрд╕реЗ рд╢рд╛рдпрдж рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред

рдпреЗ рд╕рд╣реА рд╣реИ!

28746 - Node.replace_by рдПрдХ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмреЗрд╣рддрд░ рдирд╛рдо рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@ рдмреЛрдЬрд┐рджрд╛рд░-рдмреАрдЬреА рд╢рд╛рдпрдж replace_self рдпрд╛ swap_by ? рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреЗ рднреНрд░рдо рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдПрдХ рд╣реА рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХрд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдЕрдЧрд░ рдореИрдВ рдПрдХ рд╣реИ Node2D рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд▓рдЧреНрди рд╣реИ рдХрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИ рдХреЗ рд╕рд╛рде class_name MyNode2D , get_class() рд╡рд┐рдзрд┐ рд░рд┐рдЯрд░реНрди Node2D рдХреЗ рдмрдЬрд╛рдп MyNode2D ред рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рднреНрд░рд╛рдордХ рдФрд░ рднреНрд░рд╛рдордХ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: https://github.com/godotengine/godot/issues/26980

@aaronfranke get_native_class() рд╢рд╛рдпрдж? рддрдм рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо get_script().global_name рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реИред

make_convex_from_brothers()
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рднрд╛рдЗрдпреЛрдВ" рдХреЛ "рднрд╛рдИ-рдмрд╣рди" рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╢рдмреНрдж рд╣рд░ рдЬрдЧрд╣ рд╕рд┐рдмрд▓рд┐рдВрдЧ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

ARVRPositionalTracker: get_type() -> get_tracker_type()

  • get_tracker_type() рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИ - get_type() рдХреЛ get_class() рд╕рд╛рде рднреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

  • GetType() рдкрд╣рд▓реЗ рд╕реЗ рд╣реА C# рдореЗрдВ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛

рдпрд╣ рдПрдХ TrackerType , рдФрд░ get_hand() рдЬреЛ TrackerHand , рддрд╛рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ get_tracker_hand() рднреА рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХреЗред

ARVRPositionalTracker enum TrackerHand: TRACKER_LEFT_HAND -> TRACKER_HAND_LEFT (рдФрд░ рджрд╛рд╣рд┐рдирд╛ рд╣рд╛рде)ред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, TRACKER_HAND_UNKNOWN -> TRACKER_UNKNOWN_HAND , рдЬрдм рддрдХ рдпрд╣ рд╕реБрд╕рдВрдЧрдд рд╣реИред

Node.NOTIFICATION_TRANSLATION_CHANGED рд╢рд╛рдпрдж рдмрди рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП NOTIFICATION_LOCALE_CHANGED , рдХреНрдпреЛрдВрдХрд┐ "рдЕрдиреБрд╡рд╛рдж" рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдерд╛рдирд┐рдХ рдиреЛрдбреНрд╕ рдореЗрдВ "рд╕реНрдерд┐рддрд┐" рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рди рдХрд┐ "рднрд╛рд╖рд╛" рдХреЗ рд▓рд┐рдПред

set_as_toplevel() рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ set_as_top_level() рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░

TouchScreenButton рдХреЛ 4.0 рдХреЗ рд▓рд┐рдП рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИ: https://github.com/godotengine/godot/issues/28814

CanvasItem рд╡рд┐рдзрд┐:

рдЖрд░рдЖрдИрдбреА get_canvas_item() const
рдЗрд╕ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП VisualServer рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреИрдирд╡рд╛рд╕ рдЖрдЗрдЯрдо RID рджреЗрддрд╛ рд╣реИред

рдлрд┐рд░ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ get_rid() рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

get_canvas_item() рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА CanvasItem рдиреЛрдб рдкрд░ рд╣реВрдВред рдпрд╣ рд╕реНрдерд┐рд░рддрд╛ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╕рдорд╛рди get_rid() рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ: CollisionObject , Resource ред

рдХреНрдпрд╛ Label рдХреЛ TextLabel рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдХрдИ рдмрд╛рд░ рдЕрдм рдореИрдВ рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рдЗрд╕реЗ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ "рдЯреЗрдХреНрд╕реНрдЯ" рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХреЗрд╡рд▓ RichTextLabel рджрд┐рдЦрд╛рддрд╛ рд╣реИред TextLabel RichTextLabel рд╕рд╛рде рдЕрдзрд┐рдХ рд╕рдВрдЧрдд рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдЯреЗрдХреНрд╕реНрдЯ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдореАрд░ рдХреЗ рдмрд┐рдирд╛ред

рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдПрдХрддрд╛ рдХреЗ рдкрд╛рд╕ Text рдФрд░ TextMesh , рдФрд░ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд▓реЗрдмрд▓ рдХреЗ рдмрдЬрд╛рдп рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред

рдореИрдВ Tree рдФрд░ GraphNode рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ TreeView рдФрд░ GraphEditNode рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВред
Tree , рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╡реИрд╢реНрд╡рд┐рдХ рдЬреАрдпреВрдЖрдИ рдиреЛрдб рдЖрдИрдПрдордУ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рдХрд╛ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╣реИ, рдЕрдиреНрдп рд╕рднреА рдЬреАрдпреВрдЖрдИ рдврд╛рдВрдЪреЗ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ TreeView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
GraphNode , рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧреНрд░рд╛рдл рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдореИрдВ рди рддреЛ Node рдФрд░ рди рд╣реА GraphNode рдХрд░ рд╕рдХрддрд╛ рдерд╛ рдЬреЛ рдХрд╛рдлреА рдХрд╖реНрдЯрдкреНрд░рдж рдерд╛ред

@Zylann рдЪреВрдВрдХрд┐ рдЧреНрд░рд╛рдлрд╝ рдиреЛрдбреНрд╕ рдЧреНрд░рд╛рдлрд╝ (рдкреЗрдбрд╝ рдирд╣реАрдВ) рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп/рдирд┐рдпрдВрддреНрд░рдг рд╣реИрдВ, рдЧреНрд░рд╛рдлрд╝рдХреЙрдиреНрдЯреЗрдирд░ рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред GraphNode рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИред

рд╣рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП lerpf / lerpv / lerpc рдХреЗ рдмрдЬрд╛рдп Color/Vector2/3.linear_interpolate ? рдХрдо рд╕реЗ рдХрдо Color/Vector2/3.linear_interpolate рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ Color/Vector2/3.lerp

рдЬреИрд╕рд╛ рдХрд┐ #29598 http_escape / http_unescape рд╕реЗ uri_encode / uri_decode рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рд╣рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП lerpf & lerpv рдХреЗ рдмрдЬрд╛рдп Vector2/3.linear_interpolate ? рдХрдо рд╕реЗ рдХрдо Vector2/3.linear_interpolate рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ Vector2/3.lerp

vector.lerp() рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо https://github.com/godotengine/godot/pull/16106 рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ lerp() рдореЗрдВ рд╡реИрдХреНрдЯрд░ рдФрд░ рд░рдВрдЧреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рд┐рдЪ рд╣реИред

Vector2.angle_to_point() рдХрд╛ рдирд╛рдо рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдирд╛рдо рд╡рд░реНрддрдорд╛рди рд╡рд┐рд╡рд░рдг рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд╛рдо рдХреНрдпрд╛ рд╣реЛрдЧрд╛, рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИред

рдореВрд▓ рдЕрдВрдХ: #16307

@ razcore-art рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ https://github.com/godotengine/godot/pull/20371 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреАрдЖрд░ рдЦреБрд▓рд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкреАрдЫреЗ рдХреА рд╕рдВрдЧрддрддрд╛ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ) рд░рдЦрддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЕрдм рдФрд░ рдирд╣реАрдВред

Area рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Volume рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 3D рд╣реИред рдФрд░ Area2D рддреЛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП Area ред рдПрдХ рдХреНрд╖реЗрддреНрд░ рд╕реНрд╡рднрд╛рд╡ рд╕реЗ 2D рд╣реИред

GridMap рд╢рд╛рдпрдж CubeMap рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдкрд░ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдмрд╕ рд╡рд╣ "рдЧреНрд░рд┐рдб" рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ 2D рдЪреАрдЬрд╝ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

CheckButton рдирд┐рдпрдВрддреНрд░рдг SwitchButton рдпрд╛ рдХреБрдЫ рдФрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Checkbox ред рдпрд╛ рд╢рд╛рдпрдж рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡реИрд╕реЗ рднреА рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВред

рдореИрдВ рдлрд┐рд░ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ: рдЪреЗрдХрдмрдЯрди, рдФрд░ рдЕрдиреНрдп рд╕рд┐рд░реНрдл рдХреЙрд╕реНрдореЗрдЯрд┐рдХ рд╣реИрдВред

рдпрд╛ рд╢рд╛рдпрдж рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡реИрд╕реЗ рднреА рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, UX-рд╡рд╛рд░, CheckBox рдФрд░ CheckButton рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬрд╝реЗрдВ рд╣реИрдВред
https://uxmovement.com/buttons/when-to-use-a-switch-or-checkbox/

@ рд░реЛрдбрд┐рдпреЛ-рдореИрдХрдХреЗрдмреЗ рдПрд░рд┐рдпрд╛ рдХреЛ 2рдбреА рд╕рдордХрдХреНрд╖ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, area рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ a particular extent of space or surface ред
Cubemaps 3D рдЫрд╡рд┐рдпрд╛рдВ рд╣реИрдВ, рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╢реБрджреНрдзрддрд╛ рд╕рдВрджрд░реНрдн рдкрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рднреНрд░рдо рдЬреЛрдбрд╝рддреА рд╣реИред

grabber_area -> slider_progress
slider -> slider_background
image

рдпрд╛ рдХреЗрд╡рд▓:
grabber_area -> progress
slider -> background ?

рд╢рд╛рдпрдж:
grabber_area -> progress_area рдпрд╛ progressed_area
slider -> progress_background ?

Cubemaps 3D рдЫрд╡рд┐рдпрд╛рдВ рд╣реИрдВ, рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╢реБрджреНрдзрддрд╛ рд╕рдВрджрд░реНрдн рдкрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рднреНрд░рдо рдЬреЛрдбрд╝рддреА рд╣реИред

@ рдИрдСрди-рдПрд╕ рдореЗрд▓рд╛ рдХрд╛рдлреА, рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ред

рдХреНрд╖реЗрддреНрд░ рдХреЛ 2рдбреА рд╕рдордХрдХреНрд╖ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ 2рдбреА рд╕рдордХрдХреНрд╖ рднреА рдЕрд╕рдВрдЧрдд рд╣реИред рдЧрдгрд┐рдд рдореЗрдВ рдПрдХ рдХреНрд╖реЗрддреНрд░ рд▓рдВрдмрд╛рдИ * рдКрдВрдЪрд╛рдИ рд╣реИ, рдмрд╕ рдХреЛрдИ рддреАрд╕рд░рд╛ рдЖрдпрд╛рдо рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдПрд░рд┐рдпрд╛ 2 рдбреА рдХрд╣рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдПрд░рд┐рдпрд╛ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг 2рдбреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред "рдХреНрд╖реЗрддреНрд░" рдХреА рдПрдХ рдФрд░, рдЕрдзрд┐рдХ рдЧрдгрд┐рддреАрдп рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ:

рд╕рддрд╣ рдХреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рднреАрддрд░ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ: рд╕рддрд╣ рдХреЗ рдорд╛рдк рдХреЗ рдмрд░рд╛рдмрд░ рдЗрдХрд╛рдИ рд╡рд░реНрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛

рдЗрд╕реА рддрд░рд╣, рдЧрдгрд┐рдд рдореЗрдВ 3D рд╕реНрдкреЗрд╕ рдХреЛ "рд╡реЙрд▓реНрдпреВрдо" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдкрд╣рд▓реА рдмрд╛рд░ рднреНрд░рдорд┐рдд рдерд╛ рдЬрдм рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдХреНрд╖реЗрддреНрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ 3D рдиреЛрдб рдерд╛, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ "Area2D" рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рдЧреЗрдо рдЗрдВрдЬрди рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЧрдгрд┐рдд рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рд▓реЗрдиреА рдЪрд╛рд╣рд┐рдПред

рдЬрдмрдХрд┐ рдореИрдВ рддрд░реНрдХ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд▓рд╛рдн рд╣реЛрдЧрд╛, рдЦрд╛рд╕рдХрд░ рдирдП рд▓реЛрдЧреЛрдВ рдХреЛред рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ "рд╡реЙрд▓реНрдпреВрдо" рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╢рдмреНрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 3D рдХреЗ рд▓рд┐рдП "рд╡реЙрд▓реНрдпреВрдо" рдФрд░ 2D рдХреЗ рд▓рд┐рдП "рдПрд░рд┐рдпрд╛" рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдиреЛрдбреНрд╕ рдЬрд┐рдирдХреЗ 2D рдФрд░ 3D рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рдЙрдирдХреЗ рдирд╛рдо рд╣реЛрдВрдЧреЗ "

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд╛рдордХрд░рдг рдпреЛрдЬрдирд╛ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рд╡рд╣рд╛рдБ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдирд┐рдпрдо рдХрд╛ рдПрдХ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреНрдпрд╛рджрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╣рд╛рдБ рдХреБрдЫ рдиреЛрдбреНрд╕ рдЬреЛ рдХреЗрд╡рд▓ рдЬреНрдпрд╛рджрд╛рддрд░ рдпреЛрдЬрдирд╛ рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣реЗ рд╣реИрдВ), рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдЬрд╣рд╛рдВ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╢рдмреНрдж рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЕрдзрд┐рдХ рд╕рдордЭрджрд╛рд░реА, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рдЕрдЧрд░ рдореИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐... рд╢рд╛рдпрдж Area2D рд╕реЗ Area , рдФрд░ Area рд╕реЗ Area3D рдирд╛рдо рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ <> рд╕реЗ рдШрд┐рд░рд╛ рд╣реБрдЖ рдкрд╛рда рддрдм рддрдХ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рдЬрдм рддрдХ рдЖрдк <> . рд╕реЗ рдмрдЪ рдирд╣реАрдВ рдЬрд╛рддреЗ

@ рд░реЛрдбрд┐рдпреЛ-рдореИрдХрдХреЗрдмреЗ рдореБрдЭреЗ рдпрд╣ рдЖрднрд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдиреЛрдб рдирд╛рдордХрд░рдг рдХрд╛ рдЗрд░рд╛рджрд╛ рдорд╛рдирд╡ рднрд╛рд╖рд╛ рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рд╣реИ рди рдХрд┐ рдЧрдгрд┐рддреАрдпред рддреЛ "рдХреНрд╖реЗрддреНрд░" рдХрд╛ рдорддрд▓рдм рдЬреНрдпрд╛рдорд┐рддреАрдп рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдЬрдЧрд╣ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐рд╕реА рд╕реНрддрд░ рдпрд╛ рдордВрдЪ рдХреЗ рдЕрдВрджрд░ред рдЖрдИрдИ - рдХреНрд╖реЗрддреНрд░ 1.

рдиреЛрдб рдореЗрдВ рд╕реАрдзреЗ рддреМрд░ рдкрд░ рдХреЛрдИ рдЬреНрдпрд╛рдорд┐рддрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдпрд╛ рд╕реНрд╡рдпрдВ рдПрдХ рдЬреНрдпрд╛рдорд┐рддрд┐ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдЬреИрд╕реЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдмрдирд╛рддреЗ рд╕рдордп рдЗрд╕рдХрд╛ рдХреНрд╖реЗрддреНрд░/рдорд╛рддреНрд░рд╛ рдХрд╣рд╛рдВ рд╣реИ, рдФрд░ рдлрд┐рд░ рдореБрдЭреЗ рдХреНрд╖реЗрддреНрд░ рдФрд░ рд╡реЙрд▓реНрдпреВрдо (рдЖрдХреГрддрд┐рдпрд╛рдВ) рдХреЛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреНрдпреЛрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЖрдпрддрди?

рдпрджрд┐ рдЗрд╕реЗ рдЬреНрдпрд╛рдорд┐рддреАрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рдкрдбрд╝рд╛, рддреЛ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рд╢рдмреНрдж рд╢рд╛рдпрдж рдЬрд╛рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реЛрдЧрд╛ред

рдЙрдиреНрд╣реЗрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рдХреНрд╖реЗрддреНрд░2рдбреА/3рдбреА
  • рд╕реНрдкреЗрд╕2рдбреА/3рдбреА
  • рдЬреЛрди2рдбреА/3рдбреА
  • рдлреАрд▓реНрдб2рдбреА/3рдбреА
  • рдЖрджрд┐ред

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рдЯреНрд░реИрдХрд░ рдХреЗрд╡рд▓ рд╡рд┐рдзрд┐, рдЧреБрдгреЛрдВ рдФрд░ рд╕рдВрдХреЗрддреЛрдВ (рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ) рдХреЗ рд▓рд┐рдП рд╣реИ, @reduz рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ 4.0 рдкрд░ рд╕рдВрдЧрддрддрд╛ рдЯреВрдЯрдиреЗ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдЗрд░рд╛рджреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдЗрд╕ рд╡рд┐рд╢рд╛рд▓ рд╕реВрдЪреА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрд░ рджреЗрд╡реЛрдВ рд╕реЗ рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЪреАрдЬреЗрдВ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП...

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рдЪреАрдЬреЛрдВ рдХреЛ рдЙрддрдирд╛ рд╣реА рдЫреЛрдбрд╝рдирд╛ рд╣реИ рдЬрд┐рддрдирд╛ рд╡реЗ рдЕрднреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ 4.0 рдХреЗ рдмрд╛рдж рдЕрдЧрд▓реЗ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рддрдХ рд╡рд╛рдкрд╕ рд▓рд╛рдд рдорд╛рд░реА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ?

рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдореБрдЦреНрдп рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдВ, рдпрд╣ рд╣рд░ рдЬрдЧрд╣ рдмрдбрд╝реЗ рдирд╛рдореЛрдВ рдХреЗ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХрд╛ рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдПрдкреАрдЖрдИ рдХреЛ рдмреЛрдЭрд┐рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред

рдУрдкреА рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдПрдХ рдмрдбрд╝рд╛ рд╕рдВрдЧрддрддрд╛ рдЯреВрдЯрдирд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ 4.0 рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ @reduz рдиреЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ "рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрдм рдФрд░ рдирд╣реАрдВ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛" рдХреА рд╕рдВрдЧрддрддрд╛ рдЯреВрдЯрдирд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ 2.1 рдФрд░ 3.0 рдХреЗ рдмреАрдЪ (рдмрд╣реБрдд рдЕрдзрд┐рдХ) рдмрджрд▓реЗ рдореЗрдВ рд╕рд┐рд░реНрдл рдЪреАрдЬреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдСрдбрд┐рдпреЛ рдФрд░ рдкрд╛рд░реНрдЯрд┐рдХрд▓ рд╕рд┐рд╕реНрдЯрдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЖрдпрд╛рдд рдкреНрд░рдгрд╛рд▓реА рдмрджрд▓ рд░рд╣реА рд╣реИ, рдЖрджрд┐)ред

рд╡рд╣рд╛рдБ, 4.0 рдореЗрдВ рдХреБрдЫ рд╕рдВрдЧрддрддрд╛ рдЯреВрдЯрдирд╛ рд╣реЛрдЧрд╛ рдЕрдиреНрдпрдерд╛ рдпрд╣ 4.0 рдмреБрд▓рд╛рдпрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЙрдЪрд┐рдд рд╣реЛрдЧрд╛ рдФрд░ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдЖрд╕рд╛рди рд╣реЛрдЧреА, рд╕рдВрднрд╡рддрдГ рдПрдХ рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рджреГрд╢реНрдпреЛрдВ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдирд╛рдорд┐рдд рдЧреБрдгреЛрдВ, рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдареАрдХ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ :)

Control рдХреЗ _set_anchor() рдХреЛ рднреА рд╢реБрд░реБрдЖрдд "_" рдХреЛ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреЙрдкрдЕрдкрдореЗрдиреВ рдореЗрдВ index_pressed(index) рдФрд░ id_pressed(id) рдЬреЛ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди id_focused рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдЗрдЯрдо рдХреА рдЖрдИрдбреА рдХреЗ рдмрдЬрд╛рдп рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдЬ рдПрдХрд┐рдпрди рдХреЛ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рдмрд╛рдж рд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓рдиреЗ рд▓рд╛рдпрдХ рд╣реИред

ARVRServer рдХреЛ рд░рд┐рдлрд▓реЗрдХреНрдЯрд░ рдХрд░реЗрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ XRServer рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рд╣рдордиреЗ рдЗрд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдерд╛ рддреЛ VR рдФрд░ AR рджреЛрдиреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП XR рд╢рдмреНрдж рдЕрднреА рддрдХ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдирд╣реАрдВ рдерд╛ред рдФрд░ рдирд╣реАрдВ, рдореИрдВ MRServer рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ;)

рдХреНрдпрд╛ рд░реЗрдХрд╛рд╕реНрдЯ рдореЗрдВ "рд╕рдХреНрд╖рдо" рдХреЗ рдмрдЬрд╛рдп "рдЕрдХреНрд╖рдо" рд╕рдВрдкрддреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП? CollisionShape рдореЗрдВ рдПрдХ "рдЕрдХреНрд╖рдо" рд╣реИ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ false рд╣реИ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИрдВ)ред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд░реЗрдХрд╛рд╕реНрдЯ рдХреА "рд╕рдХреНрд╖рдо" рд╕рдВрдкрддреНрддрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ false рд╣реИ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрддреА рд╣реИред

рдпрд╛, рд╕рдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдХрдо рднреНрд░рдорд┐рдд рд╣реИ), рдХреНрдпрд╛ CollisionShape рдореЗрдВ "рдЕрдХреНрд╖рдо" рдХреЗ рдмрдЬрд╛рдп "рд╕рдХреНрд╖рдо" рд╕рдВрдкрддреНрддрд┐ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ true ) рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП?

@Calinou рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рдмрдиреЗ рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕реЗ рдмреВрд▓рд┐рдпрди рд╣рдореЗрд╢рд╛ Enabled рд╣реЛрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдХреБрдЫ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреВрд▓рд┐рдпрди рдХреЛ true рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИред

@Calinou рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ @Zylann рдбрдмрд▓ рдирдХрд╛рд░рд╛рддреНрдордХ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ рдЗрд╕рд╕реЗ рдмрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп "рдЕрдХреНрд╖рдо" рдмреВрд▓ рдХреЛ "рд╕рдХреНрд╖рдо" рд╡рд╛рд▓реЗ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдареАрдХ рд╣реИ рдЕрдЧрд░ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди "рд╕рддреНрдп" рд╣реИред рдореЗрд░реА рдпрд╣ рдЪрд░реНрдЪрд╛ #17212 рдФрд░ #21822 рдореЗрдВ рд╣реБрдИ рдереАред

рдорд╛рдЙрд╕ рдФрд░ рдЯрдЪ рдЗрдирдкреБрдЯ рдИрд╡реЗрдВрдЯ рдХреА speed рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ velocity рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡реЗрдХреНрдЯрд░2 рд╣реИред

InputMap : get_action_list( String action ) рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рддрд╛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рдпрд╣ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЬреБрдбрд╝реЗ EventInputs рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдпрд╣ get_action_events(String action)

рд╕рдВрднрд╛рд╡рд┐рдд рднреНрд░рдо рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рднреА рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ InputMap рдореЗрдВ get_actions( ) рдирд╛рдордХ рдПрдХ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдФрд░ рджреЛрдиреЛрдВ рдирд╛рдореЛрдВ рдХрд╛ рдЕрд░реНрде рд╕рдВрджрд░реНрдн рд╕реЗ рдмрд╛рд╣рд░ рдПрдХ рд╣реА рдмрд╛рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

#30736 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд, рд╣рдореЗрдВ рджреЛ рдЧреЛрдбреЛрдЯ рднреМрддрд┐рдХреА рдЗрдВрдЬрдиреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ "GodotPhysics2D" рдФрд░ "GodotPhysics3D" рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╣рдирд╛ рдХрд┐ "GodotPhysics" рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ, рджреЛ рдмрд╣реБрдд рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред

Object._init() рд╕реЗ Object._new() рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

get тАФ _get
get_property_list тАФ _get_property_list
notification тАФ _notification
set тАФ _set

new тАФ _init

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ _init рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╛рдпрдерди рдХреЗ __init__ , рдЬрдмрдХрд┐ new рдХрдХреНрд╖рд╛ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВред

рдХреНрдпрд╛ String : empty() -> is_empty() рдЬреИрд╕рд╛ рдХреБрдЫ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ? рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдп рд╣реИред

@vortexofdoom рдЕрдЧрд░ рд╡рд┐рдзрд┐ рдирд╛рдо рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдФрд░/рдпрд╛ рдЙрдирдХрд╛ рдирд╛рдо рдХреИрд╕реЗ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рд╣рд╛рдБред

рдореИрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ String рдФрд░ NodePath рдореЗрдВ рдХреНрд░рдорд╢рдГ empty рдФрд░ is_empty рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдмрд╛рдХреА рдХреЛрд░ рдмрд┐рд▓реНрдЯ-рдЗрди рдкреНрд░рдХрд╛рд░ empty рдирд╛рдо рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ is_empty рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ NodePath рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рдЗрд╕реЗ рд╕рднреА рдмрд┐рд▓реНрдЯ-рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реБрд╕рдВрдЧрдд рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдЧрдВрднреАрд░ рд╕рдВрдЧрддрддрд╛ рдЯреВрдЯрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдп рд╣реИред

рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдзрд┐рдпрд╛рдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЧреЛрдбреЛрдЯ рдореЗрдВ clear рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред

@Xrayez ,

рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЧреЛрдбреЛрдЯ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕ рддрдереНрдп рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ empty рдПрдХ рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдПрдХ рд╡рд┐рд╢реЗрд╖рдг рднреА рд╣реИ, рдФрд░ is_ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдЕрд░реНрде рд╣реИред

рдореИрдВ рдЙрд╕ рдмреВрд▓ рдХреЗ рд▓рд┐рдП рд╕рднреА рдмрд┐рд▓реНрдЯ-рдЗрди рдореЗрдВ is_empty рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реВрдВред

рдЧреЛрдбреЛрдЯ 3.0 рдФрд░ 3.1 рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ C# рдореЗрдВ Set рддрд░реАрдХреЗ рдереЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдлрд┐рд░ рднреА рдХреЛрдб рдХреЛ рдЪреБрдкрдЪрд╛рдк рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдФрд░ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗ, рдХреНрдпреЛрдВрдХрд┐ рдХреНрд╡рд╛рдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдереА, рдЬреЛ рдХреЛрд░ рд╕реЗ рд╕реЗрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рдЖрдИ рдереАред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ #30744

GDScript рдореЗрдВ set_euler рдФрд░ set_axis_angle , рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рднреА рд╣реИрдВ ( q.set_axis_angle(myvec3, myval) рдХреЛ q = Quat(myvec3, myval) рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЛрд░ рдореЗрдВ рднреА рдпреЗ рддрд░реАрдХреЗ рд╣реИрдВред рдЖрдзрд╛рд░ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рд╡реЗ GDScript рдХреЗ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред

рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рдХреНрд╡рд╛рдЯ рд╕реЗрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реА # рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░рдЦрдирд╛ рдЙрдЪрд┐рдд рд╣реИ? рдпрджрд┐ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз, рдХреНрдпрд╛ рдЖрдзрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рднреА рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

@aaronfranke рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдпрд╣ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рдЙрди

@aaronfranke рдпрд╣ рдореБрджреНрджрд╛ рдПрдкреАрдЖрдИ рдореЗрдВ рдЪреАрдЬреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рди рдХрд┐ рдЗрдВрдЬрди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдпрд╛ рдмрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

Geometry рдХреЗ point_is_inside_triangle() рд╕реЗ is_point_in_triangle() , рдЕрдиреНрдп рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЙрд╕реА рдХрдХреНрд╖рд╛ рдореЗрдВ bool s рднреА рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред

TreeItem.get_children() рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ get_first_child() рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбреЙрдХреНрдЯрд░ рдХреЛ рдпрд╣ рднреА рд╕рдордЭрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдмрдЪреНрдЪреЗ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред get_next() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

#31976 рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╢реИрдбреЛ рдПрдЯрд▓рд╕ рдХрд╛ рдорд╛рди 2 рдХреА рд╢рдХреНрддрд┐ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдбрд╛рдпрд░реЗрдХреНрд╢рдирд▓ рд╢реИрдбреЛ рдФрд░ рдУрдордиреА/рд╕реНрдкреЙрдЯ рд╢реИрдбреЛ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд┐рдзрд┐рдпрд╛рдБ рдХрд┐рд╕реА рднреА рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИрдВ; рдпрджрд┐ рдпрд╣ 2 рдХреА рд╢рдХреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рдЗрд╕реЗ 2 рдХреА рдирд┐рдХрдЯрддрдо рд╢рдХреНрддрд┐ рддрдХ рд▓реЗ рдЬрд╛рдПрдЧреАред рд╣рдореЗрдВ рд╢рд╛рдпрдж рдЗрд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдПрдХ рдЧрдгрдирд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕реА рддрд░рд╣, рдЕрдирд┐рд╕реЛрдЯреНрд░реЛрдкрд┐рдХ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд╕реНрддрд░ рдПрдХ рдПрдирдо (2├Ч, 4├Ч, 8├Ч, 16├Ч) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рдХреЗрд╡рд▓ рдкрд╛рд╡рд░-рдСрдл-рдЯреВ рдорд╛рди рд╣реА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

VisualServer рдХреЗ instance_create2() рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ instance_create() рд╕реЗ рдЕрд▓рдЧ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред

рдСрдмреНрдЬреЗрдХреНрдЯ-рд░рд┐рд▓реЗрдЯрд┐рд╡ рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП, Spatial рдореЗрдВ translate_object_local рдЬреЛ Vector3 рд▓реЗрддрд╛ рд╣реИ, рдФрд░ Node2D рдореЗрдВ move_local_x рдФрд░ move_local_y , рдЬреЛ рддреИрд░рддрд╛ рд╣реИред рджреЛрдиреЛрдВ Spatial рдФрд░ Node2D рдРрд╕реЗ рддрд░реАрдХреЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХреНрд░рдорд╢рдГ Vector3 рдФрд░ Vector2 рд▓реЗрддреЗ рд╣реЛрдВ, рдФрд░ рдпрд╛ рддреЛ translate_local рдпрд╛ local_translate translate_object_local рд╕реЗ рд╕рд░рд▓ рдирд╛рдо рд╣реЛред

@leonkrause render_width рдФрд░ render_height рдмрдЬрд╛рдп рдЗрд╕реЗ viewport_width рдФрд░ viewport_height рдпрд╛ рд╢рд╛рдпрдж canvas_width рдФрд░ canvas_height , рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреИрдирд╡рд╛рд╕ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╕рдВрджрд░реНрдн рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@ akien-mga рдХреГрдкрдпрд╛ рдЕрдкрдиреА рд╕реВрдЪреА рдореЗрдВ рдЯреНрд░реА рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╡реЗ рдмрд╣реБрдд рднреНрд░рдорд┐рдд рд░реВрдк рд╕реЗ рдирд╛рдорд┐рдд рд╣реИрдВ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реИрдВред

рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЙрдирдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рддреЛ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ get_child () рдФрд░ get_next (), get_prev () рдиреЗ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬреИрд╕реЗ рд╡реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдХрд┐ рд╡реЗ рдЬреЛ рдХреБрдЫ рднреА рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рд╣рд░ рдмрд╛рд░ рдПрдХ рд╣реА рдкреЙрдЗрдВрдЯрд░ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред

get_child() рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ get_first_child() рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

get_next() рдФрд░ get_prev() рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ get_next_sibling() рдФрд░ get_prev_sibling() рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ Engine.iterations_per_second рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Engine.physics_fps рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд▓рд┐рдП?

is_processing :

рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рд╕рддреНрдп рд▓реМрдЯрд╛рддрд╛ рд╣реИред

can_process :

рдпрджрд┐ рджреГрд╢реНрдп рдЯреНрд░реА рд░реБрдХрд╛ рд╣реБрдЖ рд╣реИ, рддреЛ рдиреЛрдб рдкреНрд░реЛрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╕рд╣реА рд▓реМрдЯрд╛рддрд╛ рд╣реИ

рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ can_process рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ can_process_paused рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ is_processing рдкрджреНрдзрддрд┐ рд╕реЗ рднреНрд░рдо рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗред

----
String print( Variant value, String indent="", bool sort_keys=false )

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдирд╛рдо рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@dalexeev рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдХреНрдпрд╛ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреНрдпреЛрдВ?

@Calinou рдпрд╣ рд╡рд┐рдзрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреБрдЫ рднреА рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ; рдпрд╣ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЗрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ JSON.print Node.print_tree рдпрд╛ OS.print_all_resources рдпрд╛ рдЕрдиреНрдп рд╕рднреА print* рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

191123-1

рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдХреНрдпрд╛ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕рдХреЗ рд▓рд┐рдП JSON.stringify рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред PHP рдореЗрдВ json_encode рдлрд╝рдВрдХреНрд╢рди рд╣реИред рд╕реАрдзреЗ GDScript рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдп рд╣реЛрддрд╛ рд╣реИ - to_json ред

рдпреВрдкреАрдбреА. JSON.serialize рднреА рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдпрд╣ JSON.stringify рдЬреИрд╕рд╛ рд╣реА рд╣реИред :рдореБрд╕реНрдХреБрд░рд╛рдУ:

рдореИрдВ "serialize" рд╢рдмреНрдж рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдмрд╛рдЗрдирд░реА рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЙрд╕ рдлреЙрд░реНрдо рдореЗрдВ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХрджрдо рдЙрдард╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЪреВрдВрдХрд┐ рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ JSON рдФрд░ рд╡реЗрд░рд┐рдПрдВрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ json рд╢рдмреНрдж рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡реНрдпрд░реНрде рд╣реИред

рдЕрдм, рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд╛рдо рд╣реЛрдЧрд╛ рдХреЗ рд▓рд┐рдП, рдореМрдЬреВрджрд╛ parse рд╡рд┐рдзрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдкрд░реАрдд рд╢рдмреНрдж (рдирд╣реАрдВ рд╣реИ рдпрд╣рд╛рдБ рджреЗрдЦ )ред рд╢рд╛рдпрдж рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ: encode , create , compose , generate ? рдпрджрд┐ encode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ decode рдХрд░рдирд╛ рд╕рдордЭрджрд╛рд░реА рд╣реЛрдЧреАред

рдореИрдВрдиреЗ format рдФрд░ write рдХреЛ parse рд╡реНрдпреБрддреНрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рджреЗрдЦрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг stringify рдХреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмреАрдЪ рдмреЗрд╣рддрд░-рдЬреНрдЮрд╛рдд рд╣реЛрдиреЗ рдХрд╛ рд▓рд╛рдн рд╣реИред

рдореИрдВрдиреЗ format рдФрд░ write рдХреЛ parse рд╡реНрдпреБрддреНрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рджреЗрдЦрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг stringify рдХреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмреАрдЪ рдмреЗрд╣рддрд░-рдЬреНрдЮрд╛рдд рд╣реЛрдиреЗ рдХрд╛ рд▓рд╛рдн рд╣реИред

str2var VariantParser рдФрд░ var2str VariantWriter рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ

рддреЛ рдореИрдВ write рд▓рд┐рдП рд╣реВрдВ, рдирд┐рд░рдВрддрд░рддрд╛ рдЬреАрддрддреА рд╣реИред рдореИрдВ

@Xrayez print рдХреЛ write рдмрджрд▓реЗрдВ? рдкрд╛рдпрдерди рд╕реЗ рдкрд╛рд╕реНрдХрд▓ рддрдХ? :рд╣рд╕ рд░рд╣рд╛:

рдЬреИрд╕рд╛ рдХрд┐ https://github.com/godotengine/godot-proposals/issues/252#issuecomment -557901552 рдореЗрдВ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ clear_color рд╕реЗ background_color рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣рд░ рдЪреАрдЬ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕)ред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ 4.0 рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди, рдЬреАрдЖрдИ рдЬрд╛рдВрдЪ рд╕реБрдзрд╛рд░, рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдЪрд╛рд░ рдЖрджрд┐ рдХреЗ рдХрд╛рд░рдг рдЧреЛрдбреЛрдЯ рдореЗрдВ рдирдП рд▓реЛрдЧреЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд▓рд╣рд░ рд▓рд╛рдПрдЧрд╛ред

рдпрджрд┐ рд╡реЗ рдкрд░рд┐рд╡рд░реНрддрди 4.0 рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЗрди рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рдХрдард┐рди рд▓реИрдВрдбрд┐рдВрдЧ рдорд┐рд▓реЗрдЧреА рдХреНрдпреЛрдВрдХрд┐ рд▓рдЧрднрдЧ рдХреЛрдИ рдореМрдЬреВрджрд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ (рдЖрдзрд┐рдХрд╛рд░рд┐рдХ "рдкрд╣рд▓рд╛ рдЧреЗрдо" рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛) рдЕрдм рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдпрджрд┐ рд╡реЗ рдкрд░рд┐рд╡рд░реНрддрди 4.0 рдХреЗ рдмрд╛рдж рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдорд╛рди рд▓реАрдЬрд┐рдП 4.1 рдореЗрдВ, рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддреНрдпрдВрдд рдКрдмрдбрд╝-рдЦрд╛рдмрдбрд╝ рд╕рд╡рд╛рд░реА рд╣реЛрдЧреАред рдЙрдиреНрд╣реЛрдВрдиреЗ рдмрд╕ рдПрдХ рдирдпрд╛ рдЗрдВрдЬрди рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реАрдЦреАрдВ, рдЬрд┐рд╕реЗ рдЕрдм рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╕реАрдЦрдирд╛ рд╣реЛрдЧрд╛ред рд╢реБрд░реБрдЖрдд рдХрдард┐рди рд╣реЛрддреА рд╣реИ, рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рджреЛ рдмрд╛рд░ рдмрд╣реБрдд рдЬрд▓реНрджреА рдЗрд╕рд╕реЗ рдЧреБрдЬрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд╛рд░ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд┐рд░рд╛рд╢рд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЗрд╕рд▓рд┐рдП 4.0 рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ "3.3" рдпрд╛ "3.9" рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдЙрди рд╕рднреА рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЛ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рджреЗрддрд╛ рд╣реИ?

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣реА рдЬрдЧрд╣ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рдЖрдВрд╢рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдкреЗрд╢ рдХрд░реВрдВрдЧрд╛ред
рдХреНрдпреЛрдВ рди рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╛рдордХрд░рдг рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдПрдХ рдирдИ рднрд╛рд╖рд╛ рдЬреЛрдбрд╝реЗрдВ рдЬрд┐рд╕реЗ GodotOldNames/GodotPre4.0 рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреБрд░рд╛рдиреЗ рдирд╛рдо рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрджрд┐ рдХрд┐рд╕реА рдХреЛ рдкреБрд░рд╛рдиреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдореМрдЬреВрдж рдкреБрд░рд╛рдиреЗ рдирд╛рдо рдирд╣реАрдВ рдорд┐рд▓рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рднрд╛рд╖рд╛ рдХреЛ рдмрджрд▓рдХрд░ GodotPre4.0 рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдирдП рдирд╛рдореЛрдВ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рднреА рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣ рдкреВрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди #4397 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@Anutrix рдпрд╣ рдмрд╣реБрдд рдЬрдЯрд┐рд▓рддрд╛ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ (рдЧреИрд░-рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?) рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕рднреА рддрд╛рд░ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИрдВред

рднреМрддрд┐рдХреА " рдкрд░рдд ", рд░реЗрдВрдбрд░ " рдкрд░рдд "

рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдЧреЛрдбреЛрдЯ рд╕реАрдЦрдиреЗ рдХреЗ рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдХреБрдЫ рд╣рдлреНрддреЛрдВ рдХреЗ рджреМрд░рд╛рди рдореИрдВ рдареАрдХ рдЙрд╕реА рднреНрд░рдо рд╕реЗ рдЧреБрдЬрд░ рд░рд╣рд╛ рдерд╛, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдпрд╣ рдЧрд░реАрдм рд╡реНрдпрдХреНрддрд┐ рдерд╛ред

рднреМрддрд┐рдХреА "рд▓реЗрдпрд░", рд░реЗрдВрдбрд░ "рд▓реЗрдпрд░" рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рдбрд┐рдЬрд╝рд╛рдЗрди рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ
рдкрд░рддреЗрдВ (рдмрд╣реБрд╡рдЪрди, рдПрдХ рдкрд░рдд рдХреЗ рд╡рд┐рдкрд░реАрдд), рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЙрди рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдКрдкрд░ рдвреЗрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП "рд▓реЗрдпрд░рд┐рдВрдЧ" рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ 2рдбреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдпрд╛ рдПрдиреАрдореЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдПрдХ рдЕрдЧреНрд░рднреВрдорд┐, рдкреГрд╖реНрдарднреВрдорд┐ рдФрд░ рдкрд░рддреЛрдВ рдХреЗ рдмреАрдЪ рдпрд╛ рд╢реАрд░реНрд╖ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ред рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдкрд░рддреЛрдВ рдХреЛ рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕реЗрд▓реЛрд▓реЙрдЗрдб рдлрд┐рд▓реНрдореЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рдЬрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдИ рдЕрдиреНрдп рдЧреЗрдо рдЗрдВрдЬрди рдХреА рддрд░рд╣ рдЧреЛрдбреЛрдЯ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╕реЙрд░реНрдЯрд┐рдВрдЧ" рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЕрдореВрд░реНрдд рд╕рдорд╛рдирддрд╛ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рднреМрддрд┐рдХ рд╡рд╕реНрддреБрдПрдВ рдпрд╛ рд░реЗрдВрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ "рдкрд░рддреЗрдВ" рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╕рд╛рде рд╣реА рдЗрди рдЕрдореВрд░реНрдд рд╕рдорд╛рдирддрд╛рдУрдВ рдХрд╛ рджреГрд╢реНрдп рдкрд░рддреЛрдВ рдХреА рд╕реНрдЯреИрдХрд┐рдВрдЧ рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ (рдпрд╣ "рд╕реЙрд░реНрдЯрд┐рдВрдЧ") рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдмрдирд╛рддрд╛ рд╣реИ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рднреНрд░рдорд┐рддред

рдЬрдм рдореБрдЭреЗ рднреМрддрд┐рдХреА "рд▓реЗрдпрд░", рд░реЗрдВрдбрд░ "рд▓реЗрдпрд░" рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдФрд░ рдЕрд░реНрде рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛, рддреЛ рдореБрдЭреЗ рддреБрд░рдВрдд рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдпреЗ рдлрд┐рдЬрд┐рдХреНрд╕ рдЧреНрд░реБрдк, рд░реЗрдВрдбрд░ рдЧреНрд░реБрдк рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХрд╣реВрдВ рддреЛ рдореБрдЭреЗ рдЕрднреА рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрдирдХрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдХреЛрдИ рд╢реАрд░реНрд╖-рд╕реНрдерд┐рд░ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдЖрджреЗрд╢ рдпрд╛ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рд╕рдВрдмрдВрдз рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдкрд░рдд рдХрд╛ рдирд╛рдордХрд░рдг, рдЗрдореНрд╣реЛ рдиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ, "рд╕рдореВрд╣", "рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рднрд╛рд╡рд┐рдд" рдорд╛рд╕реНрдХ рдХреЗ рд▓рд┐рдП, рдпрд╛ рд╢рд╛рдпрдж рдХреБрдЫ рдЕрдиреНрдп рд╢рдмреНрдж рдЬреЛ рдореИрдВ рдЕрднреА рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдЧрд╛ред

рдПрдирд┐рдореЗрд╢рдирдкреНрд▓реЗрдпрд░ рд╡рд┐рдзрд┐
.stop(false) рдХреЛ .pause(true) рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ> рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕> рдбрд┐рд╕реНрдкреНрд▓реЗ> рд╡рд┐рдВрдбреЛ> рд╕реНрдЯреНрд░реЗрдЪ> рдореЛрдб:

рд╕реНрдЯреНрд░реЗрдЪ рдореЛрдб "2D" рдХреЛ рд╕реНрдЯреНрд░реЗрдЪ рдореЛрдб "рдбрд┐рд╕реНрдкреНрд▓реЗ" рдпрд╛ "рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп" рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ 2D рдХрд╣рдирд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдЬрдм рдпрд╣ 3D рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА 2D рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕реЗ рдкрд┐рдХреНрд╕реЗрд▓рд░реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдЬрдмрдХрд┐ рдЧреЛрдбреЛрдЯ 2D рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд▓рдЧрднрдЧ рдЖрдзрд╛ рдХрд░рдирд╛ рдкрд┐рдХреНрд╕реЗрд▓рд░реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред)
"рдбрд┐рд╕реНрдкреНрд▓реЗ" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЛ рдХрд░рддрд╛ рд╣реИ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд░реНрдгрдирд╛рддреНрдордХ рд╣реЛрдЧрд╛: рдбрд┐рд╕реНрдкреНрд▓реЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдкрд░ рд╕рднреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЛ 2 рдбреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕, 3 рдбреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, 2 рдбреА рдореЗрд╢, рд▓рд╛рдЗрди 2 рдбреА рдФрд░ рдкреЙрд▓реАрдЧреЙрди рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ред
рдЙрд╕ рдкрд░ рдФрд░ рдЕрдзрд┐рдХ рдпрд╣рд╛рдБ ред

рдПрдиреАрдореЗрд╢рдирдкреНрд▓реЗрдпрд░, рдЯрд╛рдЗрдорд░ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдиреЛрдбреНрд╕ рдХреЗ рд▓реВрдк, рд░рд┐рдкреАрдЯ, рдСрдирд╢реЙрдЯ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓реВрдкрд┐рдВрдЧ, рджреЛрд╣рд░рд╛рдирд╛, рдФрд░ рдПрдХ рд╢реЙрдЯ рдирд╣реАрдВ рд╣реЛрдирд╛, рд╕рднреА рдПрдХ рд╣реА рдЪреАрдЬреЗрдВ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐
is_a_parent_of()
рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП
is_parent_of()

@KoBeWi #19801 рдкрд░ рдЪрд░реНрдЪрд╛ рджреЗрдЦреЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐
is_a_parent_of ()
рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП
is_parent_of ()

рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛, is_parent_of() рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рд╕рднреА рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред

@groud рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕реЗ is_ancestor_of() рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рджреВрд╕рд░реА рддрд░рдл рдХреЗ рд▓рд┐рдП рднреА рдХреЛрдИ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рддреЛ рдЗрд╕реЗ is_descendant_of() рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@groud рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕реЗ is_ancestor_of() рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рддреЛ рдЗрд╕реЗ is_descendant_of() рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рд╛рдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрддрд░ рдХреЗрд╡рд▓ "рдХреЙрд▓рд┐рдВрдЧ" рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реЛрдЧрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ is_descendant_of() рдЬреИрд╕реЗ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрджрд▓ рд╕рдХреЗрдВ рдФрд░ рд╣рдо рдХрд░ рдЪреБрдХреЗ рд╣реИрдВред

рд╣рдо рдХреНрд░рдорд╢рдГ push_error() рдФрд░ push_warning() рд╕реЗ print_error() рдФрд░ print_warning() рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдЦреЛрдЬ рдпреЛрдЧреНрдп рдмрдирд╛ рджреЗрдЧрд╛ :slightly_smiling_face:

@Calinou print_error() printerr() рд╕рд╛рде рднреНрд░рдорд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдХреГрдкрдпрд╛, TreeItem.get_children() рдкрджреНрдзрддрд┐ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдирд╛рдо рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдпрд╣ рдкрд╣рд▓рд╛ рдмрдЪреНрдЪрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЛ рд╢реЗрд╖ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреА рд╣реЛрддреА рд╣реИ рдЙрдиреНрд╣реЗрдВ get_next() (рдЬреИрд╕рд╛ рдХрд┐ #19796 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

#31404 рд╕реЗ @Zylann рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддреЗ рд╣реБрдП:

[рдирд╛рдо рдмрджрд▓реЗрдВ rpc() / rset() рд╕реЗ] remote_call() / remote_set() ?
рдЙрди рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЫреЛрдЯреЗ рдирд╛рдо рднреА рд╣реИрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдирд╛рдо рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдпрд╛ рдирд╣реАрдВред 3-рд╡рд░реНрдг рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ (рдЬреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЧреЗрдо рдирд╣реАрдВ рд╣реИрдВ) рдХреЛ рдЙрдЪрд┐рдд рдард╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреНрд░рддрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрди рдХреЙрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ (2020-01-03): рджреВрд╕рд░реЗ рд╡рд┐рдЪрд╛рд░ рдкрд░, call_remote() рдФрд░ set_remote() рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА call_deferred() рдФрд░ set_deferred() ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдиреАрдЪреЗ рдмрдВрдж/рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВ, рдореИрдВрдиреЗ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ

OS.find_scancode_from_string
OS.get_scancode_string
OS.is_scancode_unicode

рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрд┐ рдХреЗ рд▓рд┐рдП OS рд╡рд░реНрдЧ рд╕реЗ Input рд╡рд░реНрдЧ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

Input.get_joy_axis_index_from_string
Input.get_joy_axis_string
Input.get_joy_button_index_from_string
Input.get_joy_button_string

TabContainer рдЕрдкрдиреЗ tab_close рдФрд░ tab_hover рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рднреА рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

  • LightOccluder2D light_mask -> occluder_light_mask
  • рд╕реАрдкреАрдпреВрдкрд╛рд░реНрдЯрд┐рдХрд▓реНрд╕ Flags рдПрдирдо -> ParticleFlags
  • ARVRPositionalTracker get_type -> get_tracker_type
  • ARVRPositionalTracker get_name -> get_tracker_name
  • PathFollow2D rotate -> рдХреБрдЫ рдФрд░
  • ArrayMesh ArrayType enum -> рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ
  • рдореЗрд╖ BlendShapeMode рдПрдирдо -> ArrayMesh рдХреЛ рджреЗрдВ

https://github.com/godotengine/godot/issues/15763#issuecomment -568908661 рдореЗрдВ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг

RichTextLabel рдХреЗ meta_hover_started рдФрд░ meta_hover_ended рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдЕрдиреНрдп рд╕рдорд╛рди рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛рдУрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: meta_hover_entered рдФрд░ meta_hover_exited ред рдпрд╣ рди рдХреЗрд╡рд▓ рдЗрд╕реЗ рдмрд╛рдХреА рдЧреЛрдбреЛрдЯ рдПрдкреАрдЖрдИ рдХреА рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рдирдХрд▓ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╡рд░реНрддрдорд╛рди рдирд╛рдордХрд░рдг рдпреЛрдЬрдирд╛, рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдорд┐рдХ рдЫрдБрдЯрд╛рдИ рдХреЗ рдХрд╛рд░рдг, рдЙрдирдХреЗ рдХреНрд░рдо рдХреЛ рдЙрд▓рдЯ рджреЗрддрд╛ рд╣реИред рдЬрдм рдЖрдк рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдврд╝ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдереЛрдбрд╝рд╛ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрддрд╛ рд╣реИ, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдХрд╛рд▓рд╛рдиреБрдХреНрд░рдорд┐рдХ рдкреНрд░рд╡рд╛рд╣ рдкрд╣рд▓реЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рд╣реИред рдпрд╣ рдЪрд╛рд░реЛрдВ рдУрд░ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрдардиреАрдпрддрд╛ рдФрд░ рд╕реНрдерд┐рд░рддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреЛрдИ Texture.size рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп Texture.get_size() рдЧреЗрдЯреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред

рдореИрдВрдиреЗ рдбрд┐рд╕реНрдХреЛрд░реНрдб рдореЗрдВ рдкреВрдЫрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЗрд░рд╛рджрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВред рдПрдХ рд╕реБрдЭрд╛рд╡ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рдХрд┐рд╕реА рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рд╕реБрдЭрд╛рд╡ рдпрд╣ рдерд╛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ 'рд╕реЗрдЯрд░' рдирд╣реАрдВ рд╣реИ, get_size() рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

@jmbjr рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧреБрдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХреЛрдИ рднреА рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдЧреБрдг рд╣реИрдВ (рдХреЗрд╡рд▓

рд╣рд╛рдБ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЬрд╛рдЧрд░ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рдереЗ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдзреНрд╡рдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдЬреАрдбреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рд░реНрд╕рд░/рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛрдб рднреА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

SoftBody рдореЗрдВ рдПрдХ areaAngular_stiffness рдЬреЛ area_angular_stiffness (рд╕рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

Input.joy_connection_changed (рд╡рд┐рдзрд┐) рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдПрдкреАрдЖрдИ рдХреЗ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рдирд╣реАрдВ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

@ akien-mga рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЙрд╕ рд╡рд┐рдзрд┐ рдХреЛ рджреЗрдЦрд╛, рдЧреЛрдбреЛрдЯ рдХреА рдЦреЛрдЬ рдХреЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ, рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░ рдереЗ, рддрдм рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдХреИрд╕реЗ рдХреЛрдЬрд┐рдорд╛ рдиреЗ рдореЗрдЯрд▓рдЧрд┐рдпрд░ рд╕реЙрд▓рд┐рдб рдореЗрдВ рдХреБрдЫ рдкреМрд░рд╛рдгрд┐рдХ рдЧреЗрдордкреНрд▓реЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдЗрд╕рдХреЗ рд╕рдорд╛рди рд╣реА рд░рд╣рд╛ рд╣реЛрдЧрд╛ рдФрд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛: " рдЧреЛрдбреЛрдЯ рдореБрдЭреЗ рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдХреЛрдЬрд┐рдорд╛ рдХреА рддрд░рд╣ рдЪреМрдереА рджреАрд╡рд╛рд░ рдХреЛ рдЪреЛрдВрдЪ рдорд╛рд░рдиреЗ рдХрд╛ рд╕рд╛рдзрди рднреА рджреЗрддрд╛ рд╣реИ, рд╡рд╣ рдХрд┐рддрдирд╛ рдмрдврд╝рд┐рдпрд╛ рд╣реИ!"

Label рдФрд░ RichTextLabel рдореЗрдВ рдЕрд╕рдВрдЧрдд рдереАрдо рдЧреБрдг рд╣реИрдВ:

Label:
int line_spacing [default: 3]
Color font_color [default: Color( 1, 1, 1, 1 )]

RTL:
int line_separation [default: 1]
Color default_color [default: Color( 1, 1, 1, 1 )]

рд╕рд╛рде рд╣реА, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЗ рдХрд╛рд░рдг, рдПрдХ рд╣реА рдлрд╝реЙрдиреНрдЯ рдХреА Label рдФрд░ RichTextLabel рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдКрдВрдЪрд╛рдИ рд╣реЛрддреА рд╣реИред

200130-1

рднреВрддрдХрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TextEdit рдХреЗ request_completion рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ completion_requested рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреБрдЫ рд╣рдж рддрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рд▓рдЧрддрд╛ рд╣реИ, рд╕рд┐рдЧреНрдирд▓ рдХреА рдХреЙрд▓рдмреИрдХ-рд╡рд╛рдИ рдкреНрд░рдХреГрддрд┐ рдХреЗ рд╡рд┐рдкрд░реАрддред

рднреМрддрд┐рдХреА рд╢рд░реАрд░ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдЕрд╕рдВрдЧрддрд┐

рдХреНрд╖реЗрддреНрд░:

area_shape_entered(int area_id, рдХреНрд╖реЗрддреНрд░ рдХреНрд╖реЗрддреНрд░, int area_shape, int self_shape)
area_shape_exited (int area_id, рдХреНрд╖реЗрддреНрд░ рдХреНрд╖реЗрддреНрд░, int area_shape, int self_shape)
body_shape_entered (int body_id, рдиреЛрдб рдмреЙрдбреА, int body_shape, int area_shape)
body_shape_exited (int body_id, рдиреЛрдб рдмреЙрдбреА, int body_shape, int area_shape)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрди рдЕрдВрддрд┐рдо рджреЛ рдореЗрдВ area_shape self_shape рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╛ ...

рд╕рдЦреНрдд рд╢рд░реАрд░:

body_shape_entered (int body_id, рдиреЛрдб рдмреЙрдбреА, int body_shape, int local_shape)
body_shape_exited (int body_id, рдиреЛрдб рдмреЙрдбреА, int body_shape, int local_shape)

рдпрд╣рд╛рдБ рдЗрд╕реЗ local_shape рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ...

@FrederickDesimpel рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рддрд░реНрдХреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ: рдереЛрдбрд╝рд╛_рдореБрд╕реНрдХреБрд░рд╛рддреЗ рд╣реБрдП_рдлреЗрд╕:

рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ:

рд╡рд╛рд╕реНрддрд╡рд┐рдХ -> рдлреНрд▓реЛрдЯ
рд╢реВрдиреНрдп -> тАЛтАЛрд╢реВрдиреНрдп?

рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ "рдЕрд╕рд▓реА" рдирд╛рдо рдкрд╕рдВрдж рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ "рдлреНрд▓реЛрдЯ" рд╢рдмреНрдж рдЕрдХреНрд╕рд░ 32-рдмрд┐рдЯ рдлреНрд▓реЛрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗрд░рд┐рдПрдВрдЯ рдХрд╛ рдЕрд╕рд▓реА рдбрдмрд▓ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЗрдВрдЬрди real_t рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдпрд╛ рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдкреАрдПрд╕ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА 2017 рдореЗрдВ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣рдордиреЗ рдЗрдирдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛:
shader_type canvas => shader_type 2d
shader_type spatial => shader_type 3d
CanvasItemMaterial => Material2D
SpatialMaterial => Material3D

@Zylann SpatialMaterial рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Master рдореЗрдВ StandardMaterial3D рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЪрд╛рд╣рд┐рдП limit_ рдкрд░ рдорд╛рди Camera2D рдПрдХ рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛ рдЬрд╛ Rect2i ? рдЕрднреА рд╡реЗ рд╕рд┐рд░реНрдл рдЪрд╛рд░ рдЗрдВрдЪ рдХреЗ рд╣реИрдВред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдбреНрд░реИрдЧ рдорд╛рд░реНрдЬрд┐рди рдХреЛ Rect2 рднреА рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

String::begins_with рд╕реЗ String::starts_with ред

рдЬреИрд╕реЗ рдЧрдВрднреАрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ (рдЬрд╛рд╡рд╛, рдкрд╛рдпрдерди рдЖрджрд┐) рдореЗрдВред

InputEvent.is_action_pressed to InputEvent.is_action_just_pressed
InputEvent.is_action_released to InputEvent.is_action_just_released

https://github.com/godotengine/godot-proposals/issues/316#issuecomment -589426014

рд╣рд╛рд▓рд╛рдВрдХрд┐ "рдЬрд╕реНрдЯ" рд╢рдмреНрдж рдЧрд╛рдпрдм рд╣реИ, event.is_action_...() Input.is_action_just...() рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред

рд╣рдореЗрдВ рд╕рдВрднрд╡рддрдГ Node.add_child_below_node() рдХреЗ рдкрд╣рд▓реЗ рджреЛ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдкрд╣рд▓рд╛ рддрд░реНрдХ Node.add_child() рдЬреИрд╕рд╛ рд╣реА рд╣реЛред #19642 рджреЗрдЦреЗрдВред

_рд╕рд┐рдореЗрдВрдЯрд┐рдХрд▓ рдПрдЯреЗрд▓реЛрдлреЛрдмрд┐рдпрд╛ рдмреЛрд▓рдирд╛тАж_

рдХреНрдпрд╛ Node2D.draw_circle Node2D.draw_disk рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдбрд┐рд╕реНрдХ рдЦреАрдВрдЪрддрд╛ рд╣реИ рди рдХрд┐ рдПрдХ рд╡реГрддреНрдд?
Node2D.draw_circle рдЕрднреА рднреА draw_arc 0 рд╕реЗ TAU рд╢реЙрд░реНрдЯрдХрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@Goutte рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ, "рд╕рд░реНрдХрд▓" рдпрд╛ рддреЛ рдПрдХ рдЦреЛрдЦрд▓реЗ рд╕рд░реНрдХрд▓ рдпрд╛ рдПрдХ рднрд░реЗ рд╕рд░реНрдХрд▓ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдирд╛рдо рдЕрдзрд┐рдХ рдЦреЛрдЬрдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдирд╣реАрдВ рдмрджрд▓реВрдВрдЧрд╛ред

рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ, "рд╕рд░реНрдХрд▓" рдпрд╛ рддреЛ рдПрдХ рдЦреЛрдЦрд▓реЗ рд╕рд░реНрдХрд▓ рдпрд╛ рдПрдХ рднрд░реЗ рд╣реБрдП рд╕рд░реНрдХрд▓ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдХреБрдЫ рднреА рд╕рдорд░реНрдерди рдЗрд╕ ред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рджрд╛рд╡реЗ рдХрд╛ рдХреЛрдИ рд╕реНрд░реЛрдд рд╣реИ рдпрд╛ рдпрд╣ рдПрдХ рд╕реБрдЦрдж рдЕрдиреБрднреВрддрд┐ рд╣реИ?

рдЦреЛрдЬ рдпреЛрдЧреНрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА draw_circle , рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╡реГрддреНрдд рдЦреАрдВрдЪреЗрдЧрд╛, рди рдХрд┐ рдПрдХ рдбрд┐рд╕реНрдХред

рдореИрдВ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдХреБрдЫ рднреА рд╕рдорд░реНрдерди рдЗрд╕ ред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рджрд╛рд╡реЗ рдХрд╛ рдХреЛрдИ рд╕реНрд░реЛрдд рд╣реИ рдпрд╛ рдпрд╣ рдПрдХ рд╕реБрдЦрдж рдЕрдиреБрднреВрддрд┐ рд╣реИ?

https://www.merriam-webster.com/dictionary/circle

1 рдмреА: рдПрдХ рдмрдВрдж рд╡рд┐рдорд╛рди (рдкреНрд▓реЗрди рдПрдВрдЯреНрд░реА 6 рд╕реЗрдВрд╕ 2 рдмреА рджреЗрдЦреЗрдВ) рд╡рдХреНрд░ рдЬрд┐рд╕рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рд╡рдХреНрд░ рдХреЗ рднреАрддрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рдВрджреБ рд╕реЗ рд╕рдорд╛рди рджреВрд░реА рдкрд░ рд╣реИ (рд╕рдорддреБрд▓реНрдп рдЕрд░реНрде 1 рджреЗрдЦреЗрдВ)ред
1 рд╕реА : рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рдХреНрд░ рд╕реЗ рдШрд┐рд░рд╛ рд╕рдорддрд▓ рд╕рддрд╣

(1 рдмреА) рдПрдХ рдЧрдгрд┐рддреАрдп рд╡реГрддреНрдд (рдкрд░рд┐рдзрд┐) рд╣реИ, (1 рд╕реА) рдПрдХ рдЧрдгрд┐рддреАрдп рдбрд┐рд╕реНрдХ (рд╕рддрд╣) рд╣реИред

рдПрдкреАрдЖрдИ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдпрд╣ draw_rect(bool filled) рдФрд░ draw_circle(bool filled) рддреБрд▓рдирд╛ рдореЗрдВ draw_rect() , draw_filled_rect() , draw_circle() рдФрд░ draw_disk() рдХреЗ рд▓рд┐рдП IMO рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реИ

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ draw_circle() рдЕрднреА рддрдХ filled рддрд░реНрдХ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдПрдХ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░реНрдХрд▓ (рдкрд░рд┐рдзрд┐) рдФрд░ рдбрд┐рд╕реНрдХ (рднрд░рд╛ рд╣реБрдЖ рд╕рд░реНрдХрд▓) рджреЛрдиреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдЕрдЪреНрдЫрд╛ рдзрдиреНрдпрд╡рд╛рджред рдореЗрд░реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЫрд╛рддреНрд░ рдлреНрд░реЗрдВрдЪ рд╣реИрдВ рдФрд░ рд╡реЗ рд╕рднреА рдЗрд╕рд╕реЗ рднреНрд░рдорд┐рдд рдереЗ, рдФрд░ рдореИрдВ рднреА рдРрд╕рд╛ рд╣реА рдерд╛, рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЧреЛрдбреЛрдЯ рдХреЛ рджреЛрд╖реА рдард╣рд░рд╛рдпрд╛ рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рджреЗ рд╕рдХрддрд╛ рдерд╛ред

рднрд░реЗ рд╣реБрдП рдЖрдпрдд рдХрд╛ рдЧрдгрд┐рддреАрдп рдирд╛рдо рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рд╡рд╛рд▓ рд╣реИ; рдореИрдВ рдХреЗрд╡рд▓ "рдЖрдпрддрд╛рдХрд╛рд░ рдХреНрд╖реЗрддреНрд░" рдпрд╛ "рдЖрдпрдд рдЖрдВрддрд░рд┐рдХ" рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдХреЛрдИ рднреА рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рд╡рд┐рдХрд┐ рдореЗрдВ рдпрд╣ рднреА рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ _рдмрд╣реБрднреБрдЬ_ рд╢рдмреНрдж рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рдмрд╣реБрднреБрдЬ рдХреЗ _рдЖрдВрддрд░рд┐рдХ_ рд╕реЗ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рд╢рдмреНрдж рдкреНрд░рджрд╛рди рдХрд┐рдП рдмрд┐рдирд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ filled рддрд░реНрдХ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рддрдп рдХрд░рдиреЗ рдореЗрдВ рджрд░реНрдж рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рддрд░реНрдХреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдХрд╣рд╛рдВ рд░рдЦрд╛ рдЬрд╛рдПред

@ рдЧреМрдЯреЗ рд▓реЗрдХрд┐рди рдпрд╣ рддрдп рдХрд░рдиреЗ рдореЗрдВ рджрд░реНрдж рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рддрд░реНрдХреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдХрд╣рд╛рдВ рд░рдЦрд╛ рдЬрд╛рдПред

рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рд╣реИ (рдЗрд╕рдХрд╛ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИ), рдФрд░ рд╕рд╛рде рд╣реА рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд▓рд┐рдП draw_rect , рдЗрд╕реЗ рдЕрдВрдд рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдиреЛрдбреНрд╕ рдХреЛ рдореЛрдбрд▓ рдиреЛрдбреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред https://github.com/godotengine/godot/search?q=modal&unscoped_q=modal рдЬреНрдпрд╛рджрд╛рддрд░ Viewport.get_modal_stack_top() рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ

EditorInterface рдХреА get_selected_path рдФрд░ get_current_path рд╡рд┐рдзрд┐рдпрд╛рдВ рдирд╛рдо рдФрд░ рдХрд╛рд░реНрдп рдореЗрдВ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реА рд╣реИрдВред рдЙрдирдХреЗ рдкрд╛рд╕ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд╛ рднреА рдЕрднрд╛рд╡ рд╣реИред

рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдВ рдПрдХ рд╣реА рдирд╛рдо рдХреА FileSystemDock рдХреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХреЗрд╡рд▓ рдПрдХ рдкрддрд▓реА рдкрд░рдд рд╣реИрдВ:

String FileSystemDock::get_selected_path() const {
    if (path.ends_with("/"))
        return path;
    else
        return path.get_base_dir();
}

String FileSystemDock::get_current_path() const {
    return path;
}

рдЙрдиреНрд╣реЗрдВ рдпрд╛ рддреЛ "рдЪрдпрдирд┐рдд" рдпрд╛ "рд╡рд░реНрддрдорд╛рди" (рдпрд╛ рдХреБрдЫ рдФрд░, рд▓реЗрдХрд┐рди рдЙрди рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП) рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдПрдХ get_*_path рдФрд░ рджреВрд╕рд░рд╛ get_*_dir ред

@Goutte рдХреНрдпрд╛ рд╕реЙрд▓рд┐рдб рд░реЗрдХреНрдЯреЗрдВрдЧрд▓ рднрд░реЗ рд╣реБрдП рдЖрдпрдд рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ?

рдХреНрдпрд╛ рдУрдкреА рдХреЛ 2019 рдХреЗ рдЬреВрди рдХреЗ рдмрд╛рдж рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд╕реБрдЭрд╛рд╡реЛрдВ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдХрд╛рдо рдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЯреНрд░реИрдХрд░ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕рд╣реА рд╣реИред рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордп рд╣реИ рдЬрдм рд╣рдо рдФрд░ рд╕рд╛рдорд╛рди рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдУрдкреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рд╣реЛрдЧрд╛ рдХрд┐ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реБрдЭрд╛рд╡ рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рд╕рд╛рд░реНрдердХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@Anutrix "рднрд░рд╛" "рдареЛрд╕" рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рд╢рдмреНрдж рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ "рдареЛрд╕" рдХрд╛ рдЕрд░реНрде "рддрд░рд▓ рдпрд╛ рдЧреИрд╕ рдирд╣реАрдВ" рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@pycbouh рдкреНрд░рддреНрдпреЗрдХ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВ , рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдореИрдВ рдХрд┐рддрдиреА рдмрд╛рд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбреЙрдХреНрдЯрд░ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░реБрдХрддрд╛ рд╣реВрдВ:

  • Array.remove => remove_at (рдЬреИрд╕реЗ C#) рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
  • Array.erase => remove_value , рдпрд╛ рдХреЗрд╡рд▓ remove (рдЬреИрд╕реЗ C#) рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП

(рдпрд╛ рдЗрд╕рдХреЗ рд╡реЗрд░рд┐рдПрдВрдЯ erase )

рдХреНрдпреЛрдВрдХрд┐ рдЕрднреА, erase рдФрд░ remove рдорддрд▓рдм рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╣реИ, рд╕рд┐рд╡рд╛рдп рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ, рджреВрд╕рд░рд╛ рд╡реИрд▓реНрдпреВ рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ, рдореИрдВ рднреВрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреМрди рд╕рд╛ рд╣реИред


рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореЗрд░рд╛ рдмреБрд░рд╛ред рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛, рдЬреАрдердм рдзрд╛рдЧреЗ рдХреЛ рдореЛрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдореЗрд░реА Ctrl + F рдЦреЛрдЬ рдиреЗ рдЗрд╕реЗ рдпрд╛рдж рдХрд┐рдпрд╛ xD
рдЕрднреА рддрдХ рдУрдкреА рдореЗрдВ рдирд╣реАрдВ

@Zylann рдпрд╣рд╛рдБ рдЖрдк рдЬрд╛рдПрдБ :

Zylann рдХреЛ рд╕реЗрдХреЗрдВрдбрд┐рдВрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдпрд╣ рднреВрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ...

ButtonList рдПрдирдо рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ MouseButtonList рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдорд╛рдЙрд╕ рдмрдЯрди рд╣реИрдВред

рдХреНрдпрд╛ JoystickList рдПрдирдо рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЗрд╕рдореЗрдВ рдмрдЯрди рдФрд░ рдХреБрд▓реНрд╣рд╛рдбрд╝реА рджреЛрдиреЛрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдпрд╣ JoypadButtonList рдФрд░ JoypadAxisList рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдмрд╕ рдПрдХ рд╕рд╡рд╛рд▓, рдХреНрдпреЛрдВ рдирд╣реАрдВ MouseButton ?
рдЕрдЧрд░ рдмрдЯрди == рдорд╛рдЙрд╕рдмрдЯрдиред рдмрд╛рдПрдВ:
рд╕реЗ рдЕрдЪреНрдЫрд╛ рдкрдврд╝рддрд╛ рд╣реИ
рдЕрдЧрд░ рдмрдЯрди == рдорд╛рдЙрд╕рдмрдЯрди рд╕реВрдЪреАред рдмрд╛рдПрдВ:

рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, KeyList -> Key , MidiMessageList -> MidiMessage , рдФрд░ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рд╡рд╛рд▓реЗ рдХреЛ List рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ .

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреБрдЫ рд╡рд┐рдзрд┐рдпрд╛рдВ/рдЧреБрдг normal_map рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп normalmap ред рд╣рдореЗрдВ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдкрд░ рд╕рдордЭреМрддрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рджреЛрдиреЛрдВ рдкрд░ рдирд╣реАрдВред рдореИрдВ normal_map рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ normalmap рднреА рдареАрдХ рд╣реВрдВред

рдЬреАрдбреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ

рд░реЗрдВрдЬ_рд▓реЗрд░рдк () = рдирдХреНрд╢рд╛ ()
рдмреАрдЬ = set_seed ()

map() рд╢рд╛рдпрдж рдирдИ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╣реИред

Vector2.tangent() рдХреЛ рдбреЙрдХреНрд╕ рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: Returns a perpendicular vector. , рдпрд╣ orthogonal рдпрд╛ orthonormal рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ рдпрджрд┐ рд▓реМрдЯрд╛рдП рдЧрдП рд╡реЗрдХреНрдЯрд░ рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ Vector2.tangent() рдПрдХ рдЧреИрд░-рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╡реЗрдХреНрдЯрд░ рджреЗрддрд╛ рд╣реИ, рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ Vector2.orthogonal() рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ Vector2.perpendicular() рдпрджрд┐ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдЧрдгрд┐рдд рдирд╛рдордХрд░рдг рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреБрдЫ рд╣реИ рдпрд╛ рд╢рд╛рдпрдж Vector2.normal() , рд▓реЗрдХрд┐рди рд▓реЛрдЧ normalized() рдФрд░ normal() рдмреАрдЪ рднреНрд░рдорд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ

рдореЗрд░реА рдУрд░ рд╕реЗ рдЙрдкрд╛рдЦреНрдпрд╛рди, рд▓реЗрдХрд┐рди рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕рдХреА рддрд▓рд╛рд╢ рдореЗрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдореЗрд░реА рдкрд╣рд▓реА рдЦреЛрдЬреЗрдВ _perpendicular_ рдХреЗ рд▓рд┐рдП рдереАрдВред

рдЖрдк .tangent() рдХреЛ .perpendicular() рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рдЙрдкрдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдирд╣реАрдВ?

рдореБрдЭреЗ orthogonal рдирд╛рдо рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрдВрдЧреНрд░реЗрдЬреА рд╢рдмреНрдж рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдкрд╣рд▓реЗ tangent рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ perpendicular рд╡реИрд╕реЗ рднреА рдПрдХ рдмреЗрд╣рддрд░ рдирд╛рдо рд╣реИред

рд╣рд╛рдБ, рдУрд░реНрдереЛрдЧреЛрдирд▓ рджреБрд░реНрд▓рдн рд╣реИред рдореИрдВ .perpendicular() рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╕рд╛рде рд╕рдВрдЧрдд рдХреЗ рд▓рд┐рдП рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛() рдЙрдкрдирд╛рдо рд░рдЦрддреЗ рд╣реБрдП, рдпрд╣ рдЫреЛрдЯрд╛ рд╣реИред

@ Zireael07 рдореИрдВ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рддрд░реАрдХрд╛ рд╣реЛред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рд╣реИред

рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреА рдкреНрд░реЛрдЬреЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд┐рддрдиреА рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ :)

рдореБрдЭреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдереА рдХрд┐ рдпрд╣ рдПрдХ рдмрд╣рд╕ рдкреИрджрд╛ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ Vector2.tangent() рд░рдЦрдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдЧрдгрд┐рдд рд╢рдмреНрдж рдХрд╛ рдЧрд▓рдд рдЙрдкрдпреЛрдЧ рд╣реИред Vector2.tangent() рдХрд╛ рдЙрддреНрдкрд╛рдж рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЧрд▓рдд рд╣реИред рдЗрд╕ рдзрд╛рдЧреЗ рдХрд╛ рдирд╛рдо рдЕрдЧрд▓реА рдирд┐рдпреЛрдЬрд┐рдд рд╕рдВрдЧрддрддрд╛ рдЯреВрдЯрдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рдХрд┐ рд╣рдореЗрдВ рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЫреЗ рдХреА рдУрд░ рдЭреБрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ Vector2.perpendicular() рд╕рд╛рде рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдареАрдХ рд╣реВрдВред

рд╕реБрдЭрд╛рд╡: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ find_node() рдХреЗ owner рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЧрд▓рдд рдмрдирд╛рдПрдВред

рд╕реБрдЭрд╛рд╡: Tree рдХреЗ рддрд░реАрдХреЛрдВ/рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ рддрд╛рдХрд┐ "рдЪрдпрдирд┐рдд", "рдХреЗрдВрджреНрд░рд┐рдд" рдФрд░ "рдХреБрдЫ рдирд╣реАрдВ" рдХреА рд╢рд░реНрддреЛрдВ/рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХрдо рднреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Tree::ensure_cursor_is_visible рднреНрд░рд╛рдордХ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ ensure_focused_item_visible рдпрд╛ ensure_selected_item_visible рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╡рд░реНрдЧ рд╕рдВрджрд░реНрдн рднреА рдХрд╣рддрд╛ рд╣реИ:

Makes the currently focused cell visible.

This will scroll the tree if necessary. In SELECT_ROW mode, this will not do horizontal scrolling, as all the cells in the selected row is focused logically.

Note: Despite the name of this method, the focus cursor itself is only visible in SELECT_MULTI mode.

Script::get_instance_base_type() рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореВрд▓ рдкреНрд░рдХрд╛рд░ рдХреЛ рдиреАрдЪреЗ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЕрдм рдЬрдм рд╣рдордиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЛ рдирд╛рдо рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ get_native_type() рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ "рдмреЗрд╕" рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рднреНрд░рд╛рдордХ рд╣реИред

@aaronfranke рдЦреИрд░, get_class() рдпрд╣ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд░реВрдк рд╕реЗ "рдЬрд┐рд╕ рдЪреАрдЬрд╝ рдХреЛ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕рдХрд╛ рдирд╛рдо рдХреНрдпрд╛ рд╣реИ?" рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, Script рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ "GDScript" , "CSharpScript" , рдпрд╛ рдЙрд╕ рдкреНрд░рдХреГрддрд┐ рдХрд╛ рдХреБрдЫ рд╡рд╛рдкрд╕ рдкрд╛рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░реВрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рд╣рд╛рдВ, рдЧреИрд░- Script рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдпрд╣ рдПрдХ рдРрд╕реА рд╡рд┐рдзрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рд▓реМрдЯрд╛рдП рдпрджрд┐ рдЗрд╕рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдореБрджреНрджрд╛ рднреА рд╣реИред https://github.com/godotengine/godot/issues/21789#issuecomment -618588900

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдУрд╣, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ get_class() , get_base_class() , рдФрд░ get_native_class() , рддреЛ рдЖрдкрдХреЛ get_instance_base_type() рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ get_instance_native_class() рд╣реИ рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрдЬрд╛рдп рдЙрджрд╛рд╣рд░рдг рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ autotile_coord (рдЧреБрдгреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ) рдХреЗ TileMap рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ tile_coord рдпрд╛ tile_coordinate рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ AUTO_TILE рдФрд░ ATLAS_TILE рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдирд╛рдо рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдбреЙрдХреНрд╕ рдХреЛ рднреА рдЕрдкрдбреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЕрдЧрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рдореИрдВ рдпрд╣ рдмрджрд▓рд╛рд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

new_text рддрд░реНрдХ рдХреЛ LineEdit.text_changed рд╕реЗ рд╣рдЯрд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ LineEdit.text рдЬреИрд╕рд╛ рд╣реА рд╣реИред

рд╕рд╛рде рд╣реА old_text рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдпрд╛ рддреЛ new_text рдЕрддрд┐рд░рд┐рдХреНрдд рдпрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВред

https://github.com/godotengine/godot/issues/16863#issuecomment -394745886 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд

"рдЯрдХрд░рд╛рд╡ рдХреА рдкрд░рддреЗрдВ ", "рд╡рд┐рдЬреБрдЕрд▓ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд▓реЗрдпрд░реНрд╕ ", "рд░реЗрдВрдбрд░ рд▓реЗрдпрд░ ", ect рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ
"рдЯрдХрд░рд╛рд╡ рд╕рдореВрд╣ ", "рд╡рд┐рдЬреБрдЕрд▓ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕рдореВрд╣ ", " рд╕рдореВрд╣ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ", "рдкреНрд░рдХрд╛рд╢ рд╕рдореВрд╣ "

рд╡реЗ "рд▓реЗрдпрд░реНрд╕" рд╕реНрдЯреИрдХрд┐рдВрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рднреНрд░рдо рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдЪреИрдирд▓реЛрдВ рдкрд░ рдорд┐рдирдЯ рдХреА рдШрдбрд╝реА рдХреА рддрд░рд╣ рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдорд╛рдпрд╛, рд▓рдВрдмрд░рдпрд╛рд░реНрдб рдФрд░ рдПрдХрддрд╛ рдореЗрдВ рдкрд░рддреЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдХреЛрдИ рдФрд░ рдХреБрдЫ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ
рднреНрд░рдо рдФрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рд╕реЛрдо, рдордИ 18, 2020 рдкрд░, 1:09 PM рдкрд░ Jummit [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдорд╛рдпрд╛, рд▓рдВрдмрд░рдпрд╛рд░реНрдб рдФрд░ рдПрдХрддрд╛ рдореЗрдВ рдкрд░рддреЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/godotengine/godot/issues/16863#issuecomment-630349336 ,
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ABBEIS43HMTPCIFY4GYYK3LRSF2UTANCNFSM4ERRCEZA
.

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрднреА рддрдХ рдХрд┐рд╕реА рдиреЗ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ
Camera2D.zoom
рдЬрд╝реВрдо рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдкрд░ рдХреИрдорд░рд╛ рдЬрд╝реВрдо рдЖрдЙрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдЬрд╝реВрдо" рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдЙрдВрдЯрд░-рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдирд╛рдо рдХреНрдпрд╛ рд╣реИ, рд╢рд╛рдпрдж view_scale рдпрд╛ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ред

@KoBeWi рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп zoom , рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдкреИрдорд╛рдиреЗ рдХреЛ рдЙрд▓реНрдЯрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЬрдм рдЖрдк рдореВрд▓реНрдп рдмрдврд╝рд╛рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЬрд╝реВрдо рдЗрди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ?

рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рддрд░рд╣ рд╣реА рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛ред рдЕрдЧрд░ рд╣рдо "рдЗрдирд╡рд░реНрдЯ рд╕реНрдХреЗрд▓" рд░реВрдЯ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдореЗрдВ рдХрдо рднреНрд░рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@Calinou @KoBeWi рдХреНрдпрд╛ рдЗрд╕ рдЬрд╝реВрдо рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рд╣рд░ рдХрд┐рд╕реА рдХреЛ рд╕реНрдХреЗрд▓ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╣рд░ рдмрд╛рд░ рдЙрд▓рдЯрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛?

Viewport.get_final_transform() => Viewport.get_final_transform_2d() ?

Viewport.get_final_transform() => Viewport.get_final_transform_2d() ?

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рд░реЗрдЦрд╛ рдХрд╣рд╛рдБ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ рдФрд░ Node2D.get_position_2d() рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬрд╝?

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо Viewport2D рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рд╣рдо Viewport3D рдирд╣реАрдВ рдмрдирд╛рддреЗ, рддрдм рддрдХ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

@nathanfranke рдореИрдВрдиреЗ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдХреЗрд▓реЗ рдирд╛рдо рдореЗрдВ рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ 2D рдпрд╛ 3D рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ 2 рдкреНрд░рдХрд╛рд░ рдХреЗ Transform ред (рдЬрдмрдХрд┐ рдЕрдиреНрдп рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рдкрд╛рд╕ canvas_ рдпрд╛ mouse_ рдкрд╣рд▓реЗ рд╕реЗ рд╣реИ)

@Zylann рдпрд╣ рд╡рд┐рдзрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЬреАрдм рд╣реИред canvas_transform рдФрд░ global_canvas_transform рдирд╛рдордХ рдЧреБрдг рд╣реИрдВ, рдФрд░ canvas_transform рдХрд╛ рд╡рд┐рд╡рд░рдг рдпрд╣ рд╣реИ:

рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХрд╛ рдХреИрдирд╡рд╛рд╕ рд░реВрдкрд╛рдВрддрд░рдг, рд╕рднреА рдЪрд╛рдЗрд▓реНрдб рдХреИрдирд╡рд╛рд╕ рдЖрдЗрдЯрдореНрд╕ рдХреА рдСрди-рд╕реНрдХреНрд░реАрди рд╕реНрдерд┐рддрд┐ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдпрд╣ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдХреИрдирд╡рд╛рд╕ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИред

рддреЛ, рдЖрдк рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ get_final_transform рдЗрди рджреЛрдиреЛрдВ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЛ рд╕рдВрдпреБрдХреНрдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдб return stretch_transform * global_canvas_transform; ред рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ stretch_transform рдХреНрдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛, рдпрд╣ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдФрд░ canvas_transform рдмрджрд▓рддреЗ рд╕рдордп рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИред _stretch_transform рдирд╛рдордХ рдПрдХ рд╡рд┐рдзрд┐ рднреА рд╣реИ рдЬреЛ stretch_transform рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдЗрд╕реЗ set_size рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ _stretch_transform рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдорд╛рди рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ stretch_transform рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИред canvas_transform_override рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреВрд░реА рдХрдХреНрд╖рд╛ рдХреЛ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реНрдпреВрдкреЛрд░реНрдЯ рдореЗрдВ 4 рдЕрд▓рдЧ-рдЕрд▓рдЧ Transform2D рд╕рджрд╕реНрдп, 4 Rect2 (i) рд╕рджрд╕реНрдп, 9 рд╡реЗрдХреНрдЯрд░2 (i) рд╕рджрд╕реНрдп рдФрд░ 2 рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо (3D) рд╕рджрд╕реНрдп рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╕рднреА рдкреЙрдЗрдВрдЯрд░реНрд╕ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕рдВрднрд╡рддрдГ 1 рдХреЗрдмреА рдХреЗ рдХрд░реАрдм рд╣реИ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 264 рдмрд╛рдЗрдЯреНрд╕ (рдПрдХрд▓-рд╕рдЯреАрдХ рдлрд╝реНрд▓реЛрдЯреНрд╕ рдХреЗ рд╕рд╛рде) рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХреЛ рдЗрд╕ рд╕рдм рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрдЯрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдХрдо рд╕реЗ рдХрдо рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╣реИрдВ)ред

рдХреНрдпрд╛ Node2D/Node3D to_global рдФрд░ to_local рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореИрдВрдиреЗ #38902 рдкрд░ рдлреАрдбрдмреИрдХ рджрд┐рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдЙрди рддрд░реАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдерд╛ рдЬреЛ рдХреЗрд╡рд▓ рдЖрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрдирдХреЗ рд╕рд╛рде рдХреБрдЫ рдореБрджреНрджреЗ рд╣реИрдВред

рдбреЗрдореЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, to_local рдХрд╛ рдХрд╣реАрдВ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ $ grep -RIn "to_global" рдХреЗрд╡рд▓ 5 рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╕рднреА 3D рдбреЗрдореЛ рдореЗрдВ GUI рдореЗрдВ рд╣реИрдВ, рдФрд░ рдбреЗрдореЛ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрджрд▓рдХрд░ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╣ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╢ рд╡реИрд╢реНрд╡рд┐рдХ рдмрджрд▓рдиреЗ рдФрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ xform рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп to_global ред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдЕрд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рднреА рдХрд┐ рд╡реЗ рд▓реЗрдЦрди рдХреЛрдб рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЦрд░рд╛рдм рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдИ рдмрд╛рд░ рд╡реИрд╢реНрд╡рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред

27509

AnimationPlayer рдХреЗ animation_started рдФрд░ animation_finished рдереЛрдбрд╝реЗ рдкреНрд░рддрд┐-рд╕рд╣рдЬ рд╣реИрдВред рдкрд╣рд▓реЗ рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рд╕рднреА рдПрдирд┐рдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ рдХреЗрд╡рд▓ рдХрддрд╛рд░ рдХреЗ рдмрд╣реБрдд рдЕрдВрдд рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рд╣реА рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдЗрд╕рдХрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдпрджрд┐ рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдПрдиреАрдореЗрд╢рди рдХрдм рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ animation_changed рдФрд░ animation_finished рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рдореБрджреНрджреЗ рд╕реЗ @txiрдЧреНрд░реЗрдореИрди рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ: рдЬрдм рднреА рдХрддрд╛рд░ рдореЗрдВ рдХреЛрдИ рдПрдХ рдПрдиреАрдореЗрд╢рди рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рддреЛ рд╣рдо animation_finished рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдирдпрд╛ рд╕рд┐рдЧреНрдирд▓ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ animation_all_finished ( Tween ) s tween_all_completed ) рдЬреЛ рдХреЗрд╡рд▓ рддрднреА рд╕рдХреНрд░рд┐рдп рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╣рдо рдХрддрд╛рд░ рдХреЗ рдЕрдВрдд рддрдХ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВред

animation_queue_finished рдФрд░/рдпрд╛ animation_queue_started рдХреНрдпрд╛?

рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдирд╣реАрдВ рдвреВрдБрдв рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦреВрдБрдЧрд╛,
find рдФрд░ findn рдЬреЛрдбрд╝реАред

image
3.2 рдкрд┐рдЫрд▓реЗ рд╕реНрдерд┐рд░ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдЫрд╡рд┐ред

рдХреЗрд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓рддрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЙрдирдХреА рдкреНрд░рдХреГрддрд┐ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рд╣рдо рдПрдХ рдХрд╛ рдирд╛рдо рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд╣реЗрдВ, find_ignorecase рдмрдЬрд╛рдп findn ?

@swarnimarun рд╣рдорд╛рд░реЗ рдкрд╛рд╕ n рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХрдИ рдЕрдиреНрдп рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХрд╛ рдирд╛рдо рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЙрди рд╕рднреА рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпреЗ рддрд░реАрдХреЗ ( find / findn рдЖрджрд┐) рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╣реА рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рддрд░реНрдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╕ рд╕рдВрд╡реЗрджреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред

@Calinou рдореИрдВ рдЗрд╕реЗ рдмрд╣реБрдд рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж GDScript рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рдореИрдВ рдХрд╣реВрдВрдЧрд╛,

рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ, рдЙрддрдирд╛ рдЕрдЪреНрдЫрд╛ред рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрдард┐рди рд╣реИ, рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд╛рдордХрд░рдг рдореЗрдВ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рд╡рд╛рдЪрд╛рд▓рддрд╛ рдПрдХ рд╕рдордЭрджрд╛рд░ рдмрджрд▓рд╛рд╡ рдХреА рддрд░рд╣ рд▓рдЧрддреА рд╣реИред

@KoBeWi рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдХреЗ рд╕рд╛рде рдпрд╣ рдмрддрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝реАрд▓реНрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдХреЛрдб рдкрдврд╝рдиреЗ рдХреЗ рджреМрд░рд╛рди рдпрд╛рдж рд░рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ (рдПрдкреАрдЖрдИ рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рднреВрд▓рдиреЗ/рдирд╣реАрдВ рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж) рдХреА рдХрд╛рдлреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред

рддреЛ рдореИрдВ рдЕрднреА рднреА рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рднрд▓реЗ рд╣реА рджреВрд╕рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реНрдХреЛрдВ рдпрд╛ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░реЗред

EditorInterface.get_editor_viewport() => get_editor_main_container()

рдпрд╣ рдлрд╝рдВрдХреНрд╢рди Viewport рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ Control рдЬреЛ 2D, 3D, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдкрд╛рджрдХреЛрдВ рдФрд░ рдПрд╕реЗрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд░рдЦрдиреЗ рд╡рд╛рд▓рд╛ рдХреЗрдВрджреНрд░реАрдп рд╣реЛрддрд╛ рд╣реИред рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдиреЛрдб рдПрдХ VBoxContainer* , рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдлрд┐рд░ рднреА рдпрд╣ рдЬрд╛рдирдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдкрд╕рдВрдж рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ)ред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рднреА рдЧрд▓рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рд╡рд┐рд╡рд░рдг Viewport рд╡рд░реНрдЧ рд╕реЗ рд▓рд┐рдВрдХ рд╣реИред https://docs.godotengine.org/hi/stable/classes/class_editorinterface.html#class -editorinterface-method-get-editor-viewport

@Zylann get_editor_main_screen() рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдХрдВрдЯреЗрдирд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рд╣реИ ред

@aaronfranke рдЬреЛ рдПрдХ Container рдиреЛрдб рднреА рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ^^ рд▓реЗрдХрд┐рди рд╣рд╛рдБ ... рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ

200528-1

рдореИрдВ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ?

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдКрдкрд░ (https://github.com/godotengine/godot/issues/16863#issuecomment-557657413) рдореИрдВрдиреЗ JSON.print рдкрджреНрдзрддрд┐ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦрд╛ред рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╕реБрдЭрд╛рдП рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджрд┐рдпрд╛ред

рдореБрдЭреЗ рдмрд╕ рдЗрд╕ рдмрд╛рдд рдХреА рдЪрд┐рдВрддрд╛ рд╣реИ рдХрд┐ рдЗрддрдиреА рд╕рд╛рд░реА рдкреЛрд╕реНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдЪрд╛рд░ рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВред :рдореБрд╕реНрдХреБрд░рд╛рдУ:

@dalexeev рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рддрдХ рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдирд╣реАрдВ

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реИ рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ RichTextLabel рдореЗрдВ рдХреБрдЫ рдмрдЧ рдареАрдХ рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ bbcode_text рдФрд░ text , рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдмреБрд▓рд╛рдП рдЧрдП рддрд░реАрдХреЗ рдЕрд▓рдЧ рд╣реИрдВ, рдЬрдмрдХрд┐ set_bbcode set_text рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм use_bbcode рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЖрдЧреЗ рдмрдврд╝рдХрд░ рдЙрдиреНрд╣реЗрдВ #39148 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдХреБрдЫ рдФрд░ рдмрд┐рдВрджреБ рдЬреЛрдбрд╝реЗред

рдиреЛрдб рдореЗрдВ GetSceneInstanceLoadPlaceholder() рдмрд╣реБрдд рдЧрд▓рдд рджрд┐рдЦрддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рдпрд╣ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдмреВрд▓ рдФрд░ рджреВрд╕рд░рд╛ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд┐рд╡рд░рдг рд▓реАрдХ рдХрд░рддрд╛ рд╣реИ (рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдиреЛрдб рдХрд╛ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрднрд╡ рд╣реИ)

RayShape тЖТ SeparationRayShape , рдЬреИрд╕рд╛ рдХрд┐ рд╢реБрд░реБрдЖрдд рдореЗрдВ godotengine/godot-proposals#711 рдореЗрдВ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

sort_custom рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ sort рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ?

рдХреНрдпрд╛ рд╣рдореЗрдВ OS.get_ticks_msec() рдФрд░ OS.delay_msec() рдХреЛ рдХреНрд░рдорд╢рдГ OS.get_ticks_usec() рдФрд░ OS.delay_usec() рдкрдХреНрд╖ рдореЗрдВ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╣ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реЛрдиреЗ рд╕реЗ рдмрдЪ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рдорд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЧреБрдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕реЗ 1000 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рд╛рде рд╣реА, GDScript рдФрд░ C++ рджреЛрдиреЛрдВ рд╣реА рдкреВрд░реНрдгрд╛рдВрдХ рдЕрдХреНрд╖рд░ рдореЗрдВ рд╡рд┐рднрд╛рдЬрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдмрдбрд╝реЗ рдорд╛рдиреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдкрдардиреАрдп рдмрдирд╛рддрд╛ рд╣реИред

# Since Godot 3.2.
OS.delay_usec(123_456_789)
// Since C++14.
OS::get_singleton()->delay_usec(123'456'789);

рд╕рд╛рде рд╣реА, GDScript рдФрд░ C++ рджреЛрдиреЛрдВ рд╣реА рдкреВрд░реНрдгрд╛рдВрдХ рдЕрдХреНрд╖рд░ рдореЗрдВ рд╡рд┐рднрд╛рдЬрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдмрдбрд╝реЗ рдорд╛рдиреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдкрдардиреАрдп рдмрдирд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдирд┐рд╖реНрдХрд╛рд╕рди рд╣реЛрддрд╛ рд╣реИ, рддреЛ get_ticks_usec() рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╡рд┐рднрд╛рдЬрдХреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@Calinou рдПрдХ рддрд░рдл, рдЖрдк рд╕рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рддрд░рдл - рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЗрддрдиреА рдмрдбрд╝реА рд╕рдЯреАрдХрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╕реНрдерд╛рдирд┐рдХ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ 'рдЕрд▓реНрдлрд╛ рдХреИрдВрдЪреА' рдорд╛рдирдХ 'рдЕрд▓реНрдлрд╛ рдХреНрд▓рд┐рдк' рдмрдирдирд╛ рдЪрд╛рд╣рд┐рдП

@Flavelius рдореИрдВрдиреЗ рдЕрдХреНрд╕рд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ "рдЕрд▓реНрдлрд╛ рдХреНрд▓рд┐рдк" рд╢рдмреНрдж рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ "рдЕрд▓реНрдлрд╛ рдЯреЗрд╕реНрдЯ" рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ "рдЕрд▓реНрдлрд╛ рдХреНрд▓рд┐рдк" рдФрд░ "рдЕрд▓реНрдлрд╛ рдХреИрдВрдЪреА" рджреЛрдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рд╣реИрдВ! рдХреНрдпрд╛ рдХреЛрдИ рдЗрди рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ?

@MCrafterzz рд▓реЛрдЧ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЪреАрдЬреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЦреЛрд▓рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдХреЗ рдмрдЬрд╛рдп рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдмрдирд╛рд╡рдЯ (Texture2D) рдФрд░ рдЫрд╡рд┐

  • рдмрдирд╛рд╡рдЯ рдореЗрдВ get_data() (Texture2D) рдХреЛ get_image() рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЫрд╡рд┐ рдореЗрдВ get_data() рдХреЛ рд╕реНрд╡-рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП get_bytes() рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдИрдПрдордУ: get_image рд╣рд╛рдБ, get_bytes рдирд╣реАрдВред

texture.get_image().get_data()

рдореЗрд╢ / рдореЗрд╢ рдЗрдВрд╕реНрдЯреЗрдВрд╕

  • рдореЗрд╖ рдореЗрдВ рдЖрдк рдЙрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд/рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:
    surface_get_material/surface_set_material
  • MeshInstance рдореЗрдВ рдЖрдк рдЙрди рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд/рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:
    get_surface_material/set_surface_material

рдпрд╣ рд╡рд╣реА рдирд╛рдордХрд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ?

@Coldragon рдпрд╣ get_surface_material / set_surface_material рдФрд░ surface_material рд╕рдВрдкрддреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

@Coldragon рдпрд╣ get_surface_material / set_surface_material рдФрд░ surface_material рд╕рдВрдкрддреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдпрд╣ "рд╕рд╛рдорд╛рдиреНрдп" рд╕реЗрдЯ/рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдЙрдирдХреЗ рдкрд╛рд╕ рд▓рдХреНрд╖реНрдп рд╕рддрд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╣реИ (рдпрд╣ рдореЗрд╖ рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ)

Array рд╣рдореЗрдВ empty() рд╕реЗ is_empty() рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рдмреВрд▓рд┐рдпрди рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рдХрд░ рд╕рдХреЗ

String рд╣рдореЗрдВ find_last() рдХреЛ rfind() рдкрдХреНрд╖ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдирд╛рдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдирд╛рдо рд░рдЦрдирд╛ рд╣реИред

рдПрдХрд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ stepify ред рд╡реЗрдХреНрдЯрд░ 2/рд╡реЗрдХреНрдЯрд░ 3 рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ snapped ред

рд╡реЗ рд╡рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗрдХреНрдЯрд░ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП stepify рд╣реИрдВред рдПрдХ рдирд╛рдо рдЪреБрдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреМрди рд╕рд╛?

рдкреЛрд▓: :рджрд┐рд▓: = рджреЛрдиреЛрдВ stepify рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, :рд░реЙрдХреЗрдЯ: = рджреЛрдиреЛрдВ snapped рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, :-1: = рдирд╛рдо рди рдмрджрд▓реЗрдВред

AABB рдореЗрдВ intersection , рдЬрдмрдХрд┐ Rect2 рдореЗрдВ clip ред рд╡реЗ рд╡рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдирд╛рдо рдЪреБрдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреМрди рд╕рд╛?

рдкреЛрд▓: :рджрд┐рд▓: = рджреЛрдиреЛрдВ intersection рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, :рд░реЙрдХреЗрдЯ: = рджреЛрдиреЛрдВ clip рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, :-1: = рдирд╛рдо рди рдмрджрд▓реЗрдВред

@aaronfranke рд╣рд╛рдБ, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ https://github.com/godotengine/godot/issues/16863#issuecomment -449628319 рдореЗрдВ intersection рдирд╛рдо рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛ред рд╣рдо рддреЛ рд╣реИ intersects рдЬреЛ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ overlaps рдореЗрдВ Rect2 , рд▓реЗрдХрд┐рди рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ AABB рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ intersects тЖТ overlaps рдирд╛рдо рдмрджрд▓реЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ find_node рдФрд░/рдпрд╛ get_node рдХрд╛ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдирд╛рдо рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ 2 рдХреЗ рдмреАрдЪ рдмрд┐рд▓реНрдХреБрд▓ рдЕрдВрддрд░ рдХрд░рддреЗ рд╣реИрдВред
рдЪреВрдБрдХрд┐ find_node рдХреЗрд╡рд▓ рдмрдЪреНрдЪреЛрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ, рд╢рд╛рдпрдж find_child_node?
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ get_node рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд╛рдо рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ get_tree_node рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреЗрдбрд╝ рдореЗрдВ рдХрд╣реАрдВ рд╕реЗ рднреА рдиреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рджреГрд╢реНрдп рдкреЗрдбрд╝ рдХреЗ рдмрд╛рд╣рд░ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХреЗ рд╕рд╛рде рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ get_node рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди find_node рдХрд╛ рдирд╛рдо рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ find_child

@MuffinManKen рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ get_node рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдХрд╣рд╛ рдерд╛, рдпрд╣ рдХрд┐рд╕реА рднреА рдиреЛрдб рдХреЛ рдХрд╣реАрдВ рднреА рд▓рд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЙрд╕реА рдкреЗрдбрд╝ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдЬреЛ рджрд┐рдП рдЧрдП рдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ, рднрд▓реЗ рд╣реА рд╡реЗ рдЗрд╕рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдВ рдпрд╛ рдирд╣реАрдВ рд╕реАрдирдЯреНрд░реА рдпрд╛ рдирд╣реАрдВред

@Coldragon рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ find_node рд╕реЗ find_child рдирд╛рдо рдмрджрд▓рдирд╛ рдкрд╕рдВрдж рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдпрд╣ рдЖрднрд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдХреЗрд╡рд▓ рд╕реАрдзреЗ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдХрд▓реНрдк рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕реЗ find_descendant рдпрд╛ рдХреБрдЫ рдФрд░ рдХрд╣рд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЪрд┐рдВрддрд╛рдЬрдирдХ/рдЬрдЯрд┐рд▓ рд╣реИред рдЗрд╕реЗ рдХреЗрд╡рд▓ find() рднреА рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рддрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рддрдХ рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдорд╛рдВрдЧрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рддрдХ find_node рд╡реИрд╕реЗ рд╣реА рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕рд╛ рд╡рд╣ рд╣реИред рдЗрд╕рдореЗрдВ рдПрдкреАрдЖрдИ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЕрдВрддрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЧреЛрдбреЛрдЯ 3.1 рдореЗрдВ, рдореИрдВ рдЬреЛрдбрд╝рд╛ рдПрдХ standalone рд╕реБрд╡рд┐рдзрд╛ рдЯреИрдЧ рдЬреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ true рдЬрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рдирд┐рд░реНрдпрд╛рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрд╛рдЗрдирд░реА (рдбрд┐рдмрдЧ рдпрд╛ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐) рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд editor , рдЬреЛ true рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ рдЬрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдХ рд╕рдВрдкрд╛рджрдХ рдмрд╛рдЗрдирд░реА рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдордп рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ standalone рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП runner рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдЫреЛрдЯрд╛ рд╣реИ рдФрд░ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдЖрддреНрдо рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХред рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?

exported рдпрд╛ release рдХреНрдпрд╛?

@aaronfranke exported рдЕрд░реНрде рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдпрд╛рдд рдХреА рдЧрдИ рд╣реИ, рдЬреЛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред рдЖрдк рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕реАрдзреЗ рдЙрд╕рдХреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдпрд╛рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрд╛рдЗрдирд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдЖрдпрд╛рдд рдХреА рдЧрдИ рдереАред

рд╕рд╛рде рд╣реА, release рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░рд┐рд▓реАрдЬрд╝-рдореЛрдб рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ( debug рд╡рд┐рдкрд░реАрдд, рдЬреЛ рдбрд┐рдмрдЧ-рдореЛрдб рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

runner рдореБрдЭреЗ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд▓рдЧрддрд╛ред standalone рдареАрдХ рд╣реИред рдЗрд╕реЗ рд╣рдЯрд╛рдирд╛ рднреА рдареАрдХ рд░рд╣реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХреЗрд╡рд▓ !OS.get_feature("editor") рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕реЗ рд╣рдЯрд╛рдирд╛ рднреА рдареАрдХ рд░рд╣реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХреЗрд╡рд▓ !OS.get_feature("editor") рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдВ рдХреЛрдИ .not рдЪрдпрдирдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧ рдФрд░ рдЗрд╕рдХреЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╕реНрд╡реИрдк рдХрд░рдХреЗ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИред

рдХреНрдпреЛрдВ рдирд╣реАрдВ app рдпрд╛ game рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдкрд░реАрдд рдХреЗ рд░реВрдк рдореЗрдВ editor рддреЛ? рдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рдФрд░ рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛? рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП no-editor рд▓рд┐рдП рдПрдХ рдлреАрдЪрд░ рдзреНрд╡рдЬ рд╣реИ?

@willnationsdev game рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рдЧреЛрдбреЛрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЦреЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЧреИрд░-рдЧреЗрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЧреЛрдбреЛрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдПрдХ рдЕрдзрд┐рдХ рд╕рдорд╛рд╡реЗрд╢реА рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ :slightly_smiling_face:

рд╕рд╛рде рд╣реА, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрддреНрдо-рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИ: рд▓реЛрдЧ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рд╕рдВрдкрд╛рджрдХ рд╕реЗ рдЪрд▓ рд░рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ (рдЖрдк рд╕рдВрдкрд╛рджрдХ рд╕реЗ "рдЧреЗрдо" рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ)ред рд╡рд╣реА app ред

"рд╕реНрд╡рддрдВрддреНрд░" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рд╢рдирд┐рд╡рд╛рд░, 25 рдЬреБрд▓рд╛рдИ, 2020, 5:49 рдмрдЬреЗ рд╣реНрдпреВрдЧреЛ рд▓реЛрдХреБрд░рд╕рд┐рдпреЛ, рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@willnationsdev https://github.com/willnationsdev рдЧреЗрдо рдХрд╛ рдорддрд▓рдм рд╣реИ рдЧреЛрдбреЛрдЯ
рдХреЗрд╡рд▓ рдЦреЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рд╛рдмрд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрддреНрдо-рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИ: рд▓реЛрдЧ рдЗрд╕реЗ рдЕрднреА рднреА рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ
рд╕рдВрдкрд╛рджрдХ рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рд╡рд╣реА рдРрдк рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/godotengine/godot/issues/16863#issuecomment-663835822 ,
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AFMN5DM5U3KLXVUVIC2OGHTR5KTDXANCNFSM4ERRCEZA
.

@MuffinManKen independent рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрддреНрдо-рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрдХ рдмрдирд╛рдо рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рд╢рд╛рдпрдж рдорд╛рдирдХ рдирд╛рдордХрд░рдг рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдПрдХ рдореИрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдВрдЬрдиреЛрдВ рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ) рдЗрд╕рд▓рд┐рдП рдкрд╣рд┐рдпрд╛ рдЗрдореНрд╣реЛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред

Get_node рд╡рдВрд╢рдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╣реА рд╣реЛрдЧрд╛
рднреНрд░рд╛рдордХ рдирд╛рдоред 2 рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдмрд╣реБрдд рдЕрд▓рдЧ рдирд╛рдореЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХреНрдпрд╛ рд╣реИрдВ
рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИред

рд╢рдирд┐рд╡рд╛рд░, 25 рдЬреБрд▓рд╛рдИ, 2020, рджреЛрдкрд╣рд░ 3:14 рдмрдЬреЗ рдЧреЛрд▓реНрдбрдбреЙрдЯреНрд╕рдкреНрд░рд╢реНрди, <
рд╕реВрдЪрдирд╛рдПрдВ@github.com> рдиреЗ рд▓рд┐рдЦрд╛:

рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЙрд▓рдЭрди рдореЗрдВ рдерд╛
find_node рдФрд░ get_node. рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ find_descendant рдкрд╕рдВрдж рд╣реИ рдФрд░
get_descendant, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╕рддреНрдп рдФрд░ рдЬреНрдЮрд╛рдирд╡рд░реНрдзрдХ рд╣реЛрдВрдЧреЗ @willnationsdev
https://github.com/willnationsdev @Coldragon
https://github.com/Coldragon
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ "рд╡рд░реНрдбреАрдиреЗрд╕" рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЪрд╛рдп рдХреА рддрд░рд╣ рди рд╣реЛ, рд▓реЗрдХрд┐рди рдЗрдореНрд╣реЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рд╣реИ
рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡рдд: рдкреВрд░реНрдг рдФрд░ рдЖрд╢реБрд▓рд┐рдкрд┐ "$" рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/godotengine/godot/issues/16863#issuecomment-663890652 ,
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AFMN5DJNBNB6ZOUIV62VX2DR5MVJBANCNFSM4ERRCEZA
.

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Transform рдФрд░ Transform2D рддрд░реАрдХреЛрдВ рдореЗрдВ inverse рдФрд░ xform_inv рдХрд╛ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП / рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣ рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ рдЬреЛ рд▓реЛрдЧ рдЙрдирд╕реЗ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ . рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА: https://github.com/godotengine/godot/issues/39433#issuecomment -664024521ред

RayCast.cast_to рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ RayCast.segment рдпрд╛ рдХреБрдЫ рдФрд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ рдмрд╕ рдХрд┐рд╕реА рдиреЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ рдЙрд╕реЗ рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдореЗрдВ 40 рдорд┐рдирдЯ рд▓рдЧреЗ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдФрд░ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ рдПрдХ рдХреНрд░рд┐рдпрд╛ рднреА рд╣реИред

RayCast.target рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

@ razcore-art рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд░реЗ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рд╣реИ , рдФрд░ рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП segment рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕реЗ direction рдФрд░ length рд░реВрдк рдореЗрдВ рднреА рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЦрдВрдб рдХреЗ рдмрдЬрд╛рдп рдХрд┐рд░рдг рдХреЗ рдХрд░реАрдм рдХреБрдЫ рдмрди рдЬрд╛рдПрдЧрд╛, рдЬреНрдпрд╛рдорд┐рддреАрдп рд░реВрдк рд╕реЗ рдмреЛрд▓ рд░рд╣рд╛ рд╣реИ (рдпрд╛ рдХреЗрд╡рд▓ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЧреБрдг рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдЬреЛ рд╕рд╣-рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ) . рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рд░реАрдХреНрд╖рдХ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рджрд┐рд╢рд╛ рд╡реЗрдХреНрдЯрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдХрдо рд╕реЗ рдХрдо 2D рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд▓рд┐рдЦрд╛: godotengine/godot-proposals#397, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдпрд╣ рдмрд╣реБрдд рджреВрд░ рдХреА рдХреМрдбрд╝реА рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЖрдЧреЗ рд╕реЛрдЪрдиреЗ рдкрд░, segment RayCast рдиреЛрдб рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Physics2DDirectSpaceState.intersect_ray() рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

RayCast.target рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

@nathanfranke рдореИрдВ рд▓рдХреНрд╖реНрдп рдХреЛ Node рдпрд╛ NodePath рдорд╛рдиреВрдВрдЧрд╛ ред рддреЛ рдХрдо рд╕реЗ рдХрдо рдпрд╣ RayCast.target_position ред рд╢рд╛рдпрдж RayCast.cast_position рдпрд╛ RayCast.cast_offset ред рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рд░реЗ рдХрд╛рд╕реНрдЯ рдШреВрдо рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд╕реНрдЯ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

PhysX API рд░реЗрдХрд╛рд╕реНрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдЯ рджрд┐рд╢рд╛ + рд▓рдВрдмрд╛рдИ рдХреЗ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИред рдореИрдВ

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдореИрдВ cast_position рдХреА рдУрд░ рдЭреБрдХ рд░рд╣рд╛ рд╣реВрдВ ... рдХреНрдпреЛрдВрдХрд┐ рд░реЗ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

@Xrayez рдореИрдВ рд╕рдВрдкрддреНрддрд┐ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ "рдХрд╛рд╕реНрдЯ" рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ cast_position рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рдпрд╣ рди рдЬрд╛рдирдиреЗ рдХреА рдореВрд▓ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рдХрд┐ cast_position рдПрдХ рдРрд╕реА рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрддреА рд╣реИ)ред рдореБрдЭреЗ target_position ред

https://github.com/godotengine/godot/issues/19325#issuecomment -394155128 рд╕реЗ:

KEY_BACK рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ KEY_MEDIA_BACK рдФрд░ KEY_FORWARD рд╕реЗ KEY_MEDIA_FORWARD ред рдЕрдиреНрдп рдореАрдбрд┐рдпрд╛ рдХреБрдВрдЬрд┐рдпрд╛рдБ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬреЛ MEDIA рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИрдВред

рд╣рдореЗрдВ String begins_with() рд╕реЗ starts_with() рдмрджрд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬрд╛рд╡рд╛, рд╕реА #, рдкрд╛рдпрдерди, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрддреНрдпрд╛рджрд┐ рдореЗрдВ рдРрд╕рд╛ рд╣реА рд╣реИред

рдмрдЧрд╕реНрдХреНрд╡рд╛рдб рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: https://github.com/godotengine/godot/issues/16863#issuecomment -596069130

bool , float , int рдХреЗрд╡рд▓ рдРрд╕реЗ рдкреНрд░рдХрд╛рд░/рд╡рд░реНрдЧ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдирд╛рдо рд▓реЛрдЕрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ (рдЬреАрдбреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ) рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП Bool , Float , Int ред рдпрд╣ рдЧрд▓рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░ рджреЗрдЧрд╛ред

рдФрд░ bool , float , int рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ @GDScript рдкреЗрдЬ рд╕реЗ рдмрд┐рд▓реНрдЯ-рдЗрди рдкрд╛рдпрдерди рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрдирдореЗрдВ len рдФрд░ str )ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрдерд┐рддрд┐ рд╕рдорд╛рди рд╣реИ str / String : str(x) рдФрд░ String(x) рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВред

рдЬреЛрдбрд╝реЗрдВред рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛:

# `Int` is type.
func get_key() -> Int:
    # `int` is Python-like function.
    return int(config.get_value("sect", "key"))

@dalexeev рд╡реЗ рд▓реЛрдЕрд░рдХреЗрд╕ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рд╣реИрдВред рдЖрдк рдЗрд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗред
Node рдЬреИрд╕реА рдХрдХреНрд╖рд╛рдПрдВ рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░ рд╣реИрдВ рдФрд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдкрд░ рдХреЙрдкреА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред

var a := Node2D()
var b = a
a.position = Vector2(2, 2)
print(b.position) # (2, 2)

рдЕрдЧрд░ рдХреБрдЫ рднреА, рд╣рдо рдирд╛рдо рдмрджрд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП String рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП string рдХреЗ рдмрд╛рдж рд╕реЗ String рдирд╣реАрдВ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдХрд░рдиреЗ рдмрд░реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╣реИ рдФрд░ int рд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ Node ред

рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Vector2 , Vector3 , рдЖрджрд┐ рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рд╣реЛрдЧрд╛ред

@nathanfranke рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдпрд╣ рдЕрд▓рдЧ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдЯрд▓рд┐рди, рд╣рдХреНрд╕, рдПрдбрд╛ рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд╛рдо рдмрдбрд╝реЗ рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рдзрд╛рдирддрд╛ рдПрдХ рд╕рд╢рд░реНрдд рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП String , Color , Vector2 , рдЖрджрд┐ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рд╡реЗ рдореВрд▓реНрдп рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рди рдХрд┐ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ред

рдПрдХрдорд╛рддреНрд░ рдмрд╛рдзрд╛ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реИред

рдЪреВрдВрдХрд┐ String рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдирд╣реАрдВ рд╣реИ

рд╣реИрд░рд╛рдиреА рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ GDScript рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╣реИрдВ:

var s = "abc"
s[0] = "xyz"
print(s) # xyzbc

Vector2 рдПрдХ рдЖрджрд┐рдо рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 2 float рджреНрд╡рд╛рд░рд╛ рд░рдЪрд┐рдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, Vector2 рдФрд░ float рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реИрдВред

@Zylann рдХреНрдпрд╛ рдпрд╣ рдЗрддрдирд╛ рдореМрд▓рд┐рдХ рдЕрдВрддрд░ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЯрд╛рдЗрдк рдирд╛рдо рдореЗрдВ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

(рдореЗрд░реЗ рд▓рд┐рдП, 'рдЖрджрд┐рдо' 'рд╕рд░рд▓' рд╣реИ, 'рдПрдХ рдЯреБрдХрдбрд╝рд╛' рдирд╣реАрдВред)


рдореИрдВ рдЕрдкрдиреЗ рдкрдХреНрд╖ рдореЗрдВ рдЗрд╕рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рд▓реЗрдХрд┐рди:

рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдирд╛рдо рдкреВрдВрдЬреАрдХреГрдд рд╣реИрдВред :рдореБрд╕реНрдХреБрд░рд╛рдУ:

рдпрд╣рд╛рдБ рд╡реЗ рд╢рд░реНрддреЗрдВ рд╣реИрдВ рдЬреЛ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╕рдордЭрддрд╛ рд╣реВрдБ:

| рдирд╛рдо рдЯрд╛рдЗрдк рдХрд░реЗрдВ | рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ | рдорд╛рди рдкреНрд░рдХрд╛рд░ | рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдкреНрд░рдХрд╛рд░ | рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рдкреНрд░рдХрд╛рд░ |
| ------------- | ------------- | ------------- | ------------- | ------------- |
| рдЗрдВрдЯ | рд╣рд╛рдБ | рд╣рд╛рдБ | рдПрди/рдП | рд╣рд╛рдБ |
| рд╡реЗрдХреНрдЯрд░2 | рдирд╣реАрдВ | рд╣рд╛рдБ | рдПрди/рдП | рд╣рд╛рдБ |
| рдиреЛрдб | рдирд╣реАрдВ | рдирд╣реАрдВ | рд╣рд╛рдБ | рд╣рд╛рдБ |
| рд╕реНрдЯреНрд░рд┐рдВрдЧ | рдирд╣реАрдВ | рдирд╣реАрдВ | рдирд╣реАрдВ | рд╣рд╛рдБ |

рдмрд╛рд╡рдЬреВрдж рдЗрд╕рдХреЗ рдпреЗ рдирд╛рдо рдирд╣реАрдВ рдмрджрд▓реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╡реЗ рд╡реИрд╕реЗ рд╣реА рдареАрдХ рд╣реИрдВ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдЗрд╕ рдЯреНрд░реИрдХрд░ рдХреЛ рд╡реНрдпрд░реНрде рдХреА рдЪрд░реНрдЪрд╛рдУрдВ рд╕реЗ рднрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЪрд░реНрдЪрд╛ рдпрд╣реАрдВ рд╕рдорд╛рдкреНрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рдореНрдпреВрдЯреЗрдмрд▓ рдЯрд╛рдЗрдк рдХреЙрд▓рдо рдЧрд▓рдд рд╣реИ: рдХреЗрд╡рд▓ рдСрдмреНрдЬреЗрдХреНрдЯ-рд╡реНрдпреБрддреНрдкрдиреНрди, рдбрд┐рдХреНрд╢рдирд░реА рдФрд░ рдРрд░реЗ рдореНрдпреВрдЯреЗрдмрд▓ рд╣реИрдВред ( Vector2 рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк vec2.x = 0 рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ vec2 = vec2.with_x(0) рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ)

ShortCut рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ Shortcut

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдХреЗ рдмреАрдЪ рд╡рд┐рд╕рдВрдЧрддрд┐рдпрд╛рдВ

Input.is_action_just_pressed(action: String) -> bool
Input.is_action_just_released(action: String) -> bool
Input.is_action_pressed(action: String) -> bool

рдкреНрд░рддрд┐

Input.is_action_pressed(action: String, allow_echo: bool = false) -> bool
Input.is_action_released(action: String) -> bool

рд╕рдВрдЧрддрд┐ рдХреЗ рд▓рд┐рдП
рддрдерд╛

InputEvent.is_action_pressed(action: String, allow_echo: bool = false) -> bool
InputEvent.is_action_released(action: String) -> bool

рдареАрдХ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдкреБрдирд╢реНрдЪ рдореИрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛ "рдХрдо рд╕рдорд╛рди рддрд░реАрдХреЗ, рдмреЗрд╣рддрд░"ред

@dalexeev рдмреВрд▓рд┐рдпрди рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдХреНрд╕рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкрдардиреАрдп рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ true рдФрд░ false рдХрд╛ рдХреЛрдИ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реИред

рд╣рд╛рдБ, рд▓реЗрдХрд┐рди рдирд┐рд░рдВрддрд░рддрд╛ рднреА рдЕрдЪреНрдЫреА рд╣реЛрдЧреАред рдлрд┐рд░ рдЗрдирдкреБрдЯрдПрд╡реЗрдВрдЯ рдореЗрдВ рдмреВрд▓рд┐рдпрди рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВ?

@Calinou рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдЧреВрдВрдЬ рдШрдЯрдирд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдЗрд╕реЗ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ред рдЬрдм рдЖрдк рдХреЛрдб рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рддрд░реНрдХ рд╕рдВрдХреЗрдд рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред рдХреЛрдб рдкрдврд╝рддреЗ рд╕рдордп, рдЖрдк Shift + Click рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рддрд░реНрдХ рдпрд╛рдж рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреНрд╡рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, String.split )ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, doc/classes рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ 208 рд╡реИрдХрд▓реНрдкрд┐рдХ рдмреВрд▓рд┐рдпрди рддрд░реНрдХ рдкрд╛рдП рдЧрдП (рдпрд╣ рдХреЗрд╡рд▓ рдХреЛрд░ рд╣реИ, рдФрд░ 16 рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ doc_classes )ред

AcceptDialog.xml

17:         <argument index="1" name="right" type="bool" default="false">

AnimatedSprite2D.xml

26:         <argument index="1" name="backwards" type="bool" default="false">

AnimationNode.xml

53:         <argument index="5" name="optimize" type="bool" default="true">
74:         <argument index="6" name="optimize" type="bool" default="true">

AnimationPlayer.xml

146:            <argument index="3" name="from_end" type="bool" default="false">
201:            <argument index="1" name="update" type="bool" default="false">
223:            <argument index="0" name="reset" type="bool" default="true">

Animation.xml

349:            <argument index="2" name="exact" type="bool" default="false">

Array.xml

130:            <argument index="1" name="before" type="bool" default="true">
146:            <argument index="3" name="before" type="bool" default="true">
172:            <argument index="0" name="deep" type="bool" default="false">
366:            <argument index="3" name="deep" type="bool" default="false">

AStar2D.xml

79:         <argument index="2" name="bidirectional" type="bool" default="true">
114:            <argument index="1" name="include_disabled" type="bool" default="false">
276:            <argument index="1" name="disabled" type="bool" default="true">

AStar.xml

74:         <argument index="2" name="bidirectional" type="bool" default="true">
94:         <argument index="2" name="bidirectional" type="bool" default="true">
113:            <argument index="2" name="bidirectional" type="bool" default="true">
131:            <argument index="1" name="include_disabled" type="bool" default="false">
293:            <argument index="1" name="disabled" type="bool" default="true">

Camera3D.xml

15:         <argument index="0" name="enable_next" type="bool" default="true">

CanvasItem.xml

274:            <argument index="2" name="filled" type="bool" default="true">
376:            <argument index="4" name="transpose" type="bool" default="false">
403:            <argument index="4" name="transpose" type="bool" default="false">
411:            <argument index="8" name="clip_uv" type="bool" default="true">

ClassDB.xml

55:         <argument index="1" name="no_inheritance" type="bool" default="false">
66:         <argument index="1" name="no_inheritance" type="bool" default="false">
88:         <argument index="1" name="no_inheritance" type="bool" default="false">
110:            <argument index="1" name="no_inheritance" type="bool" default="false">
134:            <argument index="2" name="no_inheritance" type="bool" default="false">

CodeHighlighter.xml

19:         <argument index="3" name="p_line_only" type="bool" default="false">

Color.xml

251:            <argument index="0" name="with_alpha" type="bool" default="true">

Control.xml

586:            <argument index="2" name="keep_margin" type="bool" default="false">
588:            <argument index="3" name="push_opposite_anchor" type="bool" default="true">
605:            <argument index="3" name="push_opposite_anchor" type="bool" default="false">
629:            <argument index="1" name="keep_margins" type="bool" default="false">
720:            <argument index="1" name="keep_margins" type="bool" default="false">
758:            <argument index="1" name="keep_margins" type="bool" default="false">
779:            <argument index="1" name="keep_margins" type="bool" default="false">

CryptoKey.xml

26:         <argument index="1" name="public_only" type="bool" default="false">
38:         <argument index="1" name="public_only" type="bool" default="false">
49:         <argument index="1" name="public_only" type="bool" default="false">
59:         <argument index="0" name="public_only" type="bool" default="false">

Curve2D.xml

121:            <argument index="1" name="cubic" type="bool" default="false">

Curve3D.xml

145:            <argument index="1" name="cubic" type="bool" default="false">
158:            <argument index="1" name="apply_tilt" type="bool" default="false">

Dictionary.xml

89:         <argument index="0" name="deep" type="bool" default="false">

Directory.xml

127:            <argument index="0" name="skip_navigational" type="bool" default="false">
129:            <argument index="1" name="skip_hidden" type="bool" default="false">

DisplayServer.xml

647:            <argument index="2" name="multiline" type="bool" default="false">

EditorInterface.xml

212:            <argument index="1" name="with_preview" type="bool" default="true">

EditorNode3DGizmoPlugin.xml

40:         <argument index="3" name="cancel" type="bool" default="false">
60:         <argument index="1" name="billboard" type="bool" default="false">
73:         <argument index="2" name="on_top" type="bool" default="false">
88:         <argument index="2" name="billboard" type="bool" default="false">
90:         <argument index="3" name="on_top" type="bool" default="false">
92:         <argument index="4" name="use_vertex_color" type="bool" default="false">

EditorNode3DGizmo.xml

37:         <argument index="2" name="billboard" type="bool" default="false">
39:         <argument index="3" name="secondary" type="bool" default="false">
53:         <argument index="2" name="billboard" type="bool" default="false">
66:         <argument index="1" name="billboard" type="bool" default="false">
103:            <argument index="2" name="cancel" type="bool" default="false">

EditorProperty.xml

30:         <argument index="3" name="changing" type="bool" default="false">

Expression.xml

36:         <argument index="2" name="show_error" type="bool" default="true">

File.xml

211:            <argument index="0" name="allow_objects" type="bool" default="false">
439:            <argument index="1" name="full_objects" type="bool" default="false">

Font.xml

47:         <argument index="5" name="outline" type="bool" default="false">

GIProbe.xml

19:         <argument index="1" name="create_visual_debug" type="bool" default="false">

HTTPClient.xml

32:         <argument index="2" name="use_ssl" type="bool" default="false">
34:         <argument index="3" name="verify_host" type="bool" default="true">

HTTPRequest.xml

110:            <argument index="2" name="ssl_validate_domain" type="bool" default="true">

ImageTexture.xml

43:         <argument index="1" name="immediate" type="bool" default="false">

Image.xml

226:            <argument index="0" name="renormalize" type="bool" default="false">
415:            <argument index="0" name="square" type="bool" default="false">
433:            <argument index="1" name="grayscale" type="bool" default="false">

ImmediateGeometry3D.xml

24:         <argument index="3" name="add_uv" type="bool" default="true">

InputEvent.xml

54:         <argument index="1" name="allow_echo" type="bool" default="false">

Input.xml

40:         <argument index="1" name="update_existing" type="bool" default="false">

InstancePlaceholder.xml

16:         <argument index="0" name="replace" type="bool" default="false">
33:         <argument index="0" name="with_order" type="bool" default="false">

ItemList.xml

19:         <argument index="1" name="selectable" type="bool" default="true">
32:         <argument index="2" name="selectable" type="bool" default="true">
58:         <argument index="1" name="exact" type="bool" default="false">
235:            <argument index="1" name="single" type="bool" default="true">

JavaScript.xml

18:         <argument index="1" name="use_global_execution_context" type="bool" default="false">

JSONRPC.xml

59:         <argument index="1" name="recurse" type="bool" default="false">

JSON.xml

28:         <argument index="2" name="sort_keys" type="bool" default="false">

KinematicBody2D.xml

78:         <argument index="1" name="infinite_inertia" type="bool" default="true">
80:         <argument index="2" name="exclude_raycast_shapes" type="bool" default="true">
82:         <argument index="3" name="test_only" type="bool" default="false">
96:         <argument index="2" name="stop_on_slope" type="bool" default="false">
102:            <argument index="5" name="infinite_inertia" type="bool" default="true">
125:            <argument index="3" name="stop_on_slope" type="bool" default="false">
131:            <argument index="6" name="infinite_inertia" type="bool" default="true">
145:            <argument index="2" name="infinite_inertia" type="bool" default="true">

KinematicBody3D.xml

80:         <argument index="1" name="infinite_inertia" type="bool" default="true">
82:         <argument index="2" name="exclude_raycast_shapes" type="bool" default="true">
84:         <argument index="3" name="test_only" type="bool" default="false">
98:         <argument index="2" name="stop_on_slope" type="bool" default="false">
104:            <argument index="5" name="infinite_inertia" type="bool" default="true">
127:            <argument index="3" name="stop_on_slope" type="bool" default="false">
133:            <argument index="6" name="infinite_inertia" type="bool" default="true">
158:            <argument index="2" name="infinite_inertia" type="bool" default="true">

Marshalls.xml

35:         <argument index="1" name="allow_objects" type="bool" default="false">
65:         <argument index="1" name="full_objects" type="bool" default="false">

Navigation2D.xml

43:         <argument index="2" name="optimize" type="bool" default="true">

Navigation3D.xml

46:         <argument index="2" name="use_collision" type="bool" default="false">
65:         <argument index="2" name="optimize" type="bool" default="true">

NavigationServer3D.xml

209:            <argument index="3" name="use_collision" type="bool" default="false">

Node2D.xml

63:         <argument index="1" name="scaled" type="bool" default="false">
74:         <argument index="1" name="scaled" type="bool" default="false">

Node.xml

126:            <argument index="1" name="legible_unique_name" type="bool" default="false">
146:            <argument index="1" name="legible_unique_name" type="bool" default="false">
159:            <argument index="1" name="persistent" type="bool" default="false">
189:            <argument index="1" name="recursive" type="bool" default="true">
191:            <argument index="2" name="owned" type="bool" default="true">
540:            <argument index="2" name="parent_first" type="bool" default="false">
599:            <argument index="1" name="keep_data" type="bool" default="false">
737:            <argument index="1" name="recursive" type="bool" default="true">

Object.xml

378:            <argument index="1" name="reversed" type="bool" default="false">

OS.xml

73:         <argument index="2" name="blocking" type="bool" default="true">
77:         <argument index="4" name="read_stderr" type="bool" default="false">
141:            <argument index="0" name="utc" type="bool" default="false">
150:            <argument index="0" name="utc" type="bool" default="false">
303:            <argument index="0" name="utc" type="bool" default="false">
451:            <argument index="0" name="short" type="bool" default="false">

PacketPeerDTLS.xml

17:         <argument index="1" name="validate_certs" type="bool" default="true">

PacketPeer.xml

36:         <argument index="0" name="allow_objects" type="bool" default="false">
57:         <argument index="1" name="full_objects" type="bool" default="false">

PCKPacker.xml

33:         <argument index="0" name="verbose" type="bool" default="false">

PhysicsDirectSpaceState2D.xml

62:         <argument index="4" name="collide_with_bodies" type="bool" default="true">
64:         <argument index="5" name="collide_with_areas" type="bool" default="false">
89:         <argument index="5" name="collide_with_bodies" type="bool" default="true">
91:         <argument index="6" name="collide_with_areas" type="bool" default="false">
107:            <argument index="4" name="collide_with_bodies" type="bool" default="true">
109:            <argument index="5" name="collide_with_areas" type="bool" default="false">

PhysicsDirectSpaceState3D.xml

63:         <argument index="4" name="collide_with_bodies" type="bool" default="true">
65:         <argument index="5" name="collide_with_areas" type="bool" default="false">

PhysicsServer2D.xml

21:         <argument index="3" name="disabled" type="bool" default="false">
351:            <argument index="3" name="disabled" type="bool" default="false">

PhysicsServer3D.xml

21:         <argument index="3" name="disabled" type="bool" default="false">
351:            <argument index="3" name="disabled" type="bool" default="false">
426:            <argument index="1" name="init_sleeping" type="bool" default="false">

PopupMenu.xml

36:         <argument index="2" name="global" type="bool" default="false">
70:         <argument index="3" name="global" type="bool" default="false">
118:            <argument index="3" name="global" type="bool" default="false">
133:            <argument index="3" name="global" type="bool" default="false">
195:            <argument index="2" name="global" type="bool" default="false">
219:            <argument index="2" name="global" type="bool" default="false">
526:            <argument index="2" name="global" type="bool" default="false">

ProjectSettings.xml

93:         <argument index="1" name="replace_files" type="bool" default="true">

Rect2.xml

146:            <argument index="1" name="include_borders" type="bool" default="false">

RenderingDevice.xml

29:         <argument index="4" name="sync_with_draw" type="bool" default="true">
413:            <argument index="3" name="arg3" type="bool" default="false">
493:            <argument index="1" name="allow_cache" type="bool" default="true">
565:            <argument index="6" name="sync_with_draw" type="bool" default="false">
591:            <argument index="9" name="sync_with_draw" type="bool" default="false">
677:            <argument index="2" name="sync_with_draw" type="bool" default="false">
691:            <argument index="3" name="sync_with_draw" type="bool" default="false">

RenderingServer.xml

847:            <argument index="0" name="swap_buffers" type="bool" default="true">
1812:           <argument index="3" name="color_format" type="bool" default="false">
1814:           <argument index="4" name="custom_data_format" type="bool" default="false">
2455:           <argument index="3" name="use_filter" type="bool" default="true">
2557:           <argument index="2" name="is_2d_skeleton" type="bool" default="false">

ResourceLoader.xml

61:         <argument index="2" name="no_cache" type="bool" default="false">
100:            <argument index="2" name="use_sub_threads" type="bool" default="false">

Resource.xml

24:         <argument index="0" name="subresources" type="bool" default="false">

RigidBody2D.xml

106:            <argument index="1" name="infinite_inertia" type="bool" default="true">

SceneState.xml

142:            <argument index="1" name="for_parent" type="bool" default="false">

SceneTree.xml

65:         <argument index="1" name="pause_mode_process" type="bool" default="true">

ScriptCreateDialog.xml

25:         <argument index="2" name="built_in_enabled" type="bool" default="true">
27:         <argument index="3" name="load_enabled" type="bool" default="true">

Script.xml

107:            <argument index="0" name="keep_state" type="bool" default="false">

Skeleton3D.xml

238:            <argument index="3" name="persistent" type="bool" default="false">

SkeletonIK3D.xml

25:         <argument index="0" name="one_time" type="bool" default="false">

StreamPeerSSL.xml

33:         <argument index="1" name="validate_certs" type="bool" default="false">

StreamPeer.xml

128:            <argument index="0" name="allow_objects" type="bool" default="false">
274:            <argument index="1" name="full_objects" type="bool" default="false">

String.xml

587:            <argument index="0" name="with_prefix" type="bool" default="false">
855:            <argument index="1" name="allow_empty" type="bool" default="true">
924:            <argument index="1" name="allow_empty" type="bool" default="true">
947:            <argument index="1" name="allow_empty" type="bool" default="true">
957:            <argument index="0" name="left" type="bool" default="true">
959:            <argument index="1" name="right" type="bool" default="true">

SurfaceTool.xml

216:            <argument index="0" name="flip" type="bool" default="false">

TextEdit.xml

61:         <argument index="1" name="adjust_viewport" type="bool" default="true">
73:         <argument index="1" name="adjust_viewport" type="bool" default="true">
75:         <argument index="2" name="can_be_hidden" type="bool" default="true">

Texture2D.xml

23:         <argument index="3" name="transpose" type="bool" default="false">
50:         <argument index="4" name="transpose" type="bool" default="false">
77:         <argument index="4" name="transpose" type="bool" default="false">
89:         <argument index="10" name="clip_uv" type="bool" default="true">

TileMap.xml

137:            <argument index="1" name="ignore_half_ofs" type="bool" default="false">
153:            <argument index="3" name="flip_x" type="bool" default="false">
155:            <argument index="4" name="flip_y" type="bool" default="false">
157:            <argument index="5" name="transpose" type="bool" default="false">
183:            <argument index="2" name="flip_x" type="bool" default="false">
185:            <argument index="3" name="flip_y" type="bool" default="false">
187:            <argument index="4" name="transpose" type="bool" default="false">

TileSet.xml

323:            <argument index="3" name="one_way" type="bool" default="false">

TreeItem.xml

22:         <argument index="3" name="disabled" type="bool" default="false">
205:            <argument index="0" name="wrap" type="bool" default="false">
229:            <argument index="0" name="wrap" type="bool" default="false">
439:            <argument index="2" name="just_outline" type="bool" default="false">
567:            <argument index="4" name="expr" type="bool" default="false">

UndoRedo.xml

103:            <argument index="0" name="increase_version" type="bool" default="true">

Viewport.xml

117:            <argument index="1" name="in_local_coords" type="bool" default="false">
165:            <argument index="1" name="in_local_coords" type="bool" default="false">

рдЬреЛрдбрд╝реЗрдВред рдпрджрд┐/рдЬрдм рддрд░реНрдХ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА:

if e.is_action_pressed("ui_left", allow_echo = true):
    velocity += Vector2.LEFT
var arr = s.split(",", allow_empty = false)

@dalexeev рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрдкреЙрдЗрд▓рд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@dalexeev рдРрд╕реЗ рдХрдИ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдХреБрдВрдЬреА рджрдмрд╛рдИ рдЧрдИ рд╣реИ рдФрд░ рди рдХреЗрд╡рд▓ рдЕрдЧрд░ рдЗрд╕реЗ рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪрд░рд┐рддреНрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ WASD рдпрд╛ рддреАрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдЧреЗрдо рдХреА рдмрд╣реБрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрди рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рджреЛ рддрд░реАрдХреЗ рдЕрдкрдирд╛рдирд╛ рдмреЗрдХрд╛рд░ рд╣реИред

рдХреЛрдб рдкрдврд╝рддреЗ рд╕рдордп, рдЖрдк Shift + Click рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк GitHub рдкрд░ рдЕрдВрддрд░ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп IDE рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдХреЛрдб рдирд╣реАрдВ рд╣реИред

@aaronfranke рдЕрдиреНрдп 207 рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рднреА рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдпрд╣ рддрд░реНрдХ рдирд┐рд░реНрдгрд╛рдпрдХ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдИрдбреАрдИ рдХреЗ рдмрд┐рдирд╛ рдкрдардиреАрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдРрд╕реЗ рдХрдИ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдХреБрдВрдЬреА рджрдмрд╛рдИ рдЧрдИ рд╣реИ рдФрд░ рди рдХреЗрд╡рд▓ рдЕрдЧрд░ рдЗрд╕реЗ рдЕрднреА рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдХреНрд╕рд░, рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ рдХреЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд╣реАрдВред

рддреАрди рд╡рд┐рдзрд┐рдпреЛрдВ ( is_action_just_pressed , is_action_just_released , is_action_pressed ) рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рднреНрд░рд╛рдордХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк is_action_released рд╡рд┐рдзрд┐ рд╣реЛрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред

рдЬреЛрдбрд╝реЗрдВред рдХреМрди рд╕рд╛ рд╡рд┐рдХрд▓реНрдк рдЖрд╕рд╛рди рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдиреЗрддреНрд░рд╣реАрди?

is_action_released рд╕рд╛рде not is_action_pressed рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ just рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдирд╣реАрдВ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХрдЪреНрдЪреЗ рдмреВрд▓ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред INPUT_ALLOW_ECHO/INPUT_NO_ECHO рдЬреИрд╕рд╛ рдЭрдВрдбрд╛ рдПрдХ рдмреВрд▓ рд╕реЗ рдХрд╛рдлреА рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

@dalexeev рдпрд╣ рдХреЗрд╡рд▓ рднреНрд░рдо рдкреИрджрд╛ рдХрд░реЗрдЧрд╛ред is_action_pressed() рдФрд░ рдЗрдХреЛ 2 рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реИрдВред рдЖрдк рд╕реНрд╡рдпрдВ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдХреЛ рдЗрд╡реЗрдВрдЯреНрд╕ рдкрд╣рд▓реА рдкреНрд░реЗрд╕ рдХреЗ рдмрд╛рдж рдереЛрдбрд╝реА рджреЗрд░реА рдХреЗ рдмрд╛рдж рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ is_action_pressed() рдореЗрдВ рдХреЛрдИ рджреЗрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

@KoBeWi рдЖрдк рд╕рд╣реА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░

is_action_pressed(action: String, allow_echo: bool = false) -> bool

рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

is_action_pressed(action: String, allow_echo: bool = true) -> bool

рдЪреВрдВрдХрд┐ рдпрд╣ рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ

func _input(e):
    if !e.is_action("ui_left"):
        return
    $Label.text += "pressed: %s, echo: %s\n" % [e.is_pressed(), e.is_echo()]
pressed: True, echo: False
pressed: True, echo: True
pressed: True, echo: True
pressed: True, echo: True
pressed: False, echo: False

@dalexeev рдЬреЛ рдЖрдк рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рдЬрдм рд╣рдо рдЗрдХреЛ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдПрдХ рдХреБрдВрдЬреА рджрдмрд╛рддреЗ рд╕рдордп рдмрд╛рд░-рдмрд╛рд░ рдХреАрдмреЛрд░реНрдб рдИрд╡реЗрдВрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХреНрд╢рди рд╕рд┐рд╕реНрдЯрдо рд╕реАрдзреЗ рдИрд╡реЗрдВрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕реНрдерд┐рддрд┐ рдкреНрд░рддрд┐-рдлреНрд░реЗрдо рдлреИрд╢рди рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред рд╕рд╛рде рд╣реА, рдХреНрд░рд┐рдпрд╛рдПрдВ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдЬреИрд╕реЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдпрд╛ рдорд╛рдЙрд╕ рдмрдЯрдиреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рдЬрд╣рд╛рдВ "рдЧреВрдВрдЬ" рдШрдЯрдирд╛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред

рдЯреНрд░реАрдЗрдЯрдо рдХрд╛ get_children() рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдмрдЪреНрдЪрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдмрдЪреНрдЪреЗ рдЬреИрд╕реЗ рдирд╛рдо (рдпрд╛ рдбреЙрдХреНрд╕ рдореЗрдВ рд╡рд┐рд╡рд░рдг) рдХрд╛ рд╕реБрдЭрд╛рд╡ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред

[рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ]
рдПрдирд╡реАрдПрдо рдбреЙрдХреНрд╕ред рд╡рд┐рдзрд┐ рд╡рд┐рд╡рд░рдг рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВред

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╕рдВрд╕рд╛рдзрди рдХрд╛ local_to_scene рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП local_to_instance рдпрд╛ unique_per_instance ред "рд▓реЛрдХрд▓ рдЯреВ рд╕реАрди" рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдЬрдм рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рджреГрд╢реНрдп рдХреЗ рдкреНрд░рддрд┐ рдЙрджрд╛рд╣рд░рдг рд╣реЛрддрд╛ рд╣реИред

Image.load() тЖТ Image.load_from_file() рдирд╛рдо рдмрджрд▓реЗрдВред

  1. рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ load("image.png") рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд╡рд┐рдд рднреНрд░рдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, #42412 рдкрд░ рдкреНрд░рд▓реЗрдЦрди рдкрд░рд┐рд╡рд░реНрддрди рджреЗрдЦреЗрдВред
  2. Image.load() рдХреЛ рдЕрдм GDScript рдмрд┐рд▓реНрдЯ-рдЗрди рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: #28866.
  3. Image.load_*_from_buffer() рдкреНрд░рддрд┐ рдЫрд╡рд┐ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдЕрдиреБрд░реВрдкред рдПрдкреАрдЖрдИ рдмреНрд▓реЛрдЯ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдлрд░-рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╣реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╡рд┐рд╖рдп рд╣реИред

@Xrayez GDScript рдореЗрдВ load рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: https://github.com/godotengine/godot-proposals/issues/263

ProjectSettings рдореЗрдВ рдЪрд░ registering_order рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдзрд┐ set_registering_order рдЕрдкреНрд░рдпреБрдХреНрдд рд╣реИред

RandomNumberGenerator рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ Random рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдЬреИрд╕реЗ randf рдФрд░ rand_range рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдореБрджреНрджреЛрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдХреЛрдИ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмреАрдЬ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрддрд╛ рд╣реИ

seed(123)
randf()
call_method() # This could change the seed for its own random reasons!
randf()

рд╡реИрд╢реНрд╡рд┐рдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрд╛рд░реНрдп рдЬреИрд╕реЗ randf рдФрд░ rand_range рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

Godotengine/godot-proposals#1590 рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИред

рдореИрдВ рдЗрди рдмреБрдирд┐рдпрд╛рджреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддрд░реАрдХреЛрдВ рдХреЛ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдФрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рдЙрдирдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫред рд▓реЗрдХрд┐рди seed() рдФрд░ rand_seed() рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ FuncRef Callable рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдпрд╣ рдмреЗрдорд╛рдиреА рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ property_can_revert рдФрд░ property_get_revert рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдФрд░ рдЙрдиреНрд╣реЗрдВ #43078 рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ _get , _set , рдФрд░ _get_property_list рдХреЗ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдкреНрд░рдореБрдЦ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

EditorImportPlugin рдФрд░ EditorExportPlugin рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╣рдо EditorImportPlugin рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ EditorResourceImportPlugin рдпрд╛ рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░реЗрдВред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдФрд░ EditorPlugin.add_import_plugin рдХрд╛ рдирд╛рдо рднреА рдЙрд╕реА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

ResourceImportPlugin рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдХрдИ (рдЕрдзрд┐рдХрд╛рдВрд╢?) рд╕рдВрдкрд╛рджрдХ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рд╕рдВрдкрд╛рджрдХ" рд╢рдмреНрдж рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ SceneTreeDock рдпрд╛ рд╕рднреА рдПрдиреАрдореЗрд╢рди рд╕рд╛рдордЧреНрд░реАред

рдЕрдиреНрдп рдПрдирдо рдирд╛рдореЛрдВ рдХреА рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП Tracking_status рдореЗрдВ ARVRInterface рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ TrackingStatus рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдКрдкрд░ ARVRInterface рджреЗрдЦрддреЗ рд╣реБрдП, рдирд╛рдореЛрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдлреА рдЦрд░рд╛рдм рд╣реИред рдпрд╣рд╛рдБ рдореЗрд░реЗ рд╕реБрдЭрд╛рдП рдЧрдП рдирд╛рдо рднреА рд╣реИрдВ:

  • ar_is_anchor_detection_enabled тЖТ anchor_detection_enabled (рд╕рдВрдкрддреНрддрд┐)
  • interface_is_initialized тЖТ initialized (рд╕рдВрдкрддреНрддрд┐, enabled рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рд╕реЗрдЯрд░ рд╣реИ)
  • interface_is_primary тЖТ primary (рд╕рдВрдкрддреНрддрд┐)
  • get_render_targetsize() тЖТ get_render_target_size() (рд╡рд┐рдзрд┐)
  • uninitialize() тЖТ finalize() (рд╡рд┐рдзрд┐)

рдЕрдиреНрдпрдерд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЧрд▓рдд рд╣реИред рдореИрдВ

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдирд╛рдо рдХреЗрд╡рд▓ рдХрдХреНрд╖рд╛ рдХреЛ рджреЗрдЦрдХрд░ рдЕрдЬреАрдм рд▓рдЧрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рд╣рдореЗрдВ Control.MOUSE_FILTER_PASS рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ Control.MOUSE_FILTER_PASSTHROUGH ? рдЗрд╕рд╕реЗ рдпрд╣ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдШрдЯрдирд╛ рдирд┐рдпрдВрддреНрд░рдг рдиреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕рдХреЗ рдиреАрдЪреЗ рд╕реНрдерд┐рдд рдиреЛрдбреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдЧреАред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рд▓рд╛рдпрдХ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред

@Calinou рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рд╕реЗ рдЪреЛрдЯ рд▓рдЧреЗрдЧреА, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рдорд░реНрдерди рдореЗрдВ

@Calinou рдореБрдЭреЗ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрд╕рд╛рдорд╛рдиреНрдп рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рджреГрд╢реНрдп рд╕реЗрдЯрдЕрдк рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ "рдЪрд╛рдЗрд▓реНрдб 2 рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рджреГрд╢реНрдп рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ"
image

(рдзреНрдпрд╛рди рджреЗрдВ, рд╕рднреА рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ)


: рдореБрд╕реНрдХрд╛рди: рдкреНрд░рд╕реНрддрд╛рд╡ рдП : рд╢рд╛рдпрдж рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП Control.MOUSE_FILTER_PASSPARENTS рдЬреИрд╕рд╛ рдХреБрдЫ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдирдкреБрдЯ рдИрд╡реЗрдВрдЯ рдХреЗрд╡рд▓ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред


:рд░реЙрдХреЗрдЯ: рдкреНрд░рд╕реНрддрд╛рд╡ рдмреА : рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рдЗрдирдореЗрдВ рдмрджрд▓реЗрдВ:

  • рд░реЛрдХреЗрдВ: рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ - рдШрдЯрдирд╛ рд▓реЗрдВ рдФрд░ рд╕рднреА рдкреНрд░рдЪрд╛рд░ рдХреЛ рд░реЛрдХреЗрдВ
  • PASS_PARENT: рд╡рд░реНрддрдорд╛рди рдореЗрдВ PASS рдХреЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░
  • PASS_ALL: IGNORE, рд▓реЗрдХрд┐рди рдЗрд╡реЗрдВрдЯ рд▓реЗрддрд╛ рд╣реИ
  • рдЗрдЧреНрдиреЛрд░: рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ - рдШрдЯрдирд╛ рди рд▓реЗрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдкреНрд░рдЪрд╛рд░ рдХрд░реЗрдВ

: рдЖрдВрдЦреЗрдВ: рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реА : рдиреЛрдб gui рдЗрдирдкреБрдЯ рд▓реЗрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдХрд┐рд╕реА рднреА рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдпрд╛ рдмреВрд▓рд┐рдпрди рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред рд╣рдо рд╡рд┐рдХрд▓реНрдк рдХреЛ Control.propagation_mode рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпреЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реИрдВ:

  • рдХреЛрдИ рдирд╣реАрдВ
  • рдорд╛рддрд╛-рдкрд┐рддрд╛
  • рд╕рдм

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рд╕рд╛рдл рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдпрд╣ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рдкрд░реЗ рд╣реИ рдФрд░ рдЗрд╕ рдкрд░ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред

рдпреЗ рд╕рднреА рдирд╛рдо рдЗрддрдиреЗ рд▓рдВрдмреЗ рдХреНрдпреЛрдВ рд╣реИрдВ? рдЖрдк рдХреБрдЫ рд╕рд░рд▓ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВред

рдЖрдк рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП clip рд╕реЗ intersection рджреЛрдЧреБрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВред
рдЖрдк Control.MOUSE_FILTER_PASS рдХреЛ Control.MOUSE_FILTER_PASSTHROUGH рднреА рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ
рдЖрджрд┐

рдореИрдВ рд╕рд░рд▓ рдФрд░ рдЫреЛрдЯреЗ рдХрдо рд╡рд░реНрдмреЛрдЬрд╝ рдкрд░рд┐рд╡рд░реНрддрди рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рд╣реИ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╡рд░рдг рднреА рдирд╣реАрдВ рд╣реИред

рдореИрдВ рд╕рд░рд▓ рдФрд░ рдЫреЛрдЯреЗ рдХрдо рд╡рд░реНрдмреЛрдЬрд╝ рдкрд░рд┐рд╡рд░реНрддрди рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рд╣реИ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╡рд░рдг рднреА рдирд╣реАрдВ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд╛рдо рд╡рд░реНрдгрдирд╛рддреНрдордХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ (рдЬреЛ рдЧреЛрдбреЛрдЯ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИ) рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддреЗ рд╣реИрдВ рддреЛ рд▓рдВрдмрд╛рдИ рднреА рдХреЛрдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддреАред


рдореИрдВрдиреЗ IRC рдкрд░ рдПрдХ рдмрд╛рд░ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдореБрдЭреЗ рдХреЛрдИ рдЙрддреНрддрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди TextureRect рдореЗрдВ "рд╕реНрдХреЗрд▓ рдСрди рдПрдХреНрд╕рдкреИрдВрдб (рдХреЙрдореНрдкреЗрдЯ)" рдирд╛рдордХ рдПрдХ рдЦрд┐рдВрдЪрд╛рд╡ рдореЛрдб рд╣реИред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐ рд╣рдо рдЕрдкрдиреЗ рдЧреЛрдбреЛрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдордЬрдмреВрдд рдХреЛрдбрдмреЗрд╕ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ "рдХрдо рд╡рд░реНрдмреЛрдЬрд╝" рдореЗрдиреВ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдЖрдзреБрдирд┐рдХ рдХреЛрдбрд┐рдВрдЧ рдЯреВрд▓ рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ рдФрд░ рдЕрдиреНрдп рдмреБрджреНрдзрд┐рдорд╛рди рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдирд╛рдо рд▓рдВрдмрд╛ рд╣реЛрдиреЗ рдкрд░ рднреА рдЬрд▓реНрджреА рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╕рд╛рде рд╣реА, рдпрджрд┐ рдЖрдк рдЙрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХрдо рдЕрд╕реНрдкрд╖реНрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рд▓рдХреНрд╖реНрдп рд╣реИред рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рдореАрдард╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдФрд░ рдХрдо рдЦреЛрдЬрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдФрд░ рд╣рдореЗрд╢рд╛ рдпрд╛рдж рд░рдЦреЗрдВ: рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛрдб рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рддреНрд╡рд░рд┐рдд рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдмрд╛рдж рдореЗрдВ рдХреЛрдб рдХреЛ рдкрдврд╝рдирд╛ рдФрд░ рд╕рдордЭрдирд╛ рдЬреНрдпрд╛рджрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рдХреНрд░рдорд╢рдГ рдПрдХ рдмрдЪреНрдЪреЗ рдХреЛ рдЧрд░реНрдн рдзрд╛рд░рдг рдХрд░рдиреЗ рдФрд░ рдкрд╛рд▓рдиреЗ рдЬреИрд╕рд╛ рд╣реИред

рдореИрдВ рдЖрдк рджреЛрдиреЛрдВ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВред рдореИрдВ рдПрдХ рдЧреЛрдбреЛрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧреЛрдбреЛрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЬреАрдбреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рддреЗрдЬ рд╣реИред рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рджреЛ рдмрд╛рд░ рд▓рдВрдмрд╛ рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЧрддрд┐ рд▓рд╛рдн рдЦреЛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рджреЛ рдмрд╛рд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рдХреЛрдб рдХреА рдкреВрд░реА рдкрдВрдХреНрддрд┐ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдмрд╛рд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЬрдм рдЖрдк рдХреЛрдбрд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд▓рдВрдмреЗ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдЪрд░ рдирд╛рдо рдЯрд╛рдЗрдк рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рдЕрдиреНрдп рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреА рдХреАрдордд рдкрд░ "рд╕реНрдкрд╖реНрдЯрддрд╛" рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмреЗ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЪрд░ рдирд╛рдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдВрджреЗрд╣ рд╣реИ рддреЛ рдЖрдк рдмрд┐рд▓реНрдЯ рдЗрди рд╣реЗрд▓реНрдк рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд▓рд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдПрдХ рдПрдкреАрдЖрдИ рд╕реАрдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдирд╛рдо рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдкрд╣рд▓реА рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдЖрдк рд╣рдореЗрд╢рд╛ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред рд╕реА рдореЗрдВ рдкреНрд░рд┐рдВрдЯрдл рд▓реЗрдирд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╕рд░рд▓ рд╣реИред рдЧреЛрдбреЛрдЯ рдореЗрдВ рдЖрдк рдЗрд╕реЗ send_formatted_string_to_standard_out. рдирд╛рдо рджреЗрдВрдЧреЗ рди рдХреЗрд╡рд▓ рдЖрдк рд╕рднреА рдХреЛ рдПрдкреАрдЖрдИ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдмрд▓реНрдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдореЗрдВ рдПрдХреАрдХреГрдд рджреГрд╖реНрдЯрд┐ рднреА рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЭреБрдВрдб рдЗрдХрдЯреНрдард╛ рд╣реЛ рдЧрдпрд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЗ рдЗрдВрдЬрди рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдРрд░реЗ рд▓реЗрдВ
remove -> remove_at _at рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ? рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА remove_value рд╣реИред рдЖрдк рдФрд░ рдХреНрдпрд╛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ?
erase -> remove_value рдЕрднреА рднреА рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рд╕реЗ "рд╕рд░рдгреА рд╕реЗ рдХрд┐рд╕реА рдорд╛рди рдХреА рдкрд╣рд▓реА рдШрдЯрдирд╛ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИред" рд╕рд╛рде рд╣реА рд▓реЛрдЧ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд╕рдВрдкреВрд░реНрдг рд╕рд░рдгреА рд╕реЗ рдПрдХ рдПрдХрд▓ рдорд╛рди рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ remove_first_occurance_of_value рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣реА рдХрд░рддрд╛ рд╣реИред рддреЛ рдЖрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рдВрдмрд╛ рдФрд░ рдЙрддрдирд╛ рд╣реА рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдмрдирд╛ рджрд┐рдпрд╛ред

рдЖрдкрдХреЗ рдкрд╛рд╕ remove рдФрд░ erase рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдп рд╣реИрдВ рд▓реЗрдХрд┐рди рдЖрдк рдЙрди рджреЛрдиреЛрдВ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд╕рд╛рде remove рдкрд░ рдПрдХ рд╣реА рднрд┐рдиреНрдирддрд╛ рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╡реЗ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдирд┐рдХрд╛рд▓реЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдорд┐рдЯрд╛рдП рдЧрдП рдорд╛рди рдХреЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред

рдпреЗ рдареАрдХ рд╣реИрдВ рдмрд╕ рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдкрдирд╛ рдХреЛрдб рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИрдВред
рдЙрд▓рдЯрд╛ -> рдЙрд▓реНрдЯрд╛
рдбреБрдкреНрд▓рд┐рдХреЗрдЯ -> рдХреНрд▓реЛрди
рдЦрд╛рд▓реА -> is_empty

рдЕрдЧрд░ рдЯреВрдЯрд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рдЗрд╕реЗ рдареАрдХ рди рдХрд░реЗрдВред

@CarlGustavAlbertDwarfsteinYung рд▓реЗрдХрд┐рди рдЖрдк рджреЛрдЧреБрдирд╛ рдЯрд╛рдЗрдк рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЯрд╛рдЗрдк рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ 3 рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдмрд╛рдж рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реИ рдФрд░ рдЖрдк рдкреВрд░реЗ рд╢рдмреНрджреЛрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдм рдЖрдк empty -> is_empty рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬрдм рдЖрдк empty рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдЖрдк рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рдЦрд╛рд▓реА рдХрд░ рджреЗрддрд╛ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдХрд┐рддрд╛рдм рдХреА рдЬрд╛рдБрдЪ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреБрдЫ рдЦрд╛рд▓реА рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рдХреБрдЫ рдФрд░ рд╣реИ? is_empty рдЖрдк рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рдмреВрд▓ рд╣реИ рдЬреЛ рд╕рдЪ рд╣реИ рдЕрдЧрд░ рдХреБрдЫ рдЦрд╛рд▓реА рд╣реИ рдФрд░ рдЭреВрдард╛ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдирд╛рдо рдХреЛ рдкрдврд╝рдХрд░ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреМрди рд╕реЗ рдлрдВрдХреНрд╢рди рдпрд╛ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк empty рдЬреИрд╕реЗ рдирд╛рдо рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ

@ рдлреЗрдирд┐рдХ-рдЧреЗрдорд┐рдВрдЧ рдореИрдВ рдЖрдкрдХреЛ рдЦрд╛рд▓реА рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ is_empty рд╕рдорд╛рди рд░реВрдк рд╕реЗ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдмрд╕ рдПрдХ рджреВрд╕рд░реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдВрдмрд╛ рд╣реИред

@CarlGustavAlbertDwarfsteinYung empty рдПрдХ рдХреНрд░рд┐рдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрджрд┐ рдЗрд╕реЗ рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рдПред is_empty рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЧреБрдгрд╡рддреНрддрд╛ рд╣реИред рдмреЗрд╢рдХ рдпрд╣ рднреНрд░рдо рдЖрдкрдХреЗ рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЗ рд╕реНрддрд░ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рднрд▓реЗ рд╣реА рдЖрдзреБрдирд┐рдХ рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ send_formatted_string_to_standard_out рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реЛ, рдЗрд╕реЗ sfstso рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдордзреНрдпрд╡рд░реНрддреА рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдВрдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рдд: рдкреВрд░реНрдг рдЖрдкрдХреЛ рджреЗрдЧрд╛ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдкред

@pycbouh рд▓реЛрдЧ рдХрд┐рддрдиреЗ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЗрд╕ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдФрд░ рдореИрдВрдиреЗ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдЗрдВрдЬрди рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕рд░рдгреА рдореЗрдВ empty рдмрдЬрд╛рдп is_empty ред

рдЖрдк рд▓реЛрдЧ рдпрд╣рд╛рдВ рдмреИрдареЗ рд╣реИрдВ рдЙрди рдЪреАрдЬреЛрдВ рдХреЛ рдареАрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рдиреЗ рдирд╣реАрдВ рдЪрд╛рд╣рд╛ рдпрд╛ рдирд╣реАрдВ рдорд╛рдВрдЧрд╛ред рд╣рд╛рдВ рд╢рдмреНрджрд╛рдВрдХрди рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ 2015 рдореЗрдВ рдЗрд╕ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдХрднреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреБрдЫ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдХрд╛рдлреА рд╕реНрд╡рд╛рдЧрдд рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ is_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЦрд╛рд▓реА рд╣реИ рддреЛ рдареАрдХ рд░рд╣реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдмрд╣реБрдд рд▓рдВрдмреЗ рдФрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реЛрддреЗ рд╣реИрдВред рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрди рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдЗрд╕ рдореЗрдЧрд╛рдереНрд░реЗрдб рдХрд╛ рдкреВрд░рд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рд╣реА рдЗрд╕ рдмрд╛рдд рдХрд╛ рдкреНрд░рдорд╛рдг рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЗрд╕рдХреА рдорд╛рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпреЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖрдкрдХреЗ рдпрд╛ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рд╣реАрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЦрд░рд╛рдм рдирд╛рдордХрд░рдг рдХреЗ рдХрд╛рд░рдг рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдкреАрдЖрдИ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдБ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдПрдХрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИрдВред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдорд╣рддреНрд╡ рдХреА рдмрд╛рдд рд╣реИ, рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЗрдВ рдпрд╛ рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЗрдиреНрд╣реЗрдВ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрдиреНрдп рд╡рд┐рдХрд╛рд╕ рд╕рдордп рд╕реЗ рджреВрд░ рдирд╣реАрдВ рд╣реИред

рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:

рдирд┐рдХрд╛рд▓реЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдорд┐рдЯрд╛рдП рдЧрдП рдорд╛рди рдХреЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред

рдЖрдк рдЗрд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА рд╡рд░реНрддрдорд╛рди рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдЧреЛрдбреЛрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирд╛рдордХрд░рдг рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ?

@pycbouh рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВрдиреЗ рд╕рд░рдгреА рдХрд╛ рдЙрджрд╛рд╣рд░рдг рднреА рджрд┐рдпрд╛ remove_at рддрдерд╛ remove_value ред remove_value рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрднреА рднреА рдЙрддрдирд╛ рд╣реА рднреНрд░рдорд┐рдд рд╣реИред рдореВрд▓реНрдп рдХрд╣рд╛рдБ рд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВ? рдЕрдВрдд рд╕реЗ рдорд╛рди рд╣рдЯрд╛рдПрдВ, рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рд╣рдЯрд╛рдПрдВ? рд╕рд░рдгреА рд╕реЗ рдХрд┐рд╕реА рдорд╛рди рдХреА рд╕рднреА рдЖрд╡реГрддреНрддрд┐рдпрд╛рдВ рдирд┐рдХрд╛рд▓реЗрдВ?

рдЕрдЧрд░ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рддреЛ remove рдФрд░ remove_first_occurence рдЬреЛ рдЗрд╕реЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╡рд░реНрдгрдирд╛рддреНрдордХ рджреЛрдиреЛрдВ рдмрдирд╛рддрд╛ рд╣реИред

@pycbouh рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдБред рдЗрд╕ рдзрд╛рдЧреЗ рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рд▓реЛрдЧ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВ рдФрд░ рдЙрди рдЪреАрдЬреЛрдВ рдХреЛ рдареАрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╢рд╛рд╕реНрддреНрд░реАрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдлреИрд╢рди рдирд╣реАрдВ рд╣реИрдВред рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдореИрдВ рдПрдХ рдмрд╛рд░ рднрд╡рд┐рд╖реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдерд╛ рдФрд░ рдореИрдВрдиреЗ рдПрдкреАрдЖрдИ рд╕реАрдЦрд╛ред рдореБрдЭреЗ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдордХрд░рдг рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред 50% рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдРрд╕реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рд╡рд░реНрддрди рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рднреА рдкрд░ рдзрдХреЗрд▓рдиреЗ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИрдВред рдХреНрдпрд╛ рд╣рдо рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдорддрджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдБ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИред рдПрдкреАрдЖрдИ рдирд╛рдордХрд░рдг рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдореЗрдВ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛/рджрд╛рдирдХрд░реНрддрд╛/рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд░рд╛рдп рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рд╡реЗ рд╕рдм рд╕рд╣рдордд рд╣реИрдВ рддреЛ рдореИрдВ рднреА рдмреЛрд░реНрдб рдкрд░ рд╣реВрдВред рдЪреБрдирд╛рд╡ рдХрд░рд╛рдПрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рд╣рд░ рдХреЛрдИ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд▓реЛрдЧ рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗрдВред рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ рд╡рд╣ рд╢рд╛рдпрдж рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рди рд╣реЛред

рдореИрдВрдиреЗ рдЬреЛ рджреЗрдЦрд╛ рд╣реИ, рдореИрдВ рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рдЧрднрдЧ 50% рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реВрдВред

50% рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдРрд╕реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реИрдВред

рдХреНрдпрд╛ рд╣рдо рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЖрдБрдХрдбрд╝реЛрдВ рдХреЛ рджрд░рд╡рд╛рдЬреЗ рдкрд░ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдХреГрдкрдпрд╛?

рдХреНрдпрд╛ рд╣рдо рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдорддрджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЪрд░реНрдЪрд╛ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рдЗрд╕реА рдХреЗ рд▓рд┐рдП рд╣реИрдВред

рдореИрдВрдиреЗ рдЬреЛ рджреЗрдЦрд╛ рд╣реИ, рдореИрдВ рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рдЧрднрдЧ 50% рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реВрдВред

рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ "рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реАрдЦрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдмрд╛рдж рд╕рднреА рдХреЛ рднреА рдРрд╕рд╛ рд╣реА рднреБрдЧрддрдирд╛ рдкрдбрд╝реЗ", рддреЛ рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреА рдЕрдорд╛рдиреНрдп рдЖрд▓реЛрдЪрдирд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ рд╡рд╣ рд╢рд╛рдпрдж рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рди рд╣реЛред

рдареАрдХ рд╡реИрд╕рд╛ рд╣реАред

рдХреНрдпрд╛ рд╣рдо рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЖрдБрдХрдбрд╝реЛрдВ рдХреЛ рджрд░рд╡рд╛рдЬреЗ рдкрд░ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдХреГрдкрдпрд╛?

рдкреВрд░реЗ рд╕рдореБрджрд╛рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣ рджрд╛рд╡рд╛ рдкрд╕рдВрдж рд╣реИ?

рдпреЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖрдкрдХреЗ рдпрд╛ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рд╣реАрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЦрд░рд╛рдм рдирд╛рдордХрд░рдг рдХреЗ рдХрд╛рд░рдг рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдкреАрдЖрдИ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИред

рдЖрдк рдХреИрд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЙрдирд╕реЗ рдкреВрдЫрд╛? рдХреНрдпрд╛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдпрд╛ рдЕрдзреНрдпрдпрди рдпрд╛ рдХреЛрдИ рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдереА? рдЖрдк рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рдХреИрд╕реЗ рдЖрдП?

рдореИрдВ рдПрдХ рдРрд╕рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдиреЗ рд╢реВрдиреНрдп рд╕реЗ рд╢реБрд░реБрдЖрдд рдХреА рдФрд░ рдПрдкреАрдЖрдИ рд╕реАрдЦрд╛ред рдирд╛рдордХрд░рдг рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред рд╕рднреА рдПрдкреАрдЖрдИ рдореЗрдВ рдХреБрдЫ рдЕрдЬреАрдм рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛рдПрдВ рд╣реИрдВред рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреБрдЫ рд╣рдж рддрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреЛрдб рдореЗрдВ рд▓рд┐рдЦ рд╕рдХреЗрдВред

@pycbouh рдпрджрд┐ рдЖрдк рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдВ рд╕рднреА рдирд╛рдордХрд░рдг рд╕реБрдЭрд╛рд╡ рдЕрдЪреНрдЫреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рд╕рдореНрдорд╛рдирдкреВрд░реНрд╡рдХ рдЖрдкрд╕реЗ рдЕрд╕рд╣рдордд рд╣реЛрдирд╛ рдкрдбрд╝реЗрдЧрд╛ред рдпрд╣ рдПрдХ рдРрд╕рд╛ рд╕реВрддреНрд░ рд╣реИ рдЬреЛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдпрд╣рд╛рдВ рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реВрдВ рдХрд┐ рдХреБрдЫ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рди рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ/рдпрд╛ рдорд╛рдВрдЧреЗ рдЧрдП рд╣реИрдВ рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рд▓рдВрдмреЗ рдФрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫреЗ рд╣реИрдВ рдФрд░ рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рд╣реИрдВред рдЖрдЗрдП рд╣рдо рд╕рднреА рд╕рд╛рдореВрд╣рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдЬреИрд╕реЗ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реЗ рд╕рдореБрджрд╛рдп рдХреЛ рдПрдкреАрдЖрдИ рдирд╛рдореЛрдВ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдирд╣реАрдВ рдерд╛ рдФрд░ рдХрднреА рдирд╣реАрдВ рдерд╛ рдФрд░ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реБрдЖрдд рдХреАред рдФрд░ рдореИрдВ рдореБрдЯреНрдареА рднрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдЬреЛ рдпрд╛ рддреЛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ рдФрд░ рдкреВрд░реЗ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдкреВрд░реНрдг рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред

рдЖрдк рдХреИрд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЙрдирд╕реЗ рдкреВрдЫрд╛?

рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЪрд╛рд╣реЗ рд╡рд╣ рдпрд╣рд╛рдБ GitHub рдкрд░ рд╣реЛ (рдФрд░ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдореБрджреНрджреЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ) рдпрд╛ рдЕрдиреНрдп рд╕рдореБрджрд╛рдп рдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЪреИрдирд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдордд рд╕рдордЭреЛ рдХрд┐ рд╣рдо рдпрд╣рд╛рдБ рдмреИрдареЗ рд╣реИрдВ рдЕрдкрдиреЗ рдирд┐рдЬреА рдЕрдВрдЧреЛрдВ рдХреЛ рдЪрд╛рдЯ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрдВрдЬрди рдореЗрдВ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдмрд╣реБрдд рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рднреА рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ, рдХреЛрдИ рдкреАрдЖрд░ рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рдереАред рд╡реЗ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ рдФрд░ рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдкреАрдЖрд░ рдкрд░ рдирдЬрд╝рд░ рд░рдЦреЗрдВ рдФрд░ рдпрджрд┐ рдХреЛрдИ рдЖрдкрдХреЛ рдареЗрд╕ рдкрд╣реБрдБрдЪрд╛рддрд╛ рд╣реИ рддреЛ рдЙрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕реНрд╡реАрдХреГрддрд┐ рдФрд░ рд╡рд┐рд▓рдп рдХрд░рдирд╛ рдЧреЛрдбреЛрдЯ рдХреЗ рдкреНрд░рдзрд╛рди рдордВрддреНрд░реА рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред рд░рдЪрдирд╛рддреНрдордХ рдмрдиреЗрдВ рдФрд░ рдЖрдк рдХреБрдЫ рдЕрд╡рд╛рдВрдЫрд┐рдд рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдордд рднреВрд▓рд┐рдП рдХрд┐ рдЖрдкрдиреЗ рдЦреБрдж рдПрдХ рдмрд╛рд░ рдХреНрдпрд╛ рдХрд╣рд╛ рдерд╛:

рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ рд╡рд╣ рд╢рд╛рдпрдж рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рди рд╣реЛред

рддреЛ рднрд▓реЗ рд╣реА рдЖрдкрдХреЛ рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рди рд╣реЛ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рджреВрд╕рд░реЛрдВ рдХреЗ рдкрд╛рд╕ рди рддреЛ рдерд╛ рдпрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

рд╕рднреА рдПрдкреАрдЖрдИ рдореЗрдВ рдХреБрдЫ рдЕрдЬреАрдм рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛рдПрдВ рд╣реИрдВред

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЕрдЧрд░ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдореНрдореЗрд▓рди рд╣реИред рд▓реЗрдХрд┐рди рдЧреЛрдбреЛрдЯ рдореЗрдВ рдХреБрдЫ рдПрдкреАрдЖрдИ рдХрд╛ рдирд╛рдо рдУрдкрди рд╕реЛрд░реНрд╕ рд╣реЛрдиреЗ рд╕реЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрддрдирд╛ рд╕реЛрдЪрд╛ рди рд╣реЛ рдЬрд┐рддрдирд╛ рдХрд┐ рдХреЛрдИ рдЙрдореНрдореАрдж рдХрд░реЗрдЧрд╛ред рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдореИрдВ рдЖрдкрд╕реЗ рдпрд╣ рдирд╣реАрдВ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣рд╛рдВ рдХреЗ рд▓реЛрдЧ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛рд╡ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред

рдХреГрдкрдпрд╛ рдпрд╣рд╛рдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЪрд░реНрдЪрд╛ рди рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдмреНрд▓реИрдВрдХреЗрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЬреЛ рдЖрдкрдХреЛ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИрдВ, рд╕рд╣рд╛рдпрдХ рдирд╣реАрдВ рд╣реИрдВред

рдХреЛрд░ рдбреЗрд╡рд▓рдкрд░ рдЗрди рд╕реБрдЭрд╛рд╡реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреА рдПрдХ-рдПрдХ рдХрд░рдХреЗ рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдХрдИ рдЕрдВрдд рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдмрд╛рдж рдореЗрдВ рдЕрдирд▓реЙрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдХреНрдпрд╛ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

  • AnimationPlayer : stop() рд╕реЗ pause() рдирд╛рдо рдмрджрд▓реЗрдВ (https://github.com/godotengine/godot/issues/16863#issuecomment-562363660, godotengine/godot-proposals#287)
  • AnimatedSprite : stop() рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ pause() (#31168) (рдкрд╣рд▓реЗ рд╣реА рдЬреЛрдбрд╝рд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ)
  • AnimatedSprite3D : stop() рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ pause() (#31168) (рдкрд╣рд▓реЗ рд╣реА рдЬреЛрдбрд╝рд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ)
  • Tween : stop() рд╕реЗ pause() , stop_all() рд╕реЗ pause_all() рдмрджрд▓реЗрдВ (PR #41794, #43442)

рдмреАрдЪ: рдирд╛рдо рдмрджрд▓реЗрдВ рд░реЛрдХреЗрдВ () рдХреЛ рд░реЛрдХреЗрдВ (), рд░реЛрдХреЗрдВ_рдСрд▓ () рд╕реЗ рд░реЛрдХреЗрдВ_рдСрд▓ () (#43442)

рдпрд╣ #41794 . рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

@opl- рдЗрд╕ рдкрд░ рднреА рдпрд╣рд╛рдБ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ: https://github.com/godotengine/godot-proposals/issues/287

рдХреБрдЫ рдирд╛рдо рдЬреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпреЗ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░рд╛ RNG рдХрд╛рд░реНрдп рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ:

  • seed() -> set_seed() (рд╢рд╛рдпрдж RandomNumberGenerator рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП get_seed() рднреА рдЬреЛрдбрд╝реЗрдВ) - рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реИред
  • rand_seed() -> rand_from_seed() - рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмреАрдЬ рдпрд╛ рдХреБрдЫ рдФрд░ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдмреАрдЬ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рджреЗрддрд╛ рд╣реИред

rand_seed () -> rand_from_seed () - рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмреАрдЬ рдпрд╛ рдХреБрдЫ рдФрд░ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдмреАрдЬ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рджреЗрддрд╛ рд╣реИред

рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рдмреАрдЬ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрд░рддрд╛ рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкрдврд╝реЗрдВред

rand_seed () -> rand_from_seed () - рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмреАрдЬ рдпрд╛ рдХреБрдЫ рдФрд░ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдмреАрдЬ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рджреЗрддрд╛ рд╣реИред

рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рдмреАрдЬ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрд░рддрд╛ рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкрдврд╝реЗрдВред

рдорд╛рдлрд╝ рдХрд░рдирд╛ред рдореЗрд░рд╛ рдорддрд▓рдм рдпрд╣ рдерд╛ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдпрд╣ рдХреЗрд╡рд▓ рдмреАрдЬ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрдирд╛рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ rand_int_from_seed() рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ int рджреЗрддрд╛ рд╣реИ? рдЕрд╕рд▓ рдореЗрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд░рд┐рдЯрд░реНрди рджреЗрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ ... рд╕рдВрдЦреНрдпрд╛" рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдЗрдВрдЯ рд╣реИ?

рддреЛ рдпрд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдмреАрдЬ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдпрд╛ рдмреАрдЬ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрд╕ рдирдП рдмреАрдЬ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдИ рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ? рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд╡рд░рдг рд╡рд╣рд╛рдВ рдХреБрдЫ рдкреБрдирд░реНрд╡рд┐рдХреНрд░рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рдРрд╕рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ рд╡рд╣ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ 2 рдЫреЛрдЯреЗ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдирд┐рдпрдВрддреНрд░рдг::рд▓рдВрдмрд┐рдд_рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ

рдЕрдкреНрд░рдпреБрдХреНрддред

Object::is_class(name) тЖТ Object::inherits_class(name) ред

рдореИрдВ рдЕрдм рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ GDScript is (рдЬреЛ рдХрд┐ extends btw рдереА) рдХреЗ

рднреНрд░рдо рдХреА рд╕реНрдерд┐рддрд┐ рдореИрдВ рдореЗрдВ рднрд╛рдЧ рдЬрд╛рдБрдЪ рд╡рд┐рд╢реЗрд╖ рд╡рд╕реНрддреБ рдкреНрд░рдХрд╛рд░ рдореМрдЬреВрджрд╛ (рд╡рд┐рд░рд╛рд╕рдд) рдХреЗ рдмрд┐рдирд╛ рдХреА рд╣реИ рдпрд╛ рдирд╣реАрдВ:

// Use case: we're only interested in editing "Node2D" classes directly.
node = Object::cast_to<Node2D>(p_edited);
if (!node) {
    return;
}
if (node->get_class() != "Node2D") {
    return; // OK, any class other than "Node2D" is not edited.
}
// vs.
if (!node->is_class("Node2D")) {
    return; // ERROR: derived classes like "Sprite" will also be edited...
}

рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рднреА рдЬрдЧрд╣реЛрдВ рдкрд░ "рд╡рд┐рд░рд╛рд╕рдд" рдореИрдХреНрд░реЛрдЬрд╝/рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ inherits_class рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдпрд╣ рднреА рджреЗрдЦреЗрдВ https://github.com/godotengine/godot/issues/21461#issuecomment -416155187:

get_class() рдФрд░ is_class() рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдореБрдЭреЗ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

rgrams picture rgrams  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Spooner picture Spooner  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bojidar-bg picture bojidar-bg  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ndee85 picture ndee85  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nunodonato picture nunodonato  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ