unity 摄像机如何跟多个角色一起移动

img


比如说 四个红色物体是角色,摄像机如何根据他们的移动而移动,他们之间距离远了摄像机视野大 近了视野小。让他们始终保持在摄像机范围内。


private void Start()
    {
        Player = GameObject.FindGameObjectWithTag("Player");
        RR = Player.GetComponent();
        cameralookAt = Player.transform.Find("camera lookAt").gameObject;
        cameraPos = Player.transform.Find("camera constraint").gameObject;

        defaltFOV = Camera.main.fieldOfView;
        desiredFOV = defaltFOV + 15;
    }

    private void FixedUpdate()
    {
        follow();
        //boostFOV ();
    }
    private void follow()
    {
        speed = RR.KPH / smothTime;
        gameObject.transform.position = Vector3.Lerp(transform.position, cameraPos.transform.position, Time.deltaTime * speed);
        gameObject.transform.LookAt(cameralookAt.gameObject.transform.position);
    }

之前是单角色

img

我假设你的几个角色都是朝着Z轴向前移动的,那你相机位置变化也仅仅是Z轴值的变化,你只需要根据最远的角色和最近的角色求出z的差值然后除于二再加上最近角色的z,基本上可以保证所有角色始终在视野范围内,如果还有x轴的移动,同理