From eda22bcd9683f3a94e0744da60d23808272c627f Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期一, 13 八月 2018 17:28:00 +0800
Subject: [PATCH] 1528 冰晶矿脉里面角色死亡复活后怪物血条位置显示异常

---
 Core/Camera/CameraController.cs |  668 +++++++++++++++++++++++++++---------------------------
 1 files changed, 334 insertions(+), 334 deletions(-)

diff --git a/Core/Camera/CameraController.cs b/Core/Camera/CameraController.cs
index e9b5781..fe94908 100644
--- a/Core/Camera/CameraController.cs
+++ b/Core/Camera/CameraController.cs
@@ -1,334 +1,334 @@
-锘縰sing UnityEngine;
-using System.Collections;
-
-public class CameraController : MonoBehaviour
-{
-    public static CameraController Instance;
-
-    [HideInInspector]
-    public bool AcceptInput = true;
-
-    public Transform Node;
-    public Camera CameraObject;
-    public Transform LookAtTarget;
-
-    public Camera MaskCamera;
-    public GameObject Mask;
-    private Animation m_Animation;
-
-    public float lookHeight = 0;
-
-    public float Distance = 10.0f;
-    public float MinDistance = 2.0f;
-    public float MaxDistance = 10.0f;
-
-    public float rotationX = 0.0f;
-    public float rotationY = 35.0f;
-    public float rotationSpeed = 5.0f;
-
-    public float MinRotationY = 35.0f;
-    public float MaxRotationY = 50.0f;
-
-    public float MoveDamping = 0.1f;
-    public float RotationDamping = 0.1f;
-    public float ZoomDamping = 0.3f;
-
-    private float m_CurrentRotationY;
-    private float m_CurrentRotationX;
-    private Vector3 m_MoveVelocity = Vector3.zero;
-    private float m_ZoomVelocity = 0;
-
-    [HideInInspector]
-    public float originalDistance = 0;
-    [HideInInspector]
-    public float originalRotX = 0;
-    [HideInInspector]
-    public float originalRotY = 0;
-    [HideInInspector]
-    public float sceneDistance = 0;
-
-    public bool IsPlayingAnim
-    {
-        get; private set;
-    }
-
-    void Awake()
-    {
-        Instance = this;
-        CameraManager.sceneCamera = CameraObject;
-        m_Animation = GetComponent<Animation>();
-        sceneDistance = originalDistance = Distance;
-        originalRotX = rotationX;
-        originalRotY = rotationY;
-        DontDestroyOnLoad(this);
-    }
-
-    public void PlayAnimationClip(string name)
-    {
-        AnimationClip _clip = Resources.Load<AnimationClip>("AnimationCurve/" + name);
-        if (_clip != null)
-        {
-            IsPlayingAnim = true;
-            m_Animation.AddClip(_clip, "start_show");
-            m_Animation.Play("start_show");
-        }
-    }
-
-    private void OnAnimationOver()
-    {
-        IsPlayingAnim = false;
-    }
-
-    public void ResetOriginal()
-    {
-        RotationDamping = 0.02f;
-        ZoomDamping = 0.02f;
-        sceneDistance = Distance = originalDistance;
-        rotationX = originalRotX;
-        rotationY = originalRotY;
-    }
-
-    public void SetLookTarget(Transform _target)
-    {
-        LookAtTarget = _target;
-    }
-
-    public void SetRotationX(float _angle)
-    {
-        rotationX = _angle;
-    }
-
-    public void ChangeRotationX(float _change_value)
-    {
-        rotationX += _change_value;
-    }
-
-    IEnumerator CameraRotationX(float _angle)
-    {
-        while (rotationX != _angle)
-        {
-            rotationX = Mathf.SmoothDampAngle(rotationX, _angle, ref m_CurrentRotationX, RotationDamping);
-            if (Mathf.Abs(rotationX - _angle) <= 0.01f)
-            {
-                rotationX = _angle;
-            }
-            yield return null;
-        }
-    }
-
-    // Update is called once per frame
-    void Update()
-    {
-        // 鏄惁姝e湪鎾斁鎽勫儚鏈哄姩鐢�
-        if (IsPlayingAnim)
-        {
-            return;
-        }
-        //#if UNITY_EDITOR
-
-        //if (AcceptInput)
-        //{
-        //    if (Input.GetMouseButtonDown(0))
-        //    {
-        //        Ray _ray = CameraObject.ScreenPointToRay(Input.mousePosition);
-        //        RaycastHit _hit;
-        //        if (Physics.Raycast(_ray, out _hit, 100, LayerUtility.WalkbleMask))
-        //        {
-        //            if (LookAtTarget != null)
-        //            {
-        //                LookAtTarget.transform.position = _hit.point;
-        //            }
-        //        }
-        //    }
-        //}
-
-        //#endif
-
-        Vector3 eulerAngles = transform.eulerAngles;
-
-        float newCameraRotUp = Mathf.SmoothDampAngle(eulerAngles.x, rotationY, ref m_CurrentRotationY, RotationDamping);
-        float newCameraRotSide = Mathf.SmoothDampAngle(eulerAngles.y, rotationX, ref m_CurrentRotationX, RotationDamping);
-
-        Vector3 _dir = new Vector3(newCameraRotUp, newCameraRotSide, 0);
-        if (_dir.magnitude > 0.01f)
-        {
-            transform.rotation = Quaternion.Euler(_dir);
-        }
-
-        if (LookAtTarget != null)
-        {
-            transform.position = Vector3.SmoothDamp(transform.position, LookAtTarget.position + new Vector3(0, lookHeight, 0), ref m_MoveVelocity, MoveDamping);
-        }
-
-        float dist = Mathf.SmoothDamp(-CameraObject.transform.localPosition.z, Distance, ref m_ZoomVelocity, ZoomDamping);
-        CameraObject.transform.localPosition = -Vector3.forward * dist;
-    }
-
-    public void Apply()
-    {
-        if (LookAtTarget == null)
-        {
-            return;
-        }
-        transform.position = LookAtTarget.position + new Vector3(0, lookHeight, 0);
-        transform.eulerAngles = new Vector3(rotationY, rotationX, 0);
-        CameraObject.transform.localPosition = -Vector3.forward * Distance;
-    }
-
-    void OnDrawGizmos()
-    {
-        if (CameraObject != null)
-        {
-            Gizmos.color = new Color(1.0f, 1.0f, 0.0f, 0.8f); // Color.yellow;
-            Gizmos.DrawSphere(CameraObject.transform.position, 0.2f);
-
-            Gizmos.color = new Color(1.0f, 0.0f, 0.0f, 0.8f); // Color.yellow;
-            Gizmos.DrawSphere(transform.position, 0.2f);
-
-            Gizmos.color = Color.yellow;
-            Gizmos.DrawLine(CameraObject.transform.position, transform.position);
-        }
-    }
-
-    private void OnDestroy()
-    {
-        LookAtTarget = null;
-        Instance = null;
-
-        if (CameraManager.sceneCamera == CameraObject)
-        {
-            CameraManager.sceneCamera = null;
-        }
-
-    }
-
-    private struct ZoomVo
-    {
-        public float scale;
-        public float time;
-    }
-
-    public void StartZoom(float scale, float zoomTime)
-    {
-
-        if (zoomTime == 0)
-        {
-            return;
-        }
-
-        StopZoom();
-
-        ZoomVo _vo = new ZoomVo
-        {
-            scale = scale,
-            time = zoomTime
-        };
-
-        StartCoroutine("Zoom", _vo);
-    }
-
-    public void StopZoom()
-    {
-        StopCoroutine("Zoom");
-    }
-
-    IEnumerator Zoom(ZoomVo vo)
-    {
-        float _cacheDistance = Distance;
-        float _time = 0;
-        float _percent;
-        float _zoomDistance = sceneDistance * vo.scale - Distance;
-        while (_time < vo.time)
-        {
-            _percent = _time / vo.time;
-            _percent = Constants.zoomAniCurve.animationCurve.Evaluate(_percent);
-            Distance = _cacheDistance + _percent * _zoomDistance;
-            _time += Time.deltaTime;
-            yield return null;
-        }
-        Distance = _cacheDistance + _zoomDistance;
-        //_cacheDistance = Distance;
-        //_zoomDistance = m_OriginalDistance - Distance;
-        //while (_time < vo.recoverTime)
-        //{
-        //    _percent = _time / vo.recoverTime;
-        //    _percent = Constants.zoomAniCurve.animationCurve.Evaluate(_percent);
-        //    Distance = _cacheDistance + _percent * _zoomDistance;
-        //    _time += Time.deltaTime;
-        //    yield return null;
-        //}
-        //Distance = m_OriginalDistance;
-    }
-
-    private struct ShakeVo
-    {
-        public Vector3 shakeDir;
-        public float power;
-        public float interval;
-        public float duration;
-    }
-
-    public void DoShake(Vector3 dir, float power, float interval, float duration)
-    {
-        ShakeVo _vo = new ShakeVo
-        {
-            shakeDir = dir.normalized,
-            power = power,
-            interval = interval,
-            duration = duration
-        };
-
-        Node.transform.localPosition = Vector3.zero;
-        StopCoroutine("Shake");
-        StartCoroutine("Shake", _vo);
-    }
-
-    public void StopShake()
-    {
-        Node.transform.localPosition = Vector3.zero;
-        StopCoroutine("Shake");
-    }
-
-    IEnumerator Shake(ShakeVo vo)
-    {
-        float _percent = 0;
-        float _interval = 0;
-        float _duration = vo.duration;
-        Vector3 _localPos = Vector3.zero;
-        Vector3 _direction = vo.shakeDir;
-
-        float _distance = Vector3.Distance(vo.power * _direction, Vector3.zero);
-
-        while (_duration > 0)
-        {
-            _interval += Time.deltaTime;
-            _percent = _interval / vo.interval;
-            _percent = Constants.shakeAniCurve.animationCurve.Evaluate(_percent);
-            Node.transform.localPosition = _localPos + _direction * _distance * _percent;
-            if (_interval > vo.interval)
-            {
-                _localPos = Node.transform.localPosition;
-                _direction = -_direction;
-                _distance = Vector3.Distance(vo.power * _direction, _localPos);
-                _interval = 0;
-            }
-            _duration -= Time.deltaTime;
-            yield return null;
-        }
-
-        _interval = 0;
-        _localPos = Node.transform.localPosition;
-        _direction = (Vector3.zero - Node.transform.localPosition).normalized;
-        _distance = Vector3.Distance(Vector3.zero, _localPos);
-        while (_interval < vo.interval)
-        {
-            _interval += Time.deltaTime;
-            _percent = _interval / vo.interval;
-            _percent = Constants.shakeAniCurve.animationCurve.Evaluate(_percent);
-            Node.transform.localPosition = _localPos + _direction * _distance * _percent;
-            yield return null;
-        }
-
-        Node.transform.localPosition = Vector3.zero;
-    }
-}
+锘縰sing UnityEngine;
+using System.Collections;
+
+public class CameraController : MonoBehaviour
+{
+    public static CameraController Instance;
+
+    [HideInInspector]
+    public bool AcceptInput = true;
+
+    public Transform Node;
+    public Camera CameraObject;
+    public Transform LookAtTarget;
+
+    public Camera MaskCamera;
+    public GameObject Mask;
+    private Animation m_Animation;
+
+    public float lookHeight = 0;
+
+    public float Distance = 10.0f;
+    public float MinDistance = 2.0f;
+    public float MaxDistance = 10.0f;
+
+    public float rotationX = 0.0f;
+    public float rotationY = 35.0f;
+    public float rotationSpeed = 5.0f;
+
+    public float MinRotationY = 35.0f;
+    public float MaxRotationY = 50.0f;
+
+    public float MoveDamping = 0.1f;
+    public float RotationDamping = 0.1f;
+    public float ZoomDamping = 0.3f;
+
+    private float m_CurrentRotationY;
+    private float m_CurrentRotationX;
+    private Vector3 m_MoveVelocity = Vector3.zero;
+    private float m_ZoomVelocity = 0;
+
+    [HideInInspector]
+    public float originalDistance = 0;
+    [HideInInspector]
+    public float originalRotX = 0;
+    [HideInInspector]
+    public float originalRotY = 0;
+    [HideInInspector]
+    public float sceneDistance = 0;
+
+    public bool IsPlayingAnim
+    {
+        get; private set;
+    }
+
+    void Awake()
+    {
+        Instance = this;
+        CameraManager.sceneCamera = CameraObject;
+        m_Animation = GetComponent<Animation>();
+        sceneDistance = originalDistance = Distance;
+        originalRotX = rotationX;
+        originalRotY = rotationY;
+        DontDestroyOnLoad(this);
+    }
+
+    public void PlayAnimationClip(string name)
+    {
+        AnimationClip _clip = Resources.Load<AnimationClip>("AnimationCurve/" + name);
+        if (_clip != null)
+        {
+            IsPlayingAnim = true;
+            m_Animation.AddClip(_clip, "start_show");
+            m_Animation.Play("start_show");
+        }
+    }
+
+    private void OnAnimationOver()
+    {
+        IsPlayingAnim = false;
+    }
+
+    public void ResetOriginal()
+    {
+        RotationDamping = 0.02f;
+        ZoomDamping = 0.02f;
+        sceneDistance = Distance = originalDistance;
+        rotationX = originalRotX;
+        rotationY = originalRotY;
+    }
+
+    public void SetLookTarget(Transform _target)
+    {
+        LookAtTarget = _target;
+    }
+
+    public void SetRotationX(float _angle)
+    {
+        rotationX = _angle;
+    }
+
+    public void ChangeRotationX(float _change_value)
+    {
+        rotationX += _change_value;
+    }
+
+    IEnumerator CameraRotationX(float _angle)
+    {
+        while (rotationX != _angle)
+        {
+            rotationX = Mathf.SmoothDampAngle(rotationX, _angle, ref m_CurrentRotationX, RotationDamping);
+            if (Mathf.Abs(rotationX - _angle) <= 0.01f)
+            {
+                rotationX = _angle;
+            }
+            yield return null;
+        }
+    }
+
+    // Update is called once per frame
+    void Update()
+    {
+        // 鏄惁姝e湪鎾斁鎽勫儚鏈哄姩鐢�
+        if (IsPlayingAnim)
+        {
+            return;
+        }
+        //#if UNITY_EDITOR
+
+        //if (AcceptInput)
+        //{
+        //    if (Input.GetMouseButtonDown(0))
+        //    {
+        //        Ray _ray = CameraObject.ScreenPointToRay(Input.mousePosition);
+        //        RaycastHit _hit;
+        //        if (Physics.Raycast(_ray, out _hit, 100, LayerUtility.WalkbleMask))
+        //        {
+        //            if (LookAtTarget != null)
+        //            {
+        //                LookAtTarget.transform.position = _hit.point;
+        //            }
+        //        }
+        //    }
+        //}
+
+        //#endif
+
+        Vector3 eulerAngles = transform.eulerAngles;
+
+        float newCameraRotUp = Mathf.SmoothDampAngle(eulerAngles.x, rotationY, ref m_CurrentRotationY, RotationDamping);
+        float newCameraRotSide = Mathf.SmoothDampAngle(eulerAngles.y, rotationX, ref m_CurrentRotationX, RotationDamping);
+
+        Vector3 _dir = new Vector3(newCameraRotUp, newCameraRotSide, 0);
+        if (_dir.magnitude > 0.01f)
+        {
+            transform.rotation = Quaternion.Euler(_dir);
+        }
+
+        if (LookAtTarget != null)
+        {
+            transform.position = Vector3.SmoothDamp(transform.position, LookAtTarget.position + new Vector3(0, lookHeight, 0), ref m_MoveVelocity, MoveDamping);
+        }
+
+        float dist = Mathf.SmoothDamp(-CameraObject.transform.localPosition.z, Distance, ref m_ZoomVelocity, ZoomDamping);
+        CameraObject.transform.localPosition = -Vector3.forward * dist;
+    }
+
+    public void Apply()
+    {
+        if (LookAtTarget == null)
+        {
+            return;
+        }
+        transform.position = LookAtTarget.position + new Vector3(0, lookHeight, 0);
+        transform.eulerAngles = new Vector3(rotationY, rotationX, 0);
+        CameraObject.transform.localPosition = -Vector3.forward * Distance;
+    }
+
+    void OnDrawGizmos()
+    {
+        if (CameraObject != null)
+        {
+            Gizmos.color = new Color(1.0f, 1.0f, 0.0f, 0.8f); // Color.yellow;
+            Gizmos.DrawSphere(CameraObject.transform.position, 0.2f);
+
+            Gizmos.color = new Color(1.0f, 0.0f, 0.0f, 0.8f); // Color.yellow;
+            Gizmos.DrawSphere(transform.position, 0.2f);
+
+            Gizmos.color = Color.yellow;
+            Gizmos.DrawLine(CameraObject.transform.position, transform.position);
+        }
+    }
+
+    private void OnDestroy()
+    {
+        LookAtTarget = null;
+        Instance = null;
+
+        if (CameraManager.sceneCamera == CameraObject)
+        {
+            CameraManager.sceneCamera = null;
+        }
+
+    }
+
+    private struct ZoomVo
+    {
+        public float scale;
+        public float time;
+    }
+
+    public void StartZoom(float scale, float zoomTime)
+    {
+
+        if (zoomTime == 0)
+        {
+            return;
+        }
+
+        StopZoom();
+
+        ZoomVo _vo = new ZoomVo
+        {
+            scale = scale,
+            time = zoomTime
+        };
+
+        StartCoroutine("Zoom", _vo);
+    }
+
+    public void StopZoom()
+    {
+        StopCoroutine("Zoom");
+    }
+
+    IEnumerator Zoom(ZoomVo vo)
+    {
+        float _cacheDistance = Distance;
+        float _time = 0;
+        float _percent;
+        float _zoomDistance = sceneDistance * vo.scale - Distance;
+        while (_time < vo.time)
+        {
+            _percent = _time / vo.time;
+            _percent = Constants.zoomAniCurve.animationCurve.Evaluate(_percent);
+            Distance = _cacheDistance + _percent * _zoomDistance;
+            _time += Time.deltaTime;
+            yield return null;
+        }
+        Distance = _cacheDistance + _zoomDistance;
+        //_cacheDistance = Distance;
+        //_zoomDistance = m_OriginalDistance - Distance;
+        //while (_time < vo.recoverTime)
+        //{
+        //    _percent = _time / vo.recoverTime;
+        //    _percent = Constants.zoomAniCurve.animationCurve.Evaluate(_percent);
+        //    Distance = _cacheDistance + _percent * _zoomDistance;
+        //    _time += Time.deltaTime;
+        //    yield return null;
+        //}
+        //Distance = m_OriginalDistance;
+    }
+
+    private struct ShakeVo
+    {
+        public Vector3 shakeDir;
+        public float power;
+        public float interval;
+        public float duration;
+    }
+
+    public void DoShake(Vector3 dir, float power, float interval, float duration)
+    {
+        ShakeVo _vo = new ShakeVo
+        {
+            shakeDir = dir.normalized,
+            power = power,
+            interval = interval,
+            duration = duration
+        };
+
+        Node.transform.localPosition = Vector3.zero;
+        StopCoroutine("Shake");
+        StartCoroutine("Shake", _vo);
+    }
+
+    public void StopShake()
+    {
+        Node.transform.localPosition = Vector3.zero;
+        StopCoroutine("Shake");
+    }
+
+    IEnumerator Shake(ShakeVo vo)
+    {
+        float _percent = 0;
+        float _interval = 0;
+        float _duration = vo.duration;
+        Vector3 _localPos = Vector3.zero;
+        Vector3 _direction = vo.shakeDir;
+
+        float _distance = Vector3.Distance(vo.power * _direction, Vector3.zero);
+
+        while (_duration > 0)
+        {
+            _interval += Time.deltaTime;
+            _percent = _interval / vo.interval;
+            _percent = Constants.shakeAniCurve.animationCurve.Evaluate(_percent);
+            Node.transform.localPosition = _localPos + _direction * _distance * _percent;
+            if (_interval > vo.interval)
+            {
+                _localPos = Node.transform.localPosition;
+                _direction = -_direction;
+                _distance = Vector3.Distance(vo.power * _direction, _localPos);
+                _interval = 0;
+            }
+            _duration -= Time.deltaTime;
+            yield return null;
+        }
+
+        _interval = 0;
+        _localPos = Node.transform.localPosition;
+        _direction = (Vector3.zero - Node.transform.localPosition).normalized;
+        _distance = Vector3.Distance(Vector3.zero, _localPos);
+        while (_interval < vo.interval)
+        {
+            _interval += Time.deltaTime;
+            _percent = _interval / vo.interval;
+            _percent = Constants.shakeAniCurve.animationCurve.Evaluate(_percent);
+            Node.transform.localPosition = _localPos + _direction * _distance * _percent;
+            yield return null;
+        }
+
+        Node.transform.localPosition = Vector3.zero;
+    }
+}

--
Gitblit v1.8.0