public RadialMenu CreateMainMenu(VRCExpressionsMenu menu, VRCExpressionParameters parameters) { RadialMenu rMenu = Instantiate(RadialMenuPrefab) as RadialMenu; rMenu.gameObject.name = menu.name; rMenu.Initialize(null, menu, parameters); rMenu.transform.SetParent(transform, false); rMenu.gameObject.SetActive(false); return(rMenu); }
public RadialMenu CreateMenu(RadialMenu parent, VRCExpressionsMenu.Control control) { RadialMenu rMenu = Instantiate(RadialMenuPrefab) as RadialMenu; rMenu.gameObject.name = control.subMenu.name; rMenu.Initialize(parent, control.subMenu, parameters); rMenu.transform.SetParent(transform, false); rMenu.gameObject.SetActive(false); subMenus.Add(rMenu.gameObject); return(rMenu); }
public void Initialize(RadialMenu parent, VRCExpressionsMenu menu, VRCExpressionParameters parameters) { this.Parent = parent; this.VRCMenu = menu; this.Parameters = parameters; backButton = CreateButton(null, 0, 1); //Debug.Log("VRCMenu: null=" + (null == VRCMenu) + " : control="+ (null==VRCMenu.controls)); int buttonCount = VRCMenu.controls.Count + 1; int buttonIndex = 1; foreach (VRCExpressionsMenu.Control control in VRCMenu.controls) { float theta = (2 * Mathf.PI / buttonCount) * buttonIndex++; float xpos = Mathf.Sin(theta); float ypos = Mathf.Cos(theta); CreateButton(control, xpos, ypos); } }
internal void SwapMenu(RadialMenu showing, RadialMenu parent) { showing.gameObject.SetActive(false); parent.gameObject.SetActive(true); }
public void Initialize(RadialMenu parent, VRCExpressionsMenu.Control control, float xpos, float ypos) { this.RadialMenu = parent; this.Control = control; this.xpos = xpos; this.ypos = ypos; Texture2D tex = Control.icon ?? null; this.Selectable = GetComponent <Button>(); RadialMenuController.current.MenuActivationEvent += MenuActivationEvent; string error = ""; if (VRCExpressionsMenu.Control.ControlType.SubMenu == Control.type) { if (null == tex) { tex = RadialMenuController.current.SubMenuIcon; } if (null == Control.subMenu) { Error = true; error = $"Sub Menu [{control.name}] is not set"; TEA_Manager.SDKError(error); } else { SubMenu = RadialMenuController.current.CreateMenu(parent, Control); } } if (VRCExpressionsMenu.Control.ControlType.RadialPuppet == Control.type) { if (null == tex) { tex = RadialMenuController.current.RadialPuppetIcon; } if (null == Control.subParameters[0] || string.IsNullOrEmpty(Control.subParameters[0].name)) { error = $"Radial Puppet [{control.name}] does not have a Rotation Parameter"; TEA_Manager.SDKError(error); Error = true; } } if (VRCExpressionsMenu.Control.ControlType.TwoAxisPuppet == Control.type) { if (null == tex) { tex = RadialMenuController.current.TwoAxisIcon; } if ((null == Control.subParameters[0] || string.IsNullOrEmpty(Control.subParameters[0].name)) && (null == Control.subParameters[1] || string.IsNullOrEmpty(Control.subParameters[1].name))) { Error = true; error = $"Two Axis Radial Puppet [{control.name}] does not have a either Horizontal or Vertical Parameters"; TEA_Manager.SDKError(error); } } if (VRCExpressionsMenu.Control.ControlType.Toggle == Control.type) { if (null == tex) { tex = RadialMenuController.current.ToggleIcon; } } if (VRCExpressionsMenu.Control.ControlType.FourAxisPuppet == Control.type) { if (null == tex) { tex = RadialMenuController.current.FourAxisIcon; } if ((null == Control.subParameters[0] || string.IsNullOrEmpty(Control.subParameters[0].name)) && (null == Control.subParameters[1] || string.IsNullOrEmpty(Control.subParameters[1].name)) && (null == Control.subParameters[2] || string.IsNullOrEmpty(Control.subParameters[2].name)) && (null == Control.subParameters[3] || string.IsNullOrEmpty(Control.subParameters[3].name))) { Error = true; error = $"Four Axis Radial Puppet [{control.name}] is missing a parameter"; TEA_Manager.SDKError(error); } } if (VRCExpressionsMenu.Control.ControlType.Button == Control.type) { if (null == tex) { tex = RadialMenuController.current.ButtonIcon; } } if (!Error) { transform.Find("Text").GetComponent <Text>().text = Control.name; if (null != tex) { sprite = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f)); SetImageSprite(image, sprite); } } else { sprite = RadialMenuController.current.ErrorSprite; SetImageSprite(image, sprite); transform.Find("Text").GetComponent <Text>().text = error; } transform.SetParent(RadialMenu.transform); SetScale(); SetOnClick(); }
public RadialButton(RadialMenu radialMenu, VRCExpressionsMenu.Control control) { this.RadialMenu = radialMenu; this.Control = control; this.Selectable = GetComponent <Button>(); }