From ba24a4a15c0317ac2fd954f4173b4b79cbdf191e Mon Sep 17 00:00:00 2001
From: lwb <q3213421wrwqr>
Date: 星期三, 11 十一月 2020 17:06:33 +0800
Subject: [PATCH] 9527 unity 升级
---
Assets/Plugins/PocoSDK/VRSupport.cs | 392 ++++++++++++++++++++++++++++----------------------------
1 files changed, 196 insertions(+), 196 deletions(-)
diff --git a/Assets/Plugins/PocoSDK/VRSupport.cs b/Assets/Plugins/PocoSDK/VRSupport.cs
index 83972bd..47cd0e1 100644
--- a/Assets/Plugins/PocoSDK/VRSupport.cs
+++ b/Assets/Plugins/PocoSDK/VRSupport.cs
@@ -13,231 +13,231 @@
public class VRSupport
{
- private static Queue<Action> commands = new Queue<Action>();
+ private static Queue<Action> commands = new Queue<Action>();
- public VRSupport()
- {
- commands = new Queue<Action>();
- }
+ public VRSupport()
+ {
+ commands = new Queue<Action>();
+ }
- public void ClearCommands()
- {
- commands.Clear();
- }
+ public void ClearCommands()
+ {
+ commands.Clear();
+ }
- public void PeekCommand()
- {
- if (null != commands && commands.Count > 0)
- {
- Debug.Log("command executed " + commands.Count);
- commands.Peek()();
- }
- }
+ public void PeekCommand()
+ {
+ if (null != commands && commands.Count > 0)
+ {
+ Debug.Log("command executed " + commands.Count);
+ commands.Peek()();
+ }
+ }
- public object isVRSupported(List<object> param)
- {
- #if UNITY_3 || UNITY_4
+ public object isVRSupported(List<object> param)
+ {
+#if UNITY_3 || UNITY_4
return false;
- #elif UNITY_5 || UNITY_2017_1
+#elif UNITY_5 || UNITY_2017_1
return UnityEngine.VR.VRSettings.loadedDeviceName.Equals("CARDBOARD");
- #else
- return UnityEngine.XR.XRSettings.loadedDeviceName.Equals("CARDBOARD");
- #endif
- }
+#else
+ return UnityEngine.XR.XRSettings.loadedDeviceName.Equals("CARDBOARD");
+#endif
+ }
- public object IsQueueEmpty(List<object> param)
- {
- Debug.Log("Checking queue");
- if (commands != null && commands.Count > 0)
- {
- return null;
- }
- else
- {
- Thread.Sleep(1000); // we wait a bit and check again just in case we run in between calls
- if (commands != null && commands.Count > 0)
- {
- return null;
- }
- }
+ public object IsQueueEmpty(List<object> param)
+ {
+ Debug.Log("Checking queue");
+ if (commands != null && commands.Count > 0)
+ {
+ return null;
+ }
+ else
+ {
+ Thread.Sleep(1000); // we wait a bit and check again just in case we run in between calls
+ if (commands != null && commands.Count > 0)
+ {
+ return null;
+ }
+ }
- return commands.Count;
- }
+ return commands.Count;
+ }
- public object RotateObject(List<object> param)
- {
- var xRotation = Convert.ToSingle(param[0]);
- var yRotation = Convert.ToSingle(param[1]);
- var zRotation = Convert.ToSingle(param[2]);
- float speed = 0f;
- if (param.Count > 5)
- speed = Convert.ToSingle(param[5]);
- Vector3 mousePosition = new Vector3(xRotation, yRotation, zRotation);
- foreach (GameObject cameraContainer in GameObject.FindObjectsOfType<GameObject>())
- {
- if (cameraContainer.name.Equals(param[3]))
- {
- foreach (GameObject cameraFollower in GameObject.FindObjectsOfType<GameObject>())
- {
- if (cameraFollower.name.Equals(param[4]))
- {
- lock (commands)
- {
- commands.Enqueue(() => recoverOffset(cameraFollower, cameraContainer, speed));
- }
+ public object RotateObject(List<object> param)
+ {
+ var xRotation = Convert.ToSingle(param[0]);
+ var yRotation = Convert.ToSingle(param[1]);
+ var zRotation = Convert.ToSingle(param[2]);
+ float speed = 0f;
+ if (param.Count > 5)
+ speed = Convert.ToSingle(param[5]);
+ Vector3 mousePosition = new Vector3(xRotation, yRotation, zRotation);
+ foreach (GameObject cameraContainer in GameObject.FindObjectsOfType<GameObject>())
+ {
+ if (cameraContainer.name.Equals(param[3]))
+ {
+ foreach (GameObject cameraFollower in GameObject.FindObjectsOfType<GameObject>())
+ {
+ if (cameraFollower.name.Equals(param[4]))
+ {
+ lock (commands)
+ {
+ commands.Enqueue(() => recoverOffset(cameraFollower, cameraContainer, speed));
+ }
- lock (commands)
- {
- var currentRotation = cameraContainer.transform.rotation;
- commands.Enqueue(() => rotate(cameraContainer, currentRotation, mousePosition, speed));
- }
- return true;
- }
- }
+ lock (commands)
+ {
+ var currentRotation = cameraContainer.transform.rotation;
+ commands.Enqueue(() => rotate(cameraContainer, currentRotation, mousePosition, speed));
+ }
+ return true;
+ }
+ }
- return true;
- }
- }
- return false;
- }
+ return true;
+ }
+ }
+ return false;
+ }
- public object ObjectLookAt(List<object> param)
- {
- float speed = 0f;
- if (param.Count > 3)
- speed = Convert.ToSingle(param[3]);
- foreach (GameObject toLookAt in GameObject.FindObjectsOfType<GameObject>())
- {
- if (toLookAt.name.Equals(param[0]))
- {
- foreach (GameObject cameraContainer in GameObject.FindObjectsOfType<GameObject>())
- {
- if (cameraContainer.name.Equals(param[1]))
- {
- foreach (GameObject cameraFollower in GameObject.FindObjectsOfType<GameObject>())
- {
- if (cameraFollower.name.Equals(param[2]))
- {
- lock (commands)
- {
- commands.Enqueue(() => recoverOffset(cameraFollower, cameraContainer, speed));
- }
+ public object ObjectLookAt(List<object> param)
+ {
+ float speed = 0f;
+ if (param.Count > 3)
+ speed = Convert.ToSingle(param[3]);
+ foreach (GameObject toLookAt in GameObject.FindObjectsOfType<GameObject>())
+ {
+ if (toLookAt.name.Equals(param[0]))
+ {
+ foreach (GameObject cameraContainer in GameObject.FindObjectsOfType<GameObject>())
+ {
+ if (cameraContainer.name.Equals(param[1]))
+ {
+ foreach (GameObject cameraFollower in GameObject.FindObjectsOfType<GameObject>())
+ {
+ if (cameraFollower.name.Equals(param[2]))
+ {
+ lock (commands)
+ {
+ commands.Enqueue(() => recoverOffset(cameraFollower, cameraContainer, speed));
+ }
- lock (commands)
- {
- commands.Enqueue(() => objectLookAt(cameraContainer, toLookAt, speed));
- }
+ lock (commands)
+ {
+ commands.Enqueue(() => objectLookAt(cameraContainer, toLookAt, speed));
+ }
- return true;
- }
- }
- }
- }
- }
- }
- return false;
- }
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
- protected void rotate(GameObject go, Quaternion originalRotation, Vector3 mousePosition, float speed)
- {
- Debug.Log("rotating");
- if (!RotateObject(originalRotation, mousePosition, go, speed))
- {
- lock (commands)
- {
- commands.Dequeue();
- }
- }
- }
+ protected void rotate(GameObject go, Quaternion originalRotation, Vector3 mousePosition, float speed)
+ {
+ Debug.Log("rotating");
+ if (!RotateObject(originalRotation, mousePosition, go, speed))
+ {
+ lock (commands)
+ {
+ commands.Dequeue();
+ }
+ }
+ }
- protected void objectLookAt(GameObject go, GameObject toLookAt, float speed)
- {
- Debug.Log("looking at " + toLookAt.name);
- Debug.Log("from " + go.name);
- if (!ObjectLookAtObject(toLookAt, go, speed))
- {
- lock (commands)
- {
- commands.Dequeue();
- }
- }
- }
+ protected void objectLookAt(GameObject go, GameObject toLookAt, float speed)
+ {
+ Debug.Log("looking at " + toLookAt.name);
+ Debug.Log("from " + go.name);
+ if (!ObjectLookAtObject(toLookAt, go, speed))
+ {
+ lock (commands)
+ {
+ commands.Dequeue();
+ }
+ }
+ }
- protected void recoverOffset(GameObject subcontainter, GameObject cameraContainer, float speed)
- {
- Debug.Log("recovering " + cameraContainer.name);
- if (!ObjectRecoverOffset(subcontainter, cameraContainer, speed))
- {
- lock (commands)
- {
- commands.Dequeue();
- }
- }
- }
+ protected void recoverOffset(GameObject subcontainter, GameObject cameraContainer, float speed)
+ {
+ Debug.Log("recovering " + cameraContainer.name);
+ if (!ObjectRecoverOffset(subcontainter, cameraContainer, speed))
+ {
+ lock (commands)
+ {
+ commands.Dequeue();
+ }
+ }
+ }
- protected bool RotateObject(Quaternion originalPosition, Vector3 mousePosition, GameObject cameraContainer, float rotationSpeed = 0.125f)
- {
- if (null == cameraContainer)
- {
- return false;
- }
+ protected bool RotateObject(Quaternion originalPosition, Vector3 mousePosition, GameObject cameraContainer, float rotationSpeed = 0.125f)
+ {
+ if (null == cameraContainer)
+ {
+ return false;
+ }
- var expectedx = originalPosition.eulerAngles.x + mousePosition.x;
- var expectedy = originalPosition.eulerAngles.y + mousePosition.y;
- var expectedz = originalPosition.eulerAngles.z + mousePosition.z;
+ var expectedx = originalPosition.eulerAngles.x + mousePosition.x;
+ var expectedy = originalPosition.eulerAngles.y + mousePosition.y;
+ var expectedz = originalPosition.eulerAngles.z + mousePosition.z;
- var toRotation = Quaternion.Euler(new Vector3(expectedx, expectedy, expectedz));
- cameraContainer.transform.rotation = Quaternion.Lerp(cameraContainer.transform.rotation, toRotation, rotationSpeed * Time.deltaTime);
- var angle = Quaternion.Angle(cameraContainer.transform.rotation, toRotation);
+ var toRotation = Quaternion.Euler(new Vector3(expectedx, expectedy, expectedz));
+ cameraContainer.transform.rotation = Quaternion.Lerp(cameraContainer.transform.rotation, toRotation, rotationSpeed * Time.deltaTime);
+ var angle = Quaternion.Angle(cameraContainer.transform.rotation, toRotation);
- if (angle == 0)
- {
- return false;
- }
+ if (angle == 0)
+ {
+ return false;
+ }
- return true;
- }
+ return true;
+ }
- protected bool ObjectLookAtObject(GameObject go, GameObject cameraContainer, float rotationSpeed = 0.125f)
- {
- if (null == go || null == cameraContainer)
- {
- Debug.Log("exception - item null");
- return false;
- }
+ protected bool ObjectLookAtObject(GameObject go, GameObject cameraContainer, float rotationSpeed = 0.125f)
+ {
+ if (null == go || null == cameraContainer)
+ {
+ Debug.Log("exception - item null");
+ return false;
+ }
- var toRotation = Quaternion.LookRotation(go.transform.position - (cameraContainer.transform.localPosition));
- cameraContainer.transform.rotation = Quaternion.Lerp(cameraContainer.transform.rotation, toRotation, rotationSpeed * Time.deltaTime);
- // It should not be needed but sometimes the difference of eurlerAngles might be small and this would ensure it works fine
- if (Quaternion.Angle(cameraContainer.transform.rotation, toRotation) == 0)
- {
+ var toRotation = Quaternion.LookRotation(go.transform.position - (cameraContainer.transform.localPosition));
+ cameraContainer.transform.rotation = Quaternion.Lerp(cameraContainer.transform.rotation, toRotation, rotationSpeed * Time.deltaTime);
+ // It should not be needed but sometimes the difference of eurlerAngles might be small and this would ensure it works fine
+ if (Quaternion.Angle(cameraContainer.transform.rotation, toRotation) == 0)
+ {
- return false;
- }
+ return false;
+ }
- return true;
- }
+ return true;
+ }
- protected bool ObjectRecoverOffset(GameObject subcontainer, GameObject cameraContainer, float rotationSpeed = 0.125f)
- {
- if (null == cameraContainer)
- {
- Debug.Log("exception - item null");
- return false;
- }
+ protected bool ObjectRecoverOffset(GameObject subcontainer, GameObject cameraContainer, float rotationSpeed = 0.125f)
+ {
+ if (null == cameraContainer)
+ {
+ Debug.Log("exception - item null");
+ return false;
+ }
- // add offset with the camera
- var cameraRotation = Camera.main.transform.localRotation;
+ // add offset with the camera
+ var cameraRotation = Camera.main.transform.localRotation;
- var toRotate = new Quaternion(-cameraRotation.x, -cameraRotation.y, -cameraRotation.z, cameraRotation.w);
- subcontainer.transform.localRotation = Quaternion.Lerp(subcontainer.transform.localRotation, toRotate, rotationSpeed * Time.deltaTime);
+ var toRotate = new Quaternion(-cameraRotation.x, -cameraRotation.y, -cameraRotation.z, cameraRotation.w);
+ subcontainer.transform.localRotation = Quaternion.Lerp(subcontainer.transform.localRotation, toRotate, rotationSpeed * Time.deltaTime);
- // It should not be needed but sometimes the difference of eurlerAngles might be small and this would ensure it works fine
- if (Quaternion.Angle(subcontainer.transform.localRotation, toRotate) == 0)
- {
- return false;
- }
+ // It should not be needed but sometimes the difference of eurlerAngles might be small and this would ensure it works fine
+ if (Quaternion.Angle(subcontainer.transform.localRotation, toRotate) == 0)
+ {
+ return false;
+ }
- return true;
- }
+ return true;
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0