首页 > 解决方案 > 在不实例化的情况下访问 GetComponent()

问题描述

我是 Unity 游戏开发的新手,我发现代码中的以下用法有点令人困惑。

private Transform enemy;

// Start is called before the first frame update
void Start()
{
    enemy = GetComponent<Transform>();
}

根据文档 GetComponent() 是一个公共函数。那么如何在不实例化的情况下访问它呢?我发现在 Unity 的社区上提出了类似的问题,但我没有找到任何答案准确地回答了这个问题。请帮助我理解这一点。Unity 论坛上的问题链接如下。 问题

我的 Unity 版本是 2018.4.16f1 谢谢!

标签: c#unity3dgame-development

解决方案


您的类很可能继承自MonoBehaviour哪个继承自Behaviour哪个继承自Component

Component工具GetComponent

Fazit:您正在调用此方法的实例就是this,该实例Start被调用。


顺便说一句,Transform已经有一个专用属性Component.transform,因此您不应该使用它GetComponent来获取Transform参考。


推荐阅读