我正在使用Unity对我的独立游戏进行最后的收尾工作,我一直在考虑提高我的游戏性能。我想知道GameObject.FindObjectOfType()是否比GameObject.Find()便宜?谢谢!
hgb9j2n61#
如果你真的关心性能,那就不要使用它们--或者至少最小化它。使用这些方法会循环遍历GameObject列表并返回对象,因为循环会对性能造成很大影响。所以如果你使用它们,千万不要在Update()-方法中调用它们,在Start()或任何不经常调用的方法中调用它们并存储值。老实说,我不知道哪一个更快。如果要我猜的话,我会说是GameObject.Find(),因为它只检查名称,而FindObjectOfType()检查组件。但即使我考虑使用FindObjectOfType(),因为Find()使用字符串,而您可能希望避免它。因为输入错误(如果您没有将它储存在单一类别中,而只是指涉变数)
Update()
GameObject.Find()
FindObjectOfType()
Find()
1条答案
按热度按时间hgb9j2n61#
如果你真的关心性能,那就不要使用它们--或者至少最小化它。
使用这些方法会循环遍历GameObject列表并返回对象,因为循环会对性能造成很大影响。所以如果你使用它们,千万不要在
Update()
-方法中调用它们,在Start()或任何不经常调用的方法中调用它们并存储值。老实说,我不知道哪一个更快。如果要我猜的话,我会说是
GameObject.Find()
,因为它只检查名称,而FindObjectOfType()
检查组件。但即使我考虑使用FindObjectOfType()
,因为Find()
使用字符串,而您可能希望避免它。因为输入错误(如果您没有将它储存在单一类别中,而只是指涉变数)