瞄准敌人时将相机锁定在玩家身后

时间:2018-08-08 18:22:10

标签: c# unity3d camera

类似于“火箭联盟”或“王国之心”的东西,其中相机锁定在目标上,但仍将玩家保持在屏幕中央。我已经将相机放置在播放器中,但尝试了其他解决方案后,仍然无法正确放置相机。

public List<Transform> targets;

private void EnemyCam()
{
    Vector3 centerPoint = GetCenterPoint();
    transform.LookAt(centerPoint);

    Vector3 newPos = centerPoint;

    transform.position = Vector3.SmoothDamp(transform.position, newPos, ref 
    velocity, smoothTime);
}

private Vector3 GetCenterPoint()
{
    if (targets.Count == 1)
        return targets[0].position;

    var bounds = new Bounds(targets[0].position, Vector3.zero);

    for (int i = 0; i < targets.Count; ++i)
        bounds.Encapsulate(targets[i].position);

    return bounds.center;
}

1 个答案:

答案 0 :(得分:0)

如果您要按脚本移动摄像机,则它不应同时是移动播放器的子级。您正在脚本中设置一些位置,但是与此同时,该位置也会被父对象修改,因此最终结果是不可预测的。