Я пытаюсь изменить скорость передвижения игрока в зависимости от того, находятся ли они в бу sh или нет. Это суть того, что я пытаюсь выполнить. sh:
const Grass = preload("res://World/Grass/Grass.tscn")
onready var grass = Grass.instance()
func move():
grass = Grass.instance()
if grass.player_in_grass():
velocity = move_and_slide(velocity / BUSH_FRICTION_MULTIPLIER)
else:
velocity = move_and_slide(velocity)
Проблема, с которой я столкнулся, заключается в том, что я не могу понять, каким должен быть код для проверки. Я попытался создать зону обнаружения игрока для травы, переключая ее значение внутри нее:
var player = null
func player_is_visible():
return player != null
func _on_PlayerDetectionZone_body_entered(body):
player = body
func _on_PlayerDetectionZone_body_exited(body):
player = null
И мой Grass.gd выглядит так:
onready var playerDetectionZone = $PlayerDetectionZone
func player_in_grass():
if playerDetectionZone.player != null:
return true
else:
return false
В конце концов из этого я получаю сообщение об ошибке:
Invalid get index 'player' (on base: 'Nil').
Ошибка перенаправляет меня на 'if playerDetectionZone.player! = null:'.
Что я делаю не так? Следует ли мне проверять это / делать это другим, более простым способом, о котором вы знаете? Все отзывы приветствуются. Спасибо.