Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как изменить переменную GODOT 4

Никита Кулбараков Ученик (104), открыт 2 дня назад
Как изменить переменную из одного скрипта в другом GODOT 4
3 ответа
Сталкер Оракул (57801) 2 дня назад
Выведи ее в глобальную область видимости
Милана Просветленный (25492) 2 дня назад
Несколько способов

1. Использование сигналов

 # В скрипте источника (например, Player.gd) 
extends Node

var target_node: Node

func _ready():
connect("update_variable", target_node, "_on_Player_update_variable")

func update_variable(new_value):
emit_signal("update_variable", new_value)

# В скрипте получателя (например, AnotherNode.gd)
extends Node

func _on_Player_update_variable(new_value):
# Здесь обновляется переменная или выполняется другое действие
print("Переменная обновлена на:", new_value)
2. Использование глобальных переменных
 # Глобальная переменная 
@export var global_var: int = 0

# В скрипте, который изменяет переменную
func change_global_var(new_value):
global_var = new_value

# В любом другом скрипте, который читает переменную
func get_global_var():
return global_var

3. Использование родительских объектов или владельцев

 # В дочернем объекте 
func get_parent_var():
return owner.some_variable

# В родительском объекте
var some_variable: int = 42
Никита КулбараковУченик (104) 7 часов назад
Какой из этих вариантов более оптимизированный?
꧁Tester꧂ ︎ Мудрец (14752) 2 дня назад
В питоне это делается через импорт модулей.
Так к примеру можно импортировать переменные, функции и классы и делать с ними все что задумано.
Но это не значит, что можно так перманентно изменить что-то в модуле. Чтобы перманентно. то это надо перезаписывать сам файл модуля с заменой его содержимого.
В некоторых библиотеках есть такая фича как Сигнал. К примеру в QT.(так можно передавать какое-то значение, без экспорта самого модуля). Иногда это нужно, чтобы избежать циклический импорт.
Похожие вопросы