Unity相机跟随游戏角色移动旋转(第三人称为主)

在unity中相机很多时候是自动跟随玩家移动和旋转的。

我们想要实现该功能是有很多方法的,最简单的就是:

      直接将相机挂载到角色上。

      这样会导致很多局限性比如:

                                          A:你看到的是瞬移,而不是旋转过去。

                                          B:你看到的是地面和场景旋转,而不是人旋转。

这是不符合现实情况的。我们一般游戏里面旋转是。玩家快速发生旋转,操作,而相机则是圆滑的有一定时间的旋转到固定位置,最终保持和玩家不变。

那么我们明白了需求之后要怎么做呢?

首先我们肯定是要记录相机和角色的偏移的。

mainCamera = GameObject.Find("Main Camera");
        player = GameObject.Find("Player");
        offset = -player.transform.position + mainCamera.transform.position;
        quaternion = new Quaternion();

记录偏移之后是按照偏移和角色的旋转位置进行计算出他的目标位置并进行跟随:

mainCamera.transform.rotation = 
                Quaternion.Lerp(mainCamera.transform.rotation,
                player.transform.rotation, 1.0f/LerpCount);

        mainCamera.transform.position = 
                player.transform.position + 
                mainCamera.transform.rotation*offset;

           更具如此既可以跟随角色移动又可以圆滑的进行旋转,且不会出现只使用起点终点导致的相机先靠近角色在远离角色的情况。

Unity中,第三人称跟随视角是一种相机跟随玩家角色的效果,让玩家能够从角色身后或角度上方观察游戏场景。为了实现这一效果,需要进行以下步骤: 1. 首先,我们需要记录相机角色之间的偏移量。通过获取相机角色的GameObject,以及计算它们之间的偏移量来实现。例如,可以使用以下代码来记录偏移量: mainCamera = GameObject.Find("Main Camera"); player = GameObject.Find("Player"); offset = -player.transform.position + mainCamera.transform.position; 2. 接下来,我们需要根据偏移量和角色旋转位置来计算相机的目标位置,并实现相机跟随效果。可以使用以下代码来实现: mainCamera.transform.rotation = Quaternion.Lerp(mainCamera.transform.rotation, player.transform.rotation, 1.0f/LerpCount); mainCamera.transform.position = player.transform.position + mainCamera.transform.rotation * offset; 3. 这样实现的效果是相机会平滑地跟随玩家角色旋转移动相机会在一定时间内旋转到固定位置,最终保持与玩家角色相对位置变。 需要注意的是,以上代码只是示例,实际使用时可能需要根据具体情况进行调整和优化。同时,还可以根据需求添加额外的功能,如限制相机移动范围、调整相机的缩放等,以满足游戏的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Unity相机跟随游戏角色移动旋转第三人称为主)](https://blog.youkuaiyun.com/fairen/article/details/119827181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值