コード例 #1
0
        public void CurrentP3WeaponChanged(GameObject obj)
        {
            if (null == obj)
            {
                _directOutputs.CacheFsmOutput(AnimatorParametersHash.Instance.HandPoseHash,
                                              AnimatorParametersHash.Instance.HandPoseName,
                                              AnimatorParametersHash.Instance.HandPoseDisableValue,
                                              CharacterView.FirstPerson | CharacterView.ThirdPerson);
                return;
            }

            _directOutputs.CacheFsmOutput(AnimatorParametersHash.Instance.HandPoseHash,
                                          AnimatorParametersHash.Instance.HandPoseName,
                                          AnimatorParametersHash.Instance.HandPoseEnableValue,
                                          CharacterView.FirstPerson | CharacterView.ThirdPerson);

            if (_boneRigging.SetP3IkTarget(obj, ref _weaponHasIK))
            {
                var lowRailInCurrentWeapon = _weaponController.GetCurrentLowRailId();
                var gripHandPoseState      =
                    SingletonManager.Get <WeaponPartsConfigManager>().GetSubType(lowRailInCurrentWeapon);

                _directOutputs.CacheFsmOutput(AnimatorParametersHash.Instance.GripHandPoseHash,
                                              AnimatorParametersHash.Instance.GripHandPoseName,
                                              AnimatorParametersHash.Instance.GripHandPoseEnableValue,
                                              CharacterView.FirstPerson | CharacterView.ThirdPerson);

                _directOutputs.CacheFsmOutput(AnimatorParametersHash.Instance.GripHandPoseStateHash,
                                              AnimatorParametersHash.Instance.GripHandPoseStateName,
                                              gripHandPoseState,
                                              CharacterView.FirstPerson | CharacterView.ThirdPerson);
                _attachmentNeedIK = true; //握把需要开启IK
            }
            else
            {
                _directOutputs.CacheFsmOutput(AnimatorParametersHash.Instance.GripHandPoseHash,
                                              AnimatorParametersHash.Instance.GripHandPoseName,
                                              AnimatorParametersHash.Instance.GripHandPoseDisableValue,
                                              CharacterView.FirstPerson | CharacterView.ThirdPerson);
                _attachmentNeedIK = false;
            }
        }