Unity 2D-精灵在跟随对象时闪烁
本文关键字:对象 闪烁 跟随 2D- 精灵 Unity | 更新日期: 2023-09-27 18:26:58
im创建一个简单的脚本,该脚本告诉游戏对象它需要在定义的距离内跟随其他游戏对象。
代码:
void Update()
{
objPos = GameObject.FindGameObjectWithTag("Player").transform.position;
transform.position = new Vector3(objPos.x + 0.5f, objPos.y + 0.5f);
}
问题是:以下游戏对象正在闪烁。当你观看它时,它似乎落后于跟随的游戏对象几帧。我以前在我早期的原型中注意到了它,但现在它对我的新游戏至关重要。所以我认为这是一个非常普遍的问题。
这种不必要的行为有解决办法吗?
感谢
GameObject.FindGameObjectWithTag("Player")的性能成本很高,不是每帧都使用它,而是保存一个玩家的实例。如果玩家在场景中保持不变,
public Transform playerTransform;
void Update()
{
transform.position = playerTransform.position + new Vector3(0.5f, 0.5f);
}
然后使用检查器将Unity编辑器中的Player变换指定给该对象。(或在代码中动态)
如果您的Player对象被破坏,并且一个新的对象偶尔实例化一次,您可以将新的对象分配给跟随对象,也可以使用类似以下的简单访问器方法:
Transform _playerTransform;
Transform playerTransform
{
get
{
if(_playerTransform == null)
{
_playerTransform = GameObject.FindGameObjectWithTag("Player").transform;
}
return _playerTransform;
}
}
void Update()
{
transform.position = playerTransform.position + new Vector3(0.5f, 0.5f);
}