Вы должны инициализировать playerposition
в функции вместо того, где она объявлена.Функция Start
или Awake
подходит для этого.Если вам нужно обновлять переменную playerposition
в каждом кадре, сделайте это в функции Update
.Причина этого заключается в том, что переменная, которую вы используете для инициализации другой переменной вне функции, должна быть переменной static
или const
.
Я уверен, что вы не хотите, чтобы playerobject
был static
или const
, потому что вы хотите назначить его в редакторе, поэтому выполнение этого в функции является правильным способом сделать это.
public GameObject playerobject;
private Vector3 playerposition;
void Awake()
{
playerposition = playerobject.transform.position;
}
После этого обязательно добавьте Объект в слот playerobject
в Редакторе.