C# 我能';t将游戏对象的位置输入vector3变量

C# 我能';t将游戏对象的位置输入vector3变量,c#,unity3d,C#,Unity3d,如你所见,我试图创建一个vector3变量来存储游戏对象的位置,我得到了以下错误: 字段初始值设定项不能引用非静态字段、方法或 财产 我曾尝试将gameobject转换为静态变量,但在Unity内部出现了另一个错误: NullReferenceException:对象引用未设置为 反对 我怎样才能解决这个问题 public GameObject playerobject; private Vector3 playerposition = playerobject.transform.posit

如你所见,我试图创建一个vector3变量来存储游戏对象的位置,我得到了以下错误:

字段初始值设定项不能引用非静态字段、方法或 财产

我曾尝试将gameobject转换为静态变量,但在Unity内部出现了另一个错误:

NullReferenceException:对象引用未设置为 反对

我怎样才能解决这个问题

public GameObject playerobject;

private Vector3 playerposition = playerobject.transform.position;

您必须在函数中初始化
playerposition
,而不是在声明位置。
启动
唤醒
功能可以实现这一点。如果需要每帧更新
playerposition
变量,请在
update
功能中执行此操作。原因是,用于初始化函数外部另一个变量的变量必须是
静态
常量
变量

我确信您不希望
playerobject
static
const
,因为您希望在编辑器中分配它,所以在函数中执行它是正确的方法

public GameObject playerobject;
private Vector3 playerposition;

void Awake()
{
    playerposition = playerobject.transform.position;
}

之后,确保将对象应用到编辑器中的
playerobject
插槽

非常感谢你!