public void Set(Animator animator, VRCExpressionsMenu menu, VRCExpressionParameters parameters, IEnumerable <AnimatorControllerPlayable> animatorControllerPlayables) { _menu = menu; MainMenuPrefab(); _paramType.Clear(); foreach (var controller in animatorControllerPlayables) { foreach (var parameter in RadialMenuUtility.GetParameters(controller)) { _paramType[parameter.name] = RadialMenuUtility.CreateParamFromController(animator, parameter, controller); } } if (!parameters) { return; } foreach (var parameter in parameters.parameters) { if (!_paramType.ContainsKey(parameter.name)) { _paramType[parameter.name] = RadialMenuUtility.CreateParamFromNothing(parameter); } } foreach (var parameter in parameters.parameters) { _paramType[parameter.name].InternalSet(parameter.defaultValue); } }
protected override List <string> CheckErrors() { var errors = base.CheckErrors(); errors.AddRange(RadialMenuUtility.CheckErrors(_avatarDescriptor.expressionsMenu, _avatarDescriptor.expressionParameters)); return(errors); }
private bool UpdateMenus(string pName, float value) { if (string.IsNullOrEmpty(pName)) { return(false); } var list = _menuPath.TakeWhile(menu => menu.Param?.Name != pName || RadialMenuUtility.Is(menu.Value, value)).ToList(); if (list.Count == _menuPath.Count) { return(false); } var count = _menuPath.Count; for (var i = list.Count; i < count; i++) { RemoveMenu(list.Count); } _menuPath[_menuPath.Count - 1].Open(); return(true); }