コード例 #1
0
        public void SetBool(string name, bool value)
        {
            JediumAnimatorMessage dfmsg = new JediumAnimatorMessage(JEDIUM_TYPE_ANIMATOR.BOOL,
                                                                    name, value, true, 0, 0);

            _updater.AddUpdate(dfmsg);
        }
コード例 #2
0
        public void SetFloat(string name, float value, float dampTime, float deltaTime)
        {
            //  Debug.Log("___DIRECT FLOAT:"+name+";"+value);

            float cval = _animator.GetFloat(name);

            if (Math.Abs(cval - value) > 0.05f || Math.Abs(value) < 0.001f)
            {
                JediumAnimatorMessage dfmsg = new JediumAnimatorMessage(JEDIUM_TYPE_ANIMATOR.FLOAT,
                                                                        name, value, true, dampTime, deltaTime);

                _updater.AddUpdate(dfmsg);
            }
        }
コード例 #3
0
        public void SafeSetAnimatorParam(JediumAnimatorMessage value)
        {
            // Debug.Log("___GOT PARAM:"+value.NameParameter+";"+value.Value);
            if (_lastAnimatorParams.ContainsKey(value.NameParameter))
            {
                if (_currrentAnimatorParams[value.NameParameter].Type == value.Type)
                {
                    if (value.Type == JEDIUM_TYPE_ANIMATOR.BOOL || value.Type == JEDIUM_TYPE_ANIMATOR.TRIGGER)
                    {
                        // AnimatorControllerParameterType par = AnimatorControllerParameterType.Bool;
                        //   animatorParamsChange change = new animatorParamsChange(par);
                        //  change.b = (bool) value._value;
                        _animator.SetBool(value.NameParameter, (bool)value.Value);

                        _lastAnimatorParams[value.NameParameter].b     = (bool)value.Value;
                        _currrentAnimatorParams[value.NameParameter].b = (bool)value.Value;
                    }

                    if (value.Type == JEDIUM_TYPE_ANIMATOR.FLOAT)
                    {
                        // Debug.Log("__SETTING FLOAT:"+value.NameParameter+";"+(float)value.Value);
                        _animator.SetFloat(value.NameParameter, (float)value.Value, value.DampTime, value.DeltaTime);
                        // _animator.SetFloat("V",1);

                        _lastAnimatorParams[value.NameParameter].f     = (float)value.Value;
                        _currrentAnimatorParams[value.NameParameter].f = (float)value.Value;
                    }

                    if (value.Type == JEDIUM_TYPE_ANIMATOR.INT)
                    {
                        _animator.SetInteger(value.NameParameter, (int)value.Value);

                        _lastAnimatorParams[value.NameParameter].i     = (int)value.Value;
                        _currrentAnimatorParams[value.NameParameter].i = (int)value.Value;
                    }
                }
                else
                {
                    _log.Info($"Wrong animator param type:{value.NameParameter},{value.Type}");
                }
            }
            else
            {
                _log.Info($"Wrong animator param name:{value.NameParameter}");
            }
        }
コード例 #4
0
        public override bool ProcessUpdate(JediumBehaviourMessage message)
        {
            if (message == null && DoAnimStateTracking)     //empty message update
            {
                CheckAllParams();
                return(false);
            }

            if (!(message is JediumAnimatorMessage))
            {
                return(false);
            }

            JediumAnimatorMessage amsg = (JediumAnimatorMessage)message;

            SafeSetAnimatorParam(amsg);

            if (DoAnimStateTracking)
            {
                CheckAllParams();
            }
            return(true);
        }
コード例 #5
0
        void CheckAllParams()
        {
            GetCurrentValues();

            foreach (var param in _currrentAnimatorParams)
            {
                // Debug.Log("______CHECKING PARAM:" + param.Key + "," + param.Value.GetObjParametr().ToString() + ";" + _lastAnimatorParams[param.Key].ToString());
                //  Debug.Log("__TOTAL PARAMS:"+_currrentAnimatorParams.Count);
                //if (param.Value.GetObjParametr() != _lastAnimatorParams[param.Key].GetObjParametr()) //comparing objects here - wrong!
                if (param.Value != _lastAnimatorParams[param.Key])
                {
                    // Debug.Log("___SENDING PARAM:" + param.Key);
                    // if (param.Value.Type == JEDIUM_TYPE_ANIMATOR.BOOL)


                    //AnimatorChanges?.Invoke(param.Value.Type, param.Key, param.Value.GetObjParametr());
                    //send it
                    JediumAnimatorMessage par = new JediumAnimatorMessage(param.Value.Type, param.Key, param.Value.GetObjParametr(), false, 0, 0);

                    Debug.Log("______SENDING ANIMATOR MESSAGE:" + param.Key);
                    _updater.AddUpdate(par);
                }
            }
        }
コード例 #6
0
 public bool FindAnimatorParametr(JediumAnimatorMessage p)
 {
     return(_animatorParams.Contains(p));
 }
コード例 #7
0
 public void RemoveAnimatorParametr(JediumAnimatorMessage p)
 {
     _animatorParams.Remove(p);
 }
コード例 #8
0
 public void AddAnimatorParametr(JediumAnimatorMessage p)
 {
     _animatorParams.Add(p);
 }