首页 > 解决方案 > C# 快速问题:为什么将 Animator 放在 anim 前面会出错?

问题描述

这段代码是如何工作的:

private Animator anim;

void Start()
{
   anim = GetComponent<Animator>();
}

虽然此代码没有:

private Animator anim;

void Start()
{
    Animator anim = GetComponent<Animator>();
}

标签: c#unity3danimation

解决方案


非常简单,

用这行代码

private Animator anim;

你正在制作一个名为“anim”的变量

这适用于整个脚本。

然后,您尝试在“开始”中创建另一个名为“anim”的变量。

这是一个古老的gotchya :)

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

void Start()
{
    Animator anim = GetComponent<Animator>();
}

但这意味着使用名为“anim”的现有变量:

void Start()
{
   anim = GetComponent<Animator>();
}

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


推荐阅读