我是Unity Game Development的新手,在代码中发现以下用法有点令人困惑。
private Transform enemy;
// Start is called before the first frame update
void Start()
{
enemy = GetComponent<Transform>();
}
根据文档GetComponent()是公共函数。那么如何在不实例化的情况下访问它呢? 我发现在Unity社区中有人问过类似的问题,但我没有找到确切答案可以回答问题的任何答案。请帮助我理解这一点。 下面是Unity论坛上问题的链接。 Question
我的Unity版本是2018.4.16f1 谢谢!
答案 0 :(得分:2)
您的类最有可能从MonoBehaviour
继承,而Behaviour
则从Component
继承。
MyItem
实现GetComponent
Fazit:您正在调用此方法的实例仅是Component
,实例this
被调用。
Start
的顺便说一句,已经有一个专用属性Component.transform
,因此您不应使用Transform
来获得GetComponent
引用。
答案 1 :(得分:1)
您正在调用将MonoBehavior添加到的GameObject的GetComponent()方法,并将其分配给“变形”敌人。它甚至是您链接的问题中的第一个答案。