适配VR一体机
This commit is contained in:
parent
55a59d57d2
commit
cd482fde08
@ -49,6 +49,11 @@ namespace GCSeries.Core.Input
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
[Serializable]
|
||||
public class CollisionClickEvent : UnityEvent<ZPointer, int, GameObject>
|
||||
{
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// Inspector Fields
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
@ -170,6 +175,11 @@ namespace GCSeries.Core.Input
|
||||
[Tooltip("Event dispatched when the pointer exits an object.")]
|
||||
public CollisionEvent OnObjectExited = new CollisionEvent();
|
||||
|
||||
|
||||
[Tooltip("µã»÷ÁËÎïÌå")]
|
||||
public CollisionClickEvent OnClick = new CollisionClickEvent();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Event dispatched when a pointer button becomes pressed.
|
||||
/// </summary>
|
||||
@ -726,6 +736,10 @@ namespace GCSeries.Core.Input
|
||||
if (this._buttonState[i].BecamePressed)
|
||||
{
|
||||
this.OnButtonPressed.Invoke(this, i);
|
||||
if (_hitInfo.gameObject != null)
|
||||
{
|
||||
this.OnClick.Invoke(this, i, _hitInfo.gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
if (this._buttonState[i].BecameReleased)
|
||||
|
||||
@ -372,7 +372,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
EventCamera: {fileID: 263436429275714491}
|
||||
Visualization: {fileID: 7822688151064336048}
|
||||
MaxHitDistance: 0.75
|
||||
MaxHitDistance: 1.5
|
||||
MaxHitRadius: 0
|
||||
IgnoreMask:
|
||||
serializedVersion: 2
|
||||
@ -392,6 +392,9 @@ MonoBehaviour:
|
||||
OnObjectExited:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnButtonPressed:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@ -1583,7 +1586,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
EventCamera: {fileID: 263436429275714491}
|
||||
Visualization: {fileID: 6603607056250446267}
|
||||
MaxHitDistance: 0.3
|
||||
MaxHitDistance: 1.5
|
||||
MaxHitRadius: 0
|
||||
IgnoreMask:
|
||||
serializedVersion: 2
|
||||
@ -1603,6 +1606,9 @@ MonoBehaviour:
|
||||
OnObjectExited:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnButtonPressed:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
|
||||
@ -90,6 +90,9 @@ namespace QFramework
|
||||
break;
|
||||
}
|
||||
}
|
||||
#if VR
|
||||
effect.constantWidth = false;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -58,9 +58,9 @@ public class MoveAction : IAction
|
||||
{
|
||||
obj = UIRoot.Instance.transform.Find("ZFrame").gameObject;
|
||||
}
|
||||
#else
|
||||
obj = Utility.FindObj(path);
|
||||
#endif
|
||||
obj = Utility.FindObj(path);
|
||||
|
||||
if (obj == null)
|
||||
{
|
||||
Debug.LogError($"没有找到路径{path}");
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
using GCSeries.Core.Input;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
@ -17,6 +18,7 @@ namespace QFramework
|
||||
string path;
|
||||
string deviceName;
|
||||
bool isRight;
|
||||
|
||||
public static ObjClickCondition Allocate(string path, Dictionary<string, string> datas)
|
||||
{
|
||||
var conditionAction = mSimpleObjectPool.Allocate();
|
||||
@ -49,6 +51,9 @@ namespace QFramework
|
||||
}
|
||||
}
|
||||
}
|
||||
#if VR
|
||||
|
||||
#else
|
||||
if (Input.GetMouseButtonUp(0) && EventSystem.current.IsPointerOverGameObject() == false)
|
||||
{
|
||||
Vector3 mousePos = Input.mousePosition;
|
||||
@ -66,7 +71,7 @@ namespace QFramework
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return false;
|
||||
}
|
||||
@ -76,7 +81,22 @@ namespace QFramework
|
||||
public ActionStatus Status { get; set; }
|
||||
public void OnStart()
|
||||
{
|
||||
#if VR
|
||||
UIRoot.Instance.transform.Find("ZMouse").GetComponent<ZPointer>().OnClick.AddListener(OnClick);
|
||||
UIRoot.Instance.transform.Find("ZStylus").GetComponent<ZPointer>().OnClick.AddListener(OnClick);
|
||||
#endif
|
||||
}
|
||||
#if VR
|
||||
public void OnClick(ZPointer pointer, int index, GameObject obj)
|
||||
{
|
||||
if (this.obj != null && obj == this.obj)
|
||||
{
|
||||
this.Finish();
|
||||
UIRoot.Instance.transform.Find("ZMouse").GetComponent<ZPointer>().OnClick.RemoveListener(OnClick);
|
||||
UIRoot.Instance.transform.Find("ZStylus").GetComponent<ZPointer>().OnClick.RemoveListener(OnClick);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
public void OnExecute(float dt)
|
||||
{
|
||||
|
||||
@ -28,9 +28,19 @@ namespace QFramework
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
#if VR
|
||||
if (uiPath.Contains("UIRoot/"))
|
||||
{
|
||||
uiPath = uiPath.Replace("UIRoot/", "UIRoot/ZCameraRig/ZCanvas/");
|
||||
}
|
||||
#endif
|
||||
obj = Utility.FindObj(uiPath);
|
||||
}
|
||||
#if VR
|
||||
if (obj != null && Input.GetMouseButtonUp(0))
|
||||
#else
|
||||
if (obj != null && Input.GetMouseButtonUp(0) && EventSystem.current.IsPointerOverGameObject())
|
||||
#endif
|
||||
{
|
||||
return obj == EventSystem.current.currentSelectedGameObject;
|
||||
}
|
||||
|
||||
@ -22,6 +22,9 @@ public class DeviceItem : MonoBehaviour
|
||||
effect.outlineColor = Utility.ToColor(device.HighColor);
|
||||
StringEventSystem.Global.Register<string[]>(Global.HighLightTrigger, OnHighLightTriggerEvent);
|
||||
TypeEventSystem.Global.Register<StepStatusOnChange>(OnStepChanged);
|
||||
#if VR
|
||||
effect.constantWidth = false;
|
||||
#endif
|
||||
}
|
||||
if (device.MeshCollider)
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user