unity pc端 采用右键选择相机,中键盘移动缩放模型

来源:互联网 发布:屏蔽广告软件 编辑:程序博客网 时间:2024/06/03 19:24

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 framevoid 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);}

}

原创粉丝点击