C#快速提问:为什么把动画师放在动画前面会产生错误?

C#快速提问:为什么把动画师放在动画前面会产生错误?,c#,unity3d,animation,C#,Unity3d,Animation,该代码是如何工作的: private Animator anim; void Start() { anim = GetComponent<Animator>(); } 私人动画师动画; void Start() { anim=GetComponent(); } 虽然此代码没有: private Animator anim; void Start() { Animator anim = GetComponent<Animator>(); } 私人动画

该代码是如何工作的:

private Animator anim;

void Start()
{
   anim = GetComponent<Animator>();
}
私人动画师动画;
void Start()
{
anim=GetComponent();
}
虽然此代码没有:

private Animator anim;

void Start()
{
    Animator anim = GetComponent<Animator>();
}
私人动画师动画;
void Start()
{
Animator anim=GetComponent();
}
非常简单

用这行代码

private Animator anim;
您正在生成一个名为“anim”的变量

这适用于整个脚本

然后,您尝试在“开始”中创建另一个变量,该变量也被命名为“anim”

这是一个古老的哥特西亚:)

这意味着创建一个名为“anim”的新变量:

void Start()
{
Animator anim=GetComponent();
}
但这意味着使用名为“anim”的现有变量:

void Start()
{
anim=GetComponent();
}

您不能说“创建一个名为'anim'的新变量”,因为整个脚本中已经有一个名为'anim'的变量

也许是我的老眼睛,但那些方块看起来是一样的。假设第一个块中有一个var吗?@DougDawson,OP已经有了一个同名的类/脚本变量!
void Start()
{
    Animator anim = GetComponent<Animator>();
}
void Start()
{
   anim = GetComponent<Animator>();
}