v4.2.2.stable.official [15073afe3]
I am working on my first game and I am working on a follow state for my finite state machine.
I have an enemy skeleton as a CharacterBody2D node named “skeletonEnemy” and a player character as a CharacterBody2D node named “player”.
My code is as follows.
extends State
class_name EnemeyFollow
@export var enemy: CharacterBody2D
@export var targetName:=""
var followTarget: CharacterBody2D
var move_speed = 100
var move_direction : Vector2
@export var followRadius:=25
func Enter():
followTarget = get_tree().get_first_node_in_group(targetName)
print("Target is ",targetName)
move_speed = enemy.base_speed
#print(move_speed," is idle movespeed.")
func Update(_delta):
pass
func Physics_Update(_delta):
move_direction = followTarget.global_position - enemy.global_position
if move_direction.length() > followRadius:
enemy.velocity = move_direction.normalized() * move_speed
else:
enemy.velocity = Vector2.ZERO
When I run my tester scene with the target set to “player” I get the following error.
Invalid get index 'global_position'(on base:'null instance').
From what I can understand, the line of code setting the followTarget CharacterBody2D is returning <Object#null> instead of the player CharacterBody2D.
I’m unsure how to set the followTarget to the player CharacterBody2D. Does anyone have any suggestions or know why I am not getting the correct assignment for followTarget?