Beispiel #1
0
 private void CameraRidingHandler(bool enabled, CameraStateParam obj)
 {
     if (enabled)
     {
         RidingStateParam param = obj as RidingStateParam;
         EnableRidingMode(param.distance, param.angleRange);
     }
     else
     {
         DisableRidingMode();
     }
 }
Beispiel #2
0
    public void ApplyAnimation()
    {
        if (!m_pFSM.animator)
        {
            return;
        }

        if (!m_pFSM.SkinConfig)
        {
            return;
        }

        DeleteFloatingAssets();

        if (currWing_State.szPath != "" && currWing_State.szPath != "0" && !wingGO && m_pFSM.SkinConfig && m_pFSM.SkinConfig.chibangguadian)
        {
            m_bWing    = true;
            WingAssets = AssetBundleManager.GetAssets(AssetType.Asset_Prefab, currWing_State.szPath);

            if (WingAssets != null)
            {
                wingGO = WingAssets.InstanceMainRes();
                wingGO.transform.SetParent(m_pFSM.SkinConfig.chibangguadian, false);
                wingAnimator = wingGO.GetComponent <Animator>();

                //绑翅膀音效
                BindSound m_bindAnimSound;
                m_bindAnimSound = wingGO.GetComponent <BindSound>();
                if (m_bindAnimSound == null)
                {
                    m_bindAnimSound = wingGO.AddComponent <BindSound>();
                    if (m_bindAnimSound != null)
                    {
                        m_bindAnimSound.bindSoundEvent += SoundManager.CreateSound;
                    }
                }
            }
        }

        if (m_pFSM.animatorCtrl.ana)
        {
            m_pFSM.animatorCtrl.ana.SetBool("isLanding", false);
            m_pFSM.animatorCtrl.ana.SetBool("floating", true);
            m_pFSM.animatorCtrl.ana.SetBool("flyDown", false);
        }

        if (wingAnimator)
        {
            wingAnimator.SetBool("isLanding", false);
            wingAnimator.SetBool("floating", true);
            wingAnimator.SetBool("flyDown", false);
        }


        if (m_pFSM.isHero && SoldierCamera.MainInstance())
        {
            Vector2 cameraAngle    = Vector2.zero;
            float   cameraDistance = 0.0f;
            if (!m_bWing)
            {
                cameraAngle    = new Vector2(currWing_State.fMinCameraAngle, currWing_State.fMaxCameraAngle);
                cameraDistance = currWing_State.fCameraDistance;
                RidingStateParam camParam = new RidingStateParam(cameraDistance, cameraAngle);
                SoldierCamera.MainInstance <SoldierCamera>().EnableMode(CameraMode.RidingControl, true, camParam);
            }
            else
            {
                SoldierCamera.MainInstance <SoldierCamera>().EnableMode(CameraMode.FloatingControl, true);
            }
        }
        else
        {
            if (currWing_State.nType == WING_STATE_TYPE.WING_STATE_NORMAL_FLIGHT)
            {
                m_pFSM.animatorCtrl.ana.SetTrigger("skipFlyStart");
            }
            else if (currWing_State.nType == WING_STATE_TYPE.WING_STATE_ACCELERATION)
            {
                m_pFSM.animatorCtrl.ana.SetTrigger("skipFlyStart");
                EnableAccelerate(true, currWing_State.fMaxSpeed);
            }
        }
    }