1 using System.Collections;
2 using System.Collections.Generic;
5 using UnityEngine.Events;
10 namespace AVR.UI.Utils {
11 [RequireComponent(typeof(LineRenderer))]
15 public bool test =
false;
16 public float radius = 100.0f;
17 public float select_radius = 50.0f;
35 private LineRenderer
lr;
39 lr = GetComponent<LineRenderer>();
40 RectTransform rect = GetComponent<RectTransform>();
41 rect.sizeDelta =
new Vector2(radius * 2.0f, radius * 2.0f);
43 float delta_angle = 360.0f / fields.Length;
45 for (
int i = 0; i < fields.Length; i++)
47 GameObject go = Instantiate(entryPrefab, this.transform);
51 entry.min_angle = i * delta_angle;
52 entry.max_angle = (i + 1) * delta_angle;
53 entry.prefabObject.initalize(entry, select_radius+(radius-select_radius)*0.5f);
56 GameObject overlay = Instantiate(entryPrefab, this.transform);
58 tmp.color = overlayColor;
63 overlay.transform.localScale=
new Vector3(select_radius/radius, select_radius/radius, 1.0f);
70 Vector2 selec = radius * VRInput.Instance.inputManager.getEventStatus(selectionAxis);
72 lr.SetPositions(
new Vector3[] {Vector3.zero,
new Vector3(selec.x, selec.y)});
74 float angle = Vector2.SignedAngle(selec, Vector2.up)+180.0f;
78 if(selec.magnitude > select_radius && angle>entry.
min_angle && angle<entry.
max_angle) {
79 entry.prefabObject.markSelected(
true);
80 selectedEntry = entry;
83 entry.prefabObject.markSelected(
false);
89 selectedEntry.OnSelectEvent.Invoke();
98 gameObject.SetActive(
false);
ClickDragWheelEntry[] fields
AVR_ControllerInputManager.BoolEvent selectionEvent
AVRUI_ClickDragWheelEntryPrefab prefabObject
AVR_ControllerInputManager.Vec2Event selectionAxis
ClickDragWheelEntry selectedEntry