From 8b65edb43be0945203633b33d7a62c81ab3f05ce Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 16 Sep 2021 09:52:33 +0800 Subject: +unit effect --- Assets/Scripts/Unit/Effect/UnitCamera.cs | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Assets/Scripts/Unit/Effect/UnitCamera.cs (limited to 'Assets/Scripts/Unit/Effect/UnitCamera.cs') diff --git a/Assets/Scripts/Unit/Effect/UnitCamera.cs b/Assets/Scripts/Unit/Effect/UnitCamera.cs new file mode 100644 index 00000000..01194512 --- /dev/null +++ b/Assets/Scripts/Unit/Effect/UnitCamera.cs @@ -0,0 +1,34 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// 专门用来渲染player character的相机,用来做特效 +[RequireComponent(typeof(Camera))] +public class UnitCamera : MonoBehaviour +{ + PCController pc { get { return UnitManager.Instance.pc; } } + + Camera m_Camera; + + private void OnEnable() + { + m_Camera = GetComponent(); + } + + private void OnPreRender() + { + if (pc == null) + return; + if (m_Camera == null) + return; + + Vector3 pos = transform.position; + transform.position = new Vector3(pc.center.x, pc.center.y, pos.z); + + float dz = Mathf.Abs(pos.z - pc.center.z); + float fov = 2 * Mathf.Atan2(pc.unitDetail.snapshotBound / 2, dz) * Mathf.Rad2Deg; + + m_Camera.fieldOfView = fov; + } + +} -- cgit v1.1-26-g67d0