【unity3d学习笔记】RPG 中控制相机距离拉近拉远以及旋转相机视角
来源:互联网 发布:四层横移编程 编辑:程序博客网 时间:2024/05/16 17:43
附加于相机上的代码:
private Transform player; //跟随目标 Vector3 tempPosition=Vector3.zero; Vector3 offsetPosition; //相机距离目标之间的差向量 float distance = 0.0f; public float speed = 1; public float rotateSpeed = 4; // Use this for initialization void Start () { player = GameObject.FindGameObjectWithTag(tags.player).transform; transform.LookAt(player.position); //计算差向量 offsetPosition = transform.position - player.position; } // Update is called once per frame void Update () { //控制相机跟随目标 transform.position = offsetPosition + player.position; Rotate(); Distance(); } //控制相机的拉近及拉远 void Distance() { distance = offsetPosition.magnitude; //滚轮控制相机距离目标的距离 distance = distance + Input.GetAxis("Mouse ScrollWheel") * speed; //控制最小与最大距离 distance = Mathf.Clamp(distance, 5, 20); offsetPosition = offsetPosition.normalized * distance; } //控制相机围绕目标旋转 void Rotate() { if(Input.GetMouseButton(0)) { Vector3 tempPos = transform.position; Quaternion tempRot = transform.rotation; transform.RotateAround(player.position, player.up, rotateSpeed * Input.GetAxis("Mouse X"));//**注意这里围绕旋转的轴是相机本身的x轴,类似天体运动中的自转** transform.RotateAround(player.position, transform.right, rotateSpeed * Input.GetAxis("Mouse Y")); float x = transform.eulerAngles.x;//限制旋转角度在10 - 80 之间 if(x<10||x>80) { transform.position = tempPos; transform.rotation = tempRot; } }//注意一定要在旋转后更新差向量 offsetPosition = transform.position - player.position; }
阅读全文
1 0
- 【unity3d学习笔记】RPG 中控制相机距离拉近拉远以及旋转相机视角
- Unity 相机的移动旋转以及拉近拉远的原理
- Unity3d鼠标控制视角拉近跟拉远
- RPG游戏人物视角控制,相机跟随
- unity3D鼠标滚轮来实现镜头拉近拉远及视角旋转
- Unity3D 相机绕对象旋转和调整距离
- Unity摄像机旋转以及拉近拉远代码
- Unity3D 相机控制
- Unity3D控制物体前后左右移动、旋转及相机跟随
- unity 实现了鼠标滚动放大和缩小物体暨拉近拉远相机的效果
- Unity3d--实现第三人称视角(相机跟随)
- Unity3D的相机跟随、视野缩放以及旋转
- Unity3D脚本:相机旋转代码
- unity3D基础学习 通过判断鼠标点击的是否是目标物体,物体旋转,滑动滚轮缩放拉近视角
- Unity3D实现摄像机视野的拉远拉近和跟随主角旋转效果
- 4、对正投影相机以及透视相机的使用,以及对场景通过鼠标控制大小以及旋转
- Unity3D学习之(粒子系统以及相机的跟随)
- Unity通过鼠标实现相机视角旋转和缩放
- MySql问题积累
- C++写时拷贝
- 1067. Sort with Swap(0,*) (25)
- 从Javascript向Chrome插件传递int参数的问题
- C语言:gets/puts输入输出字符串
- 【unity3d学习笔记】RPG 中控制相机距离拉近拉远以及旋转相机视角
- 软件设计原则-- 开放-封闭原则
- 浪里个浪 FZU
- HDU_【2017 Multi-University Training Contest 1】——1001 Add More Zero
- STL之迭代器与traits编程技法
- 11、Bootstrap--图片样式、辅助类样式及CSS组件
- JavaScript对象中的属性能否有对象类型
- 粒子系统-烟花效果的实现
- JavaWeb(1)_doGet与doPost区别