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 +++++++++++++++++++++++++++ Assets/Scripts/Unit/Effect/UnitCamera.cs.meta | 11 +++++++++ 2 files changed, 45 insertions(+) create mode 100644 Assets/Scripts/Unit/Effect/UnitCamera.cs create mode 100644 Assets/Scripts/Unit/Effect/UnitCamera.cs.meta (limited to 'Assets/Scripts/Unit/Effect') 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; + } + +} diff --git a/Assets/Scripts/Unit/Effect/UnitCamera.cs.meta b/Assets/Scripts/Unit/Effect/UnitCamera.cs.meta new file mode 100644 index 00000000..e74544bd --- /dev/null +++ b/Assets/Scripts/Unit/Effect/UnitCamera.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c4798e37b95c98b4d9679542c6e14947 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- cgit v1.1-26-g67d0