示例#1
0
        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);
        }
示例#3
0
        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);
        }