Y的小可爱 2022-09-22 11:47 采纳率: 36%
浏览 31

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

img


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


private void Start()
    {
        Player = GameObject.FindGameObjectWithTag("Player");
        RR = Player.GetComponent<BikeController>();
        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

  • 写回答

1条回答 默认 最新

  • 带酒书生 2022-09-22 15:32
    关注

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

    评论

报告相同问题?

问题事件

  • 创建了问题 9月22日