public float speed
{
get
{
if (isAtPlayer)
return 0;
else
return speed;
}
set
{
speed = value;
}
}
when I start the game it instantly crashes
I have tried to remove it then it doesn’t crash
public float speed
{
get
{
if (isAtPlayer)
return 0;
else
return speed;
}
set
{
speed = value;
}
}
when I start the game it instantly crashes
I have tried to remove it then it doesn’t crash
It’s because you’ve created an infinite loop. Assuming that isAtPlayer is false, then your get says to return speed, and when you access that speed the get says to return speed, which says to return speed, which says to return speed…
You need to have a private backing variable, such as _speed.
private float _speed;
public float speed
{
get
{
if (isAtPlayer)
return 0;
else
return _speed;
}
set
{
_speed = value;
}
}