diff options
author | chai <chaifix@163.com> | 2021-09-22 19:25:56 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-09-22 19:25:56 +0800 |
commit | 2f310aa9f3f1cb1d51e8f62a6d5e3dda4821b82b (patch) | |
tree | defb1bd9e61fc8b0575337c2fdf73754f2fd1e20 /Assets/Scripts/Camera | |
parent | 84fdd90eac4431fa278c11d7664c1d954f80b883 (diff) |
*effect
Diffstat (limited to 'Assets/Scripts/Camera')
-rw-r--r-- | Assets/Scripts/Camera/CameraUtility.cs | 49 | ||||
-rw-r--r-- | Assets/Scripts/Camera/CameraUtility.cs.meta | 11 |
2 files changed, 60 insertions, 0 deletions
diff --git a/Assets/Scripts/Camera/CameraUtility.cs b/Assets/Scripts/Camera/CameraUtility.cs new file mode 100644 index 00000000..1f6c10e6 --- /dev/null +++ b/Assets/Scripts/Camera/CameraUtility.cs @@ -0,0 +1,49 @@ +using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public static class CameraExtend
+{
+
+ public static Vector3 WorldToCameraSpace(this Camera camera, Vector3 worldPos)
+ {
+ Vector4 camPos = camera.worldToCameraMatrix * worldPos.ToVector4();
+ return camPos.ToVector3();
+ }
+
+ public static Vector3 CameraToViewportSpace(this Camera camera, Vector3 camPos)
+ {
+ Matrix4x4 proj = GL.GetGPUProjectionMatrix(camera.projectionMatrix, false);
+ Vector4 clipPos = proj * camPos.ToVector4();
+ Vector3 ndcPos = (clipPos / clipPos.w);
+ Vector3 viewPos = (ndcPos + Vector3.one) / 2f;
+ return viewPos;
+ }
+
+ public static Vector3 CameraToScreenSpace(this Camera camera, Vector3 camPos)
+ {
+ Vector3 viewPos = camera.CameraToViewportSpace(camPos);
+ Vector3 screenPos = new Vector3(
+ viewPos.x * camera.pixelWidth,
+ viewPos.y * camera.pixelHeight,
+ viewPos.z
+ );
+ return screenPos;
+ }
+
+}
+
+public class CameraUtility : MonoBehaviour
+{
+ // Start is called before the first frame update
+ void Start()
+ {
+
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+
+ }
+}
diff --git a/Assets/Scripts/Camera/CameraUtility.cs.meta b/Assets/Scripts/Camera/CameraUtility.cs.meta new file mode 100644 index 00000000..bd11b826 --- /dev/null +++ b/Assets/Scripts/Camera/CameraUtility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6797331b02de5684ab22aeafac41d2c5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: |