Skip to content

Commit 8b28a2f

Browse files
Merge pull request #2 from Unity-Technologies/staging
0.1.0 staging -> master
2 parents 31ff789 + d59da42 commit 8b28a2f

File tree

147 files changed

+13589
-8437
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

147 files changed

+13589
-8437
lines changed

Menus/MainMenu/MainMenu.cs

Lines changed: 395 additions & 396 deletions
Large diffs are not rendered by default.

Menus/MainMenu/Scripts/MainMenuUI.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ IEnumerator AnimateFrameReveal(VisibilityState visibilityState)
481481
currentBlendShapeWeight = currentBlendShapeWeight > 0 ? currentBlendShapeWeight : zeroStartBlendShapePadding;
482482

483483
var currentDuration = 0f;
484-
while (m_VisibilityState != VisibilityState.Hidden && currentDuration < smoothTime)
484+
while (m_VisibilityState != VisibilityState.Hidden && currentDuration - Time.deltaTime < smoothTime)
485485
{
486486
currentBlendShapeWeight = MathUtilsExt.SmoothDamp(currentBlendShapeWeight, targetWeight, ref smoothVelocity, smoothTime, Mathf.Infinity, Time.deltaTime);
487487
currentDuration += Time.deltaTime;
@@ -490,14 +490,13 @@ IEnumerator AnimateFrameReveal(VisibilityState visibilityState)
490490
yield return null;
491491
}
492492

493-
if (m_VisibilityState == visibilityState)
494-
{
495-
m_MenuFrameRenderer.SetBlendShapeWeight(1, targetWeight);
496-
m_MenuFacesMaterial.color = targetWeight > 0 ? m_MenuFacesColor : k_MenuFacesHiddenColor;
497-
}
493+
m_MenuFrameRenderer.SetBlendShapeWeight(1, targetWeight);
494+
m_MenuFacesMaterial.color = targetWeight > 0 ? m_MenuFacesColor : k_MenuFacesHiddenColor;
498495

499496
if (m_VisibilityState == VisibilityState.Hidden)
497+
{
500498
m_MenuFrameRenderer.SetBlendShapeWeight(0, 0);
499+
}
501500
}
502501

503502
public void OnRayEnter(RayEventData eventData)

Menus/RadialMenu/RadialMenu.cs

Lines changed: 179 additions & 180 deletions
Original file line numberDiff line numberDiff line change
@@ -1,180 +1,179 @@
1-
#if UNITY_EDITOR
2-
using System;
3-
using System.Collections.Generic;
4-
using UnityEditor.Experimental.EditorVR.Core;
5-
using UnityEditor.Experimental.EditorVR.Proxies;
6-
using UnityEditor.Experimental.EditorVR.Utilities;
7-
using UnityEngine;
8-
using UnityEngine.InputNew;
9-
10-
namespace UnityEditor.Experimental.EditorVR.Menus
11-
{
12-
sealed class RadialMenu : MonoBehaviour, IInstantiateUI, IAlternateMenu, IUsesMenuOrigins, ICustomActionMap,
13-
IControlHaptics, IUsesNode, IConnectInterfaces, IRequestFeedback
14-
{
15-
const float k_ActivationThreshold = 0.5f; // Do not consume thumbstick or activate menu if the control vector's magnitude is below this threshold
16-
17-
[SerializeField]
18-
ActionMap m_ActionMap;
19-
20-
[SerializeField]
21-
RadialMenuUI m_RadialMenuPrefab;
22-
23-
[SerializeField]
24-
HapticPulse m_ReleasePulse;
25-
26-
[SerializeField]
27-
HapticPulse m_ButtonHoverPulse;
28-
29-
[SerializeField]
30-
HapticPulse m_ButtonClickedPulse;
31-
32-
RadialMenuUI m_RadialMenuUI;
33-
List<ActionMenuData> m_MenuActions;
34-
Transform m_AlternateMenuOrigin;
35-
MenuHideFlags m_MenuHideFlags = MenuHideFlags.Hidden;
36-
37-
readonly BindingDictionary m_Controls = new BindingDictionary();
38-
39-
public event Action<Transform> itemWasSelected;
40-
41-
public Transform rayOrigin { private get; set; }
42-
43-
public Transform menuOrigin { get; set; }
44-
45-
public GameObject menuContent { get { return m_RadialMenuUI.gameObject; } }
46-
47-
public Node node { get; set; }
48-
49-
public Bounds localBounds { get { return default(Bounds); } }
50-
51-
public ActionMap actionMap { get { return m_ActionMap; } }
52-
public bool ignoreLocking { get { return false; } }
53-
54-
public List<ActionMenuData> menuActions
55-
{
56-
get { return m_MenuActions; }
57-
set
58-
{
59-
m_MenuActions = value;
60-
61-
if (m_RadialMenuUI)
62-
m_RadialMenuUI.actions = value;
63-
}
64-
}
65-
66-
public Transform alternateMenuOrigin
67-
{
68-
get { return m_AlternateMenuOrigin; }
69-
set
70-
{
71-
m_AlternateMenuOrigin = value;
72-
73-
if (m_RadialMenuUI != null)
74-
m_RadialMenuUI.alternateMenuOrigin = value;
75-
}
76-
}
77-
78-
public MenuHideFlags menuHideFlags
79-
{
80-
get { return m_MenuHideFlags; }
81-
set
82-
{
83-
if (m_MenuHideFlags != value)
84-
{
85-
m_MenuHideFlags = value;
86-
var visible = value == 0;
87-
if (m_RadialMenuUI)
88-
m_RadialMenuUI.visible = visible;
89-
90-
if (visible)
91-
ShowFeedback();
92-
else
93-
this.ClearFeedbackRequests();
94-
}
95-
}
96-
}
97-
98-
void Start()
99-
{
100-
m_RadialMenuUI = this.InstantiateUI(m_RadialMenuPrefab.gameObject).GetComponent<RadialMenuUI>();
101-
m_RadialMenuUI.alternateMenuOrigin = alternateMenuOrigin;
102-
m_RadialMenuUI.actions = menuActions;
103-
this.ConnectInterfaces(m_RadialMenuUI); // Connect interfaces before performing setup on the UI
104-
m_RadialMenuUI.Setup();
105-
m_RadialMenuUI.buttonHovered += OnButtonHovered;
106-
m_RadialMenuUI.buttonClicked += OnButtonClicked;
107-
108-
InputUtils.GetBindingDictionaryFromActionMap(m_ActionMap, m_Controls);
109-
}
110-
111-
public void ProcessInput(ActionMapInput input, ConsumeControlDelegate consumeControl)
112-
{
113-
var radialMenuInput = (RadialMenuInput)input;
114-
if (radialMenuInput == null || m_MenuHideFlags != 0)
115-
{
116-
this.ClearFeedbackRequests();
117-
return;
118-
}
119-
120-
var inputDirection = radialMenuInput.navigate.vector2;
121-
122-
if (inputDirection.magnitude > k_ActivationThreshold)
123-
{
124-
// Composite controls need to be consumed separately
125-
consumeControl(radialMenuInput.navigateX);
126-
consumeControl(radialMenuInput.navigateY);
127-
m_RadialMenuUI.buttonInputDirection = inputDirection;
128-
}
129-
else
130-
{
131-
m_RadialMenuUI.buttonInputDirection = Vector2.zero;
132-
}
133-
134-
var selectControl = radialMenuInput.selectItem;
135-
m_RadialMenuUI.pressedDown = selectControl.wasJustPressed;
136-
if (m_RadialMenuUI.pressedDown)
137-
consumeControl(selectControl);
138-
139-
if (selectControl.wasJustReleased)
140-
{
141-
this.Pulse(node, m_ReleasePulse);
142-
143-
m_RadialMenuUI.SelectionOccurred();
144-
145-
if (itemWasSelected != null)
146-
itemWasSelected(rayOrigin);
147-
148-
consumeControl(selectControl);
149-
}
150-
}
151-
152-
void OnButtonClicked()
153-
{
154-
this.Pulse(node, m_ButtonClickedPulse);
155-
}
156-
157-
void OnButtonHovered()
158-
{
159-
this.Pulse(node, m_ButtonHoverPulse);
160-
}
161-
162-
void ShowFeedback()
163-
{
164-
List<VRInputDevice.VRControl> controls;
165-
if (m_Controls.TryGetValue("SelectItem", out controls))
166-
{
167-
foreach (var id in controls)
168-
{
169-
this.AddFeedbackRequest(new ProxyFeedbackRequest
170-
{
171-
control = id,
172-
node = node,
173-
tooltipText = "Select Action (Press to Execute)"
174-
});
175-
}
176-
}
177-
}
178-
}
179-
}
180-
#endif
1+
#if UNITY_EDITOR
2+
using System;
3+
using System.Collections.Generic;
4+
using UnityEditor.Experimental.EditorVR.Core;
5+
using UnityEditor.Experimental.EditorVR.Proxies;
6+
using UnityEditor.Experimental.EditorVR.Utilities;
7+
using UnityEngine;
8+
using UnityEngine.InputNew;
9+
10+
namespace UnityEditor.Experimental.EditorVR.Menus
11+
{
12+
sealed class RadialMenu : MonoBehaviour, IInstantiateUI, IAlternateMenu, IUsesMenuOrigins, ICustomActionMap,
13+
IControlHaptics, IUsesNode, IConnectInterfaces, IRequestFeedback
14+
{
15+
const float k_ActivationThreshold = 0.5f; // Do not consume thumbstick or activate menu if the control vector's magnitude is below this threshold
16+
17+
[SerializeField]
18+
ActionMap m_ActionMap;
19+
20+
[SerializeField]
21+
RadialMenuUI m_RadialMenuPrefab;
22+
23+
[SerializeField]
24+
HapticPulse m_ReleasePulse;
25+
26+
[SerializeField]
27+
HapticPulse m_ButtonHoverPulse;
28+
29+
[SerializeField]
30+
HapticPulse m_ButtonClickedPulse;
31+
32+
RadialMenuUI m_RadialMenuUI;
33+
List<ActionMenuData> m_MenuActions;
34+
Transform m_AlternateMenuOrigin;
35+
MenuHideFlags m_MenuHideFlags = MenuHideFlags.Hidden;
36+
37+
readonly BindingDictionary m_Controls = new BindingDictionary();
38+
39+
public event Action<Transform> itemWasSelected;
40+
41+
public Transform rayOrigin { private get; set; }
42+
43+
public Transform menuOrigin { get; set; }
44+
45+
public GameObject menuContent { get { return m_RadialMenuUI.gameObject; } }
46+
47+
public Node node { get; set; }
48+
49+
public Bounds localBounds { get { return default(Bounds); } }
50+
51+
public ActionMap actionMap { get { return m_ActionMap; } }
52+
public bool ignoreLocking { get { return false; } }
53+
54+
public List<ActionMenuData> menuActions
55+
{
56+
get { return m_MenuActions; }
57+
set
58+
{
59+
m_MenuActions = value;
60+
61+
if (m_RadialMenuUI)
62+
m_RadialMenuUI.actions = value;
63+
}
64+
}
65+
66+
public Transform alternateMenuOrigin
67+
{
68+
get { return m_AlternateMenuOrigin; }
69+
set
70+
{
71+
m_AlternateMenuOrigin = value;
72+
73+
if (m_RadialMenuUI != null)
74+
m_RadialMenuUI.alternateMenuOrigin = value;
75+
}
76+
}
77+
78+
public MenuHideFlags menuHideFlags
79+
{
80+
get { return m_MenuHideFlags; }
81+
set
82+
{
83+
if (m_MenuHideFlags != value)
84+
{
85+
m_MenuHideFlags = value;
86+
var visible = value == 0;
87+
if (m_RadialMenuUI)
88+
m_RadialMenuUI.visible = visible;
89+
90+
if (visible)
91+
ShowFeedback();
92+
else
93+
this.ClearFeedbackRequests();
94+
}
95+
}
96+
}
97+
98+
void Start()
99+
{
100+
m_RadialMenuUI = this.InstantiateUI(m_RadialMenuPrefab.gameObject).GetComponent<RadialMenuUI>();
101+
m_RadialMenuUI.alternateMenuOrigin = alternateMenuOrigin;
102+
m_RadialMenuUI.actions = menuActions;
103+
this.ConnectInterfaces(m_RadialMenuUI); // Connect interfaces before performing setup on the UI
104+
m_RadialMenuUI.Setup();
105+
m_RadialMenuUI.buttonHovered += OnButtonHovered;
106+
m_RadialMenuUI.buttonClicked += OnButtonClicked;
107+
108+
InputUtils.GetBindingDictionaryFromActionMap(m_ActionMap, m_Controls);
109+
}
110+
111+
public void ProcessInput(ActionMapInput input, ConsumeControlDelegate consumeControl)
112+
{
113+
var radialMenuInput = (RadialMenuInput)input;
114+
if (radialMenuInput == null || m_MenuHideFlags != 0)
115+
{
116+
this.ClearFeedbackRequests();
117+
return;
118+
}
119+
120+
var inputDirection = radialMenuInput.navigate.vector2;
121+
122+
if (inputDirection.magnitude > k_ActivationThreshold)
123+
{
124+
// Composite controls need to be consumed separately
125+
consumeControl(radialMenuInput.navigateX);
126+
consumeControl(radialMenuInput.navigateY);
127+
m_RadialMenuUI.buttonInputDirection = inputDirection;
128+
}
129+
else
130+
{
131+
m_RadialMenuUI.buttonInputDirection = Vector2.zero;
132+
}
133+
134+
var selectControl = radialMenuInput.selectItem;
135+
m_RadialMenuUI.pressedDown = selectControl.wasJustPressed;
136+
if (m_RadialMenuUI.pressedDown)
137+
consumeControl(selectControl);
138+
139+
if (selectControl.wasJustReleased)
140+
{
141+
this.Pulse(node, m_ReleasePulse);
142+
143+
m_RadialMenuUI.SelectionOccurred();
144+
145+
if (itemWasSelected != null)
146+
itemWasSelected(rayOrigin);
147+
148+
consumeControl(selectControl);
149+
}
150+
}
151+
152+
void OnButtonClicked()
153+
{
154+
this.Pulse(node, m_ButtonClickedPulse);
155+
}
156+
157+
void OnButtonHovered()
158+
{
159+
this.Pulse(node, m_ButtonHoverPulse);
160+
}
161+
162+
void ShowFeedback()
163+
{
164+
List<VRInputDevice.VRControl> controls;
165+
if (m_Controls.TryGetValue("SelectItem", out controls))
166+
{
167+
foreach (var id in controls)
168+
{
169+
var request = (ProxyFeedbackRequest)this.GetFeedbackRequestObject(typeof(ProxyFeedbackRequest));
170+
request.control = id;
171+
request.node = node;
172+
request.tooltipText = "Select Action (Press to Execute)";
173+
this.AddFeedbackRequest(request);
174+
}
175+
}
176+
}
177+
}
178+
}
179+
#endif

0 commit comments

Comments
 (0)