for some reason this code teleports the gameobject it is attached to to 0, 0, 0 at start and I can’t figure out why.
private Zombie Zombie;
private Rigidbody2D rb;
[SerializeField] private float MoveSpeed;
[SerializeField] private float RoamRadius;
private Vector2 StartPos;
private Vector2 ToPos;
private Vector2 CurrentPos;
void Start()
{
Zombie = GetComponent<Zombie>();
rb = GetComponent<Rigidbody2D>();
StartPos = new Vector2(transform.position.x, transform.position.y);
}
void FixedUpdate()
{
if(Zombie.IsHostile == false)
{
transform.position = Vector2.MoveTowards(CurrentPos, ToPos, MoveSpeed * Time.deltaTime);
}
}
void Update()
{
if(Zombie.IsHostile == false)
{
CurrentPos = new Vector2(transform.position.x, transform.position.y);
if(CurrentPos == ToPos)
{
ToPos = StartPos + (Random.insideUnitCircle * RoamRadius);
}
}
}