diff options
author | chai <chaifix@163.com> | 2022-03-10 14:07:40 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2022-03-10 14:07:40 +0800 |
commit | 22891bf59032ba88262824255a706d652031384b (patch) | |
tree | 7595439ba9966c9402d37e37cee5e8cf098757d5 /Assets/Scripts/Camera/MainCamera.cs | |
parent | 8b04ea73e540067f83870b61d89db4868fea5e8a (diff) |
* move folder
Diffstat (limited to 'Assets/Scripts/Camera/MainCamera.cs')
-rw-r--r-- | Assets/Scripts/Camera/MainCamera.cs | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/Assets/Scripts/Camera/MainCamera.cs b/Assets/Scripts/Camera/MainCamera.cs deleted file mode 100644 index 4d65fa18..00000000 --- a/Assets/Scripts/Camera/MainCamera.cs +++ /dev/null @@ -1,154 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -// 主相机 -[ExecuteAlways] -[RequireComponent(typeof(Camera))] -public class MainCamera : SingletonMB<MainCamera> -{ - #region inspector - [Serializable] - public struct Region - { - [SerializeField] public float l; - [SerializeField] public float r; - [SerializeField] public float t; - [SerializeField] public float b; - } - - public new Camera camera { get; private set; } - - public Vector3 offset = Vector3.zero; - - [SerializeField] private float z; - - [SerializeField] private Region region; - - [SerializeField] private float moveSpeed; - - [SerializeField] private AnimationCurve speedCurve; - - [SerializeField] private float threshold; - #endregion - - private CustomRenderingPipeline m_CustomRenderingPipeline; - public CustomRenderingPipeline customRenderingPipeline
- { - get - { - if (m_CustomRenderingPipeline == null)
- m_CustomRenderingPipeline = this.gameObject.GetOrAddComponent<CustomRenderingPipeline>(); - return m_CustomRenderingPipeline; - } - } - - private Vector2 position2D - { - get - { - return transform.position; - } - set - { - transform.position = new Vector3(value.x, value.y, transform.position.z); - } - } - - private Vector3 position - { - get - { - return transform.position; - } - set - { - transform.position = value; - } - } - - protected override void Awake() - { - base.Awake(); - camera = gameObject.GetComponent<Camera>(); - } - - private void Start() - { - Vector3 pos = transform.position; - pos.z = this.z; - transform.position = pos; - - Quaternion rot = Quaternion.LookRotation(Vector3.forward); - transform.rotation = rot; - } - - void FollowPlayerCharacter() - { - if (UnitManager.Instance == null || UnitManager.Instance.pc == null) - return; - - Region region = this.region; - - //if (!UnitManager.Instance.pc.isTowardRight) - //{ - // region.l = -this.region.r; - // region.r = -this.region.l; - //} - - Vector3 camPos = position; - - Vector3 worldPos = UnitManager.Instance.pc.transform.position + offset; - - Vector2 viewPos = ((Vector2)camera.WorldToViewportPoint(worldPos)) * 2 - Vector2.one; - - Vector3 dir = (worldPos - camPos).normalized; - float dest = (worldPos - camPos).magnitude; - float curve = speedCurve.Evaluate((threshold - Mathf.Clamp(dest, 0f, threshold)) / threshold); - Vector3 move = curve * dir * moveSpeed * Time.deltaTime; - - if (IsInRegion(viewPos, region)) - { - if(!IsInCenter(viewPos)) - { - position2D = camPos + move; - if((worldPos - position).magnitude <= 0.1f) - { - position2D = worldPos; - } - } - return; - } - position2D = camPos + move; - if ((worldPos - position).magnitude <= 0.1f) - { - position2D = worldPos; - } - } - - bool IsInRegion(Vector2 p, Region region) - { - return p.x > region.l - && p.x < region.r - && p.y > region.b - && p.y < region.t; - } - - bool IsInCenter(Vector2 p) - { - return p.x == (region.l + region.r) / 2 && p.y == (region.t + region.b) / 2; - } - - void Update() - { - FollowPlayerCharacter(); - } - - public void OnGUI() - { - if(MainCameraDebug.OnGUIHandlers != null) - MainCameraDebug.OnGUIHandlers.Invoke(); - } - -}
\ No newline at end of file |