Unity之第三人称俯视聚焦角色视角

Unity之第三人称俯视聚焦角色视角

功能描述

摄像机以第三人称视角俯瞰角色,可以进行自由俯瞰观察角色和游戏场景。

具体描述

玩家点击回合中的一名角色后,摄像机移动到与角色保持一定的距离和角度俯瞰角色,长按鼠标右键可以进行自由更改视角,但不能够移动摄像机位置

功能实现

步骤分解

  • 点击角色实现摄像机移动并保持一定距离
  • 长按右键可以只有转动视角

预设一个合适的摄像机高度,然后摄像机在这个高度向角色所在方向平移,并且摄像机摄像方向是面朝角色。

当前选择一个距离:14f


public void Move()
{
targetPosition = gameObject1.transform.position;
// 计算方向向量
Vector3 direction = (targetPosition - transform.position).normalized;

direction.y = 0; // 计算到目标的距离 float distanceToTarget = Vector3.Distance(transform.position, targetPosition); // 如果距离大于指定的停止距离,则继续移动 if (distanceToTarget > stoppingDistance) { // 移动游戏物体 transform.position += direction * moveSpeed * Time.deltaTime; } }

关于视角移动


 public void CameraRotate()
    {
        // 检测鼠标右键是否被按下
        if (Input.GetMouseButtonDown(1))
        {
            isRotating = true;
        }

        // 当鼠标右键被按住时
        if (isRotating)
        {
            // 获取鼠标在水平和垂直方向上的移动增量
            float mouseX = Input.GetAxis("Mouse X");
            float mouseY = Input.GetAxis("Mouse Y");

            // 根据移动增量旋转摄像机
            transform.Rotate(Vector3.up, mouseX * rotationSpeed * Time.deltaTime, Space.World);
            transform.Rotate(Vector3.left, mouseY * rotationSpeed * Time.deltaTime, Space.Self);
        }

        // 当鼠标右键释放时停止旋转
        if (Input.GetMouseButtonUp(1))
        {
            isRotating = false;
        }
    }
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇