public override BaseEvent Clone()
        {
            SwitchCameraDuration duration = ClassObjPool <SwitchCameraDuration> .Get();

            duration.CopyData(this);
            return(duration);
        }
        public override void Enter(Action _action, Track _track)
        {
            this.switchFinished = false;
            GameObject destObj = this.GetDestObj(_action);

            if (destObj != null)
            {
                if (destObj.transform.parent != null && destObj.transform.parent.parent != null && destObj.transform.parent.parent.GetComponent <Moba_Camera>() != null)
                {
                    this.isMoba_camera = true;
                }
                else
                {
                    this.isMoba_camera = false;
                }
                this.curCamera = destObj.GetComponent <Camera>();
                DebugHelper.Assert(this.curCamera != null, "switch camera but dest camera not exist");
                if (this.curCamera != null)
                {
                    this.curCamera.cullingMask &= ~LayerMask.GetMask(new string[]
                    {
                        "Hide"
                    });
                    this.curCamera.cullingMask &= ~LayerMask.GetMask(new string[]
                    {
                        "UIRaw"
                    });
                    this.curCamera.cullingMask &= ~LayerMask.GetMask(new string[]
                    {
                        "UI_Background"
                    });
                    this.curCamera.cullingMask &= ~LayerMask.GetMask(new string[]
                    {
                        "UI_Foreground"
                    });
                    this.curCamera.cullingMask &= ~LayerMask.GetMask(new string[]
                    {
                        "UI_BottomBG"
                    });
                    this.curCamera.cullingMask &= ~LayerMask.GetMask(new string[]
                    {
                        "3DUI"
                    });
                    this.destPos   = this.curCamera.transform.position;
                    this.destRot   = this.curCamera.transform.rotation;
                    this.oldCamera = Camera.main;
                    if (this.oldCamera != null)
                    {
                        this.startPos = this.oldCamera.transform.position;
                        this.startRot = this.oldCamera.transform.rotation;
                        this.curCamera.transform.position = this.startPos;
                        this.curCamera.transform.rotation = this.startRot;
                        destObj.SetActive(true);
                        SwitchCameraDuration.SwitchCamera(this.oldCamera, this.curCamera);
                    }
                }
            }
            base.Enter(_action, _track);
        }
        protected override void CopyData(BaseEvent src)
        {
            base.CopyData(src);
            SwitchCameraDuration duration = src as SwitchCameraDuration;

            this.cameraId       = duration.cameraId;
            this.cameraId2      = duration.cameraId2;
            this.slerpTick      = duration.slerpTick;
            this.cutBackOnExit  = duration.cutBackOnExit;
            this.startPos       = duration.startPos;
            this.startRot       = duration.startRot;
            this.destPos        = duration.destPos;
            this.destRot        = duration.destRot;
            this.curCamera      = duration.curCamera;
            this.oldCamera      = duration.oldCamera;
            this.switchFinished = duration.switchFinished;
        }