本文主要介绍如何在unity中通过鼠标或手指触控屏幕对镜头进行旋转,并实现镜头旋转卡位功能,使镜头平滑的旋转至目标角度。
镜头绕着目标对象进行旋转改变的是摄相机在世界坐标中的x、y方向的坐标值。那么我们只需要在脚本中控制相机的x\y坐标即可。
将脚本RotationTarget.cs添加到主摄相机上,在游戏场景里创建一个简单的游戏对象作为镜头旋转的参照物,将该游戏对象赋值给公开属性TargetObject;
下面是完整的RotationTarget.cs代码篇段:
using UnityEngine;
using System.Collections;
public class RotationTarget : MonoBehaviour {
//摄相机位置的参照对象;
public Transform TargetObject;
//摄相机的Z轴坐标;
private float distance = 9.0f;
float maxDistance;
//摄相机的角度;
Vector3 targetV;
//手指滑动的始\终位置;
Vector2 firstV;
Vector2 endV;
//手旨在X轴方向上滑动的距离;
float dx;
//摄相机旋转的目标角度;
float targetAngle;
// Use this for initialization
void Start () {
maxDistance = 105.0f;
targetAngle = 0;
targetV = FirstCamera.transform.eulerAngles;
}
void Update () {
if(Input.GetTouch(0).phase == TouchPhase.Began)
{
firstV