之前用VT实现过右键控制旋转,滚轮缩放,中键平移的功能,现在学习unity3d,也想把该功能实现下,于是尝试着写了下,具体原理就是,控制相机的父物体旋转,控制相机本身进行缩放和平移。不说了,上代码:
using UnityEngine;
using System.Collections;
public class CamOperator : MonoBehaviour
{
//先确定相机围绕哪个物体进行旋转,缩放,平移;也就是需要确定相机的父物体
//先写右键旋转(相机),确定相机旋转的速度
public Transform target;
//旋转的初始角度
private float x = 0.0f;
private float y = 0.0f;
//相机旋转的速率
private float rSpeed = 10.0f;
//获取相机Transform对象
private Transform cam;
//相机距离目标物体的起始距离(距离设置为负值,是因为相机是在目标物体的正后方)
private float distance = -5;
//相机距离的物体的最近和最远距离
private float minDistance = -1;
private float maxDistance = -30;
//初始位置
private float camPostion_x = 0;
private float camPostion_y = 0;