/// <summary>
    /// 皮肤加载完成回调
    /// </summary>
    /// <param name="componentEvent"></param>
    private void OnHumanAvatarLoadFinish(IComponentEvent componentEvent)
    {
        AvatarLoadFinishEvent humanAvatarLoadFinishEvent = componentEvent as AvatarLoadFinishEvent;

        if (!HasParameter(humanAvatarLoadFinishEvent.Animator, Turn))
        {
            return;
        }

        if (!HasParameter(humanAvatarLoadFinishEvent.Animator, Velocity))
        {
            return;
        }

        m_Animator = humanAvatarLoadFinishEvent.Animator;

        //add 动作音效脚本
        entityAnimatorOfWwise = m_Animator.gameObject.GetOrAddComponent <AK.Wwise.EntityAnimatorOfWwise>();
        entityAnimatorOfWwise.SetIsProtagonist(m_IsMain, m_KHeroType);
        entityAnimatorOfWwise.SetComboID(m_musicComboID);
    }
Esempio n. 2
0
    private void OnSpacecraftAvatarLoadFinishEvent(IComponentEvent componentEvent)
    {
        AvatarLoadFinishEvent spacecraftAvatarLoadFinishEvent = componentEvent as AvatarLoadFinishEvent;

        m_SpacecraftHnagingPointList = spacecraftAvatarLoadFinishEvent.SpacecraftPresentation;
        m_Animator = spacecraftAvatarLoadFinishEvent.Animator;
        Animator[] animators = spacecraftAvatarLoadFinishEvent.Animators;
        for (int i = 0; i < animators.Length; i++)
        {
            // TODO.
            // 先以命名为规则
            if (animators[i].transform.name.Contains("_action"))
            {
                m_StateAnimator = animators[i];
                AnimationClip[]            animationClips = m_StateAnimator.runtimeAnimatorController.animationClips;
                AnimatorOverrideController animatorOverrideController;
                animatorOverrideController = new AnimatorOverrideController(m_StateAnimator.runtimeAnimatorController);
                m_StateAnimator.runtimeAnimatorController = animatorOverrideController;
                EnumMainState state = m_SpacecraftPlayerAnimatorProperty.GetCurrentState().GetMainState();
                if (state == EnumMainState.Fight)
                {
                    for (int j = 0; j < animationClips.Length; j++)
                    {
                        // TODO.
                        if (animationClips[j].name.Contains("_attacked"))
                        {
                            animatorOverrideController["DefaultState"] = animationClips[j];
                            break;
                        }
                    }
                }
                else
                {
                    for (int j = 0; j < animationClips.Length; j++)
                    {
                        // TODO.
                        if (animationClips[j].name.Contains("_normal_state"))
                        {
                            animatorOverrideController["DefaultState"] = animationClips[j];
                            break;
                        }
                    }
                }
                break;
            }
        }


        //播放尾焰音效
        if (m_SpacecraftPlayerAnimatorProperty != null)
        {
            WwiseUtil.PlaySound(m_musicComboID, WwiseMusicSpecialType.SpecialType_WarShipEngine_1,
                                m_IsMain ? WwiseMusicPalce.Palce_1st : WwiseMusicPalce.Palce_3st,
                                false, m_SpacecraftPlayerAnimatorProperty.GetRootTransform());
        }

        if (m_IsMain)
        {
            //添加速度线
            if (!m_LeapCamera)
            {
                m_LeapCamera = EffectManager.GetInstance().CreateEffect(
                    Leyoutech.Core.Loader.Config.AssetAddressKey.FX_SOCKET_FX_CAMERA
                    , EffectManager.GetEffectGroupNameInSpace(m_IsMain)
                    , OnLeapCameraCreated, this);
                m_LeapCamera.transform.SetParent(m_SpacecraftPlayerAnimatorProperty.GetOwner().GetSkinRootTransform(), false);
                m_LeapCamera.SetCreateForMainPlayer(m_IsMain);
                m_LeapCamera.SetAutoRecycleWhenNotExistLivingParticles(false);
            }
            m_LeapCamera.PlayFX();
        }
    }