前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity里摄像机绕某一点进行旋转

Unity里摄像机绕某一点进行旋转

原创
作者头像
若水xii
修改2024-05-08 11:40:21
1070
修改2024-05-08 11:40:21

平时经常能遇到,摄像机绕某一点进行旋转的需求,比如调整视角、更加详细展示某个物体,换座位等。我最近也是帮同事优化了一个换座位时调整摄像机视角的需求,关键代码如下。

代码语言:csharp
复制
private void Update()
{
    if (Input.GetKeyUp(KeyCode.LeftArrow))
    {
        StartCoroutine(RotateCamera(pivotPos, pivotPos.forward, 36*5));
    }
    if (Input.GetKeyUp(KeyCode.RightArrow))
    {
        StartCoroutine(RotateCamera(pivotPos, pivotPos.forward, -36*5));
    }
}

IEnumerator RotateCamera(Transform target, Vector3 axis, int angle)
{
    int direction = angle > 0 ? 2 : -2;
    int times= Mathf.Abs(angle);
    for (int i = 0; i < times; i+=2)
    {
        mainCamera.transform.RotateAround(target.position, axis, direction);
        yield return new WaitForEndOfFrame();
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com