Unity相机视野的缩放,旋转及跟随
来源:互联网 发布:淘宝助理导出宝贝详情 编辑:程序博客网 时间:2024/05/21 08:33
首先声明,博主使用的是Unity5.3.2(64)
游戏开发中,经常会遇到相机视野的拉近,拉远以及旋转,跟随的问题,这里我们只搞一种方式
直接上代码:
using UnityEngine;using System.Collections;public class FollowPlayer : MonoBehaviour { public float scrollSpeed = 1;//相机视野缩放系数 public float distance;//相机到目标的距离 public float rotateSpeed = 2;//相机视野旋转系数 private Transform player;//跟随的目标 private Vector3 offsetPosition;//位置偏移 private bool isRotating = false;//用来判断是否正在旋转 // Use this for initialization void Start () { player = GameObject.FindGameObjectWithTag ("Player").transform;//获取跟随目标 transform.LookAt (player.position);//使相机朝向目标 offsetPosition = transform.position - player.position;//获得相机与目标的位置的偏移量 } // Update is called once per frame void Update () { transform.position = offsetPosition + player.position;//实现相机跟随 //处理视野的旋转 RotateView(); //处理视野的拉近拉远效果 ScrollView(); } void ScrollView(){ distance = offsetPosition.magnitude;//得到偏移向量的长度 distance += Input.GetAxis ("Mouse ScrollWheel")*scrollSpeed;//获取鼠标中键*相机视野缩放系数 distance = Mathf.Clamp (distance,2.5f,15);//限定距离最小及最大值 offsetPosition = offsetPosition.normalized * distance;//更新位置偏移 } void RotateView(){// Input.GetAxis ("Mouse X");//得到鼠标在水平方向的滑动// Input.GetAxis ("Mouse Y");//得到鼠标在垂直方向的滑动 if (Input.GetMouseButtonDown (1)) { isRotating = true; } if (Input.GetMouseButtonUp (1)) { isRotating = false; } if (isRotating) { Vector3 originalPos = transform.position;//保存相机当前的位置 Quaternion originalRotation = transform.rotation;//保存相机当前的旋转 transform.RotateAround (player.position,player.up,rotateSpeed*Input.GetAxis ("Mouse X"));//沿目标y轴在水平方向旋转 transform.RotateAround (player.position,transform.right,-rotateSpeed*Input.GetAxis ("Mouse Y"));//沿自身x轴在竖直方向旋转 float x = transform.eulerAngles.x;//获得x轴的角度 if (x < 10 || x > 80) {//限制x轴的旋转在10到80之间 transform.position = originalPos; transform.rotation = originalRotation; } } offsetPosition = transform.position - player.position;//更新位置偏移量 }}
0 0
- Unity相机视野的缩放,旋转及跟随
- Unity3D的相机跟随、视野缩放以及旋转
- unity相机旋转,缩放与跟随
- Unity3d实现相机的跟随缩放旋转
- unity的摄像机视野及旋转控制总结
- Unity双指触控缩放视野
- unity 常用的几种相机跟随
- Unity 常用的几种相机跟随
- unity 相机跟随
- Unity平滑相机跟随
- Unity中相机跟随
- Unity基础,相机跟随
- Unity 3D:控制相机旋转、移动、缩放等功能
- Unity通过鼠标实现相机视角旋转和缩放
- Unity3D控制物体前后左右移动、旋转及相机跟随
- <Unity>鼠标拖动物体、按下鼠标左键旋转观察物体、鼠标滚轮缩放视野
- <Unity>鼠标拖动物体、按下鼠标左键旋转观察物体、鼠标滚轮缩放视野
- 【Unity】代码实现视野的旋转和视野的拉近和拉远的效果
- Jira6.3.6 Installation
- 设置字体
- 二叉搜索树的后序遍历序列
- POJ 2236
- HashMap详解
- Unity相机视野的缩放,旋转及跟随
- HTML基础知识点总结
- JZOJ 4.1 B组 删数
- poj 2912(并查集,食物链)
- centOS_7_新特性
- hadoop中文wordcount无结果输出
- 特别完善的面试知识总结
- 专为微信设计的 UI 库 WeUI
- 高德地图 公交路线查询