summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Camera/MainCamera.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2022-03-10 14:07:40 +0800
committerchai <chaifix@163.com>2022-03-10 14:07:40 +0800
commit22891bf59032ba88262824255a706d652031384b (patch)
tree7595439ba9966c9402d37e37cee5e8cf098757d5 /Assets/Scripts/Camera/MainCamera.cs
parent8b04ea73e540067f83870b61d89db4868fea5e8a (diff)
* move folder
Diffstat (limited to 'Assets/Scripts/Camera/MainCamera.cs')
-rw-r--r--Assets/Scripts/Camera/MainCamera.cs154
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