同时处理移动和旋转物体



它有类似的感觉,但这段代码一直跟着玩家。

private void FixedUpdate()
{
Vector3 playerPos = _player.transform.position;
Vector3 dirVec = playerPos - transform.position;
dirVec = dirVec.normalized;

transform.Translate(dirVec * 1f * Time.fixedDeltaTime,Space.World);
transform.Rotate(0, 0, -Time.fixedDeltaTime * speed);   
}

我如何才能只在玩家的方向上执行它而不遵循它?

使用transorfm.lookAt()进行简单的指示:

void FixedUpdate()
{
transform.LookAt(_player.transform, Vector3.up);
}

public float rotateTime = 1f; // must not be zero
private void FixedUpdate()
{
var dirVec = _player.transform.position - transform.position;

var lookRotation = Quaternion.LookRotation(dirVec);

transform.rotation = Quaternion.Slerp(transform.rotation, lookRotation, Time.fixedDeltaTime/rotateTime);
}

最新更新