c# - 在不实例化的情况下访问 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 谢谢!
解决方案
您的类很可能继承自MonoBehaviour
哪个继承自Behaviour
哪个继承自Component
。
Component
工具GetComponent
Fazit:您正在调用此方法的实例就是this
,该实例Start
被调用。
顺便说一句,Transform
已经有一个专用属性Component.transform
,因此您不应该使用它GetComponent
来获取Transform
参考。
推荐阅读
- django - Django 2.1.7: Makemigrations command result: "No change detected in app"
- yii - Yii Cache, CDbCommand::execute() fail: SQLSTATE[23000]: Integrity constraint violation: 19 UNIQUE constraint failed: YiiCache.id
- maven - ANT Vs MAVEN comparison with respect to Build time
- scenekit - Converting an MLMultiArray (output shape) to SCNGeometry
- ruby - 如何滚动到 Ruby 和 Selenium 中的元素
- node.js - 使用 sinon 模拟 serverless-mysql
- json - 将 JSON POST 数据传递给 Ignite 2.7 ComputeTask
- angular - selectionStart and selectionEnd return nulls in Angular
- java - 尽管指定了 USE_COMPUTED_SIZE,JavaFX 和 Scene Builder 仍会剪辑场景边缘
- jquery - jQuery获取最近的相邻元素