- 最后登录
- 2019-12-2
- 注册时间
- 2012-8-25
- 阅读权限
- 90
- 积分
- 34660
- 纳金币
- 38268
- 精华
- 111
|
- private Transform player;
- public float scrollSpeed = 6.0f;
- public float roundSpeed = 4.2f;
- public float _vMinLimit = 15f; //y min limit
- public float _vMaxLimit = 55f; //y max limit
- public float zoomMin = 3f; //zoom min
- public float zoomMax = 8f; //zoom max
- float hh;
- float vv;
- float distance;
-
- // Update is called once per frame
- void Update () {
- if (!player) {
- getPlayer();
- }
- calPos (aroundView (), scrollView ());
-
- }
- float scrollView(){
- float wheel = Input.GetAxis ("Mouse ScrollWheel");
- float dis = Vector3.Distance (transform.position, player.position);
- dis -= wheel * scrollSpeed;
-
- distance = Mathf.Clamp (distance,zoomMin,zoomMax);
- return distance;
- }
- Quaternion aroundView(){
- float h = Input.GetAxis ("Mouse X");
- float v = Input.GetAxis ("Mouse Y");
- Quaternion rt = Quaternion.Euler(transform.eulerAngles);
- bool rightMouseDown = Input.GetMouseButton (1);
- if (rightMouseDown) {
- hh += h * roundSpeed; // horizontal
- vv -= v;//vertical
- vv = Mathf.Clamp(vv,_vMinLimit,_vMaxLimit);
- rt = Quaternion.Euler(vv,hh,0f);
- }
- return rt;
- }
- //core code
- void calPos(Quaternion angle,float distance){
- Vector3 pos = angle*new Vector3 (0f,0f,-distance) + player.position;//core code
-
- transform.position = pos;
- transform.rotation = angle;//or use the next method
- // transform.LookAt (player.position);
- }
- void getPlayer(){
-
- player = GameObject.FindGameObjectWithTag (TagsEnum.Player.ToString ()).transform;
- hh = transform.eulerAngles.y;
- vv = transform.eulerAngles.x;
- distance = zoomMax;
- }
复制代码 |
|