using UnityEngine;
using System.Collections;
public class CameraMove : MonoBehaviour {
public Texture2D cur;
public Texture2D[] cursors;
public float rotateSpeed;
public float wheelSpeed;
public float dragSpeed;
private GameObject _camera;
private ChooseObject _chooseObject;
Vector2 startPosition;
Vector2 startPosition1;
// Use this for initialization
void Start()
{
_camera = GameObject.Find(“Main Camera”);
_chooseObject = this.GetComponent();
}
// Update is called once per frame
void Update () {
//快速缩进视角{
if (Input.GetKeyUp (KeyCode.F))
{
if (_chooseObject.target != null)
{
Hashtable args = new Hashtable();
args.Add("position", _chooseObject.target.transform.position);
args.Add("time", 0.5f);
iTween.MoveTo(_camera, args);
}
}
//}
//移动{
if (Input.GetMouseButtonDown(2)) //用来初始化鼠标点击
{
startPosition1 = Input.mousePosition;
}
if (Input.GetMouseButton(2)) //PC端右键控制旋转
{
//_camera.transform.position += new Vector3(((Input.mousePosition.x - startPosition1.x) / Screen.width) * dragSpeed, -((Input.mousePosition.y - startPosition1.y) / Screen.height) * dragSpeed, 0);
_camera.transform.Translate(-Vector3.right * ((Input.mousePosition.x - startPosition1.x) / Screen.width) * dragSpeed);
_camera.transform.Translate(Vector3.up * -((Input.mousePosition.y - startPosition1.y) / Screen.height) * dragSpeed);
startPosition1 = Input.mousePosition;
}
//}
//旋转{
if (Input.GetMouseButtonDown(1)) //用来初始化鼠标点击
{
startPosition = Input.mousePosition;
}
if (Input.GetMouseButton(1)) //PC端右键控制旋转
{
float a = ClampAngle(_camera.transform.localEulerAngles.x - ((Input.mousePosition.y - startPosition.y) / Screen.height) * rotateSpeed, -50, 50);
_camera.transform.localEulerAngles += new Vector3(0, ((Input.mousePosition.x - startPosition.x) / Screen.width) * rotateSpeed, 0);
_camera.transform.localEulerAngles = new Vector3(a, _camera.transform.localEulerAngles.y, 0);
startPosition = Input.mousePosition;
}
//}
//缩放{
Vector3 fwd = transform.TransformDirection(Vector3.forward);
_camera.transform.Translate(Vector3.forward * Input.GetAxis("Mouse ScrollWheel") * wheelSpeed, _camera.transform);
//}
}
static float ClampAngle(float angle, float min, float max)
{
if (angle > 120)
{
angle -= 360;
}
return Mathf.Clamp(angle, min, max);
}
public void CursorChange()
{
//Cursor.SetCursor(cur, Vector2.zero, CursorMode.Auto);
}
}