コード例 #1
0
ファイル: BossObject.cs プロジェクト: hussein-aitlahcen/nevaw
 private void OnAnimationLooped(object sender, AnimationLoopedEventArgs e)
 {
     if (m_hasTimeline)
     {
         m_playableDirector.set_time(0.0);
         m_playableDirector.Resume();
     }
 }
コード例 #2
0
        private IEnumerator PlayDirectorCoroutine(PlayableDirector director, Action completeCallback = null)
        {
            if (null == director)
            {
                yield break;
            }
            m_currentPlayingDirector = director;
            director.set_time(0.0);
            director.Play();
            PlayableGraph playableGraph = director.get_playableGraph();

            while (playableGraph.IsValid() && !playableGraph.IsDone())
            {
                yield return(null);

                if (null == director)
                {
                    yield break;
                }
                playableGraph = director.get_playableGraph();
            }
            completeCallback?.Invoke();
            m_playCoroutine          = null;
            m_currentPlayingDirector = null;
        }
コード例 #3
0
 private void PlayAnim(PlayableDirector director, Action onComplete = null)
 {
     //IL_003b: Unknown result type (might be due to invalid IL or missing references)
     //IL_0040: Unknown result type (might be due to invalid IL or missing references)
     //IL_0050: Unknown result type (might be due to invalid IL or missing references)
     //IL_0055: Unknown result type (might be due to invalid IL or missing references)
     m_isAnimating = true;
     this.get_gameObject().SetActive(true);
     if (m_animCoroutine != null)
     {
         this.StopCoroutine(m_animCoroutine);
     }
     if (m_playingDirector != null)
     {
         PlayableGraph playableGraph = m_playingDirector.get_playableGraph();
         if (playableGraph.IsValid())
         {
             playableGraph = m_playingDirector.get_playableGraph();
             if (!playableGraph.IsDone())
             {
                 m_playingDirector.Stop();
             }
         }
     }
     m_playingDirector = director;
     director.set_time(0.0);
     director.Play();
     m_animCoroutine = this.StartCoroutine(AnimCoroutine(director, onComplete));
 }
コード例 #4
0
        private void StartAnimation(CharacterAnimationInfo animationInfo, Action onComplete = null, Action onCancel = null, bool restart = true, bool async = false)
        {
            //IL_0030: Unknown result type (might be due to invalid IL or missing references)
            //IL_0046: Unknown result type (might be due to invalid IL or missing references)
            string animationName = animationInfo.animationName;
            string timelineKey   = animationInfo.timelineKey;

            m_animator2D.get_transform().set_localRotation(animationInfo.flipX ? Quaternion.Euler(0f, -135f, 0f) : Quaternion.Euler(0f, 45f, 0f));
            direction = animationInfo.direction;
            ITimelineAssetProvider characterData = m_characterData;

            if (characterData != null)
            {
                TimelineAsset timelineAsset;
                bool          flag = characterData.TryGetTimelineAsset(timelineKey, out timelineAsset);
                if (flag && null != timelineAsset)
                {
                    if (timelineAsset != m_playableDirector.get_playableAsset())
                    {
                        m_playableDirector.Play(timelineAsset);
                    }
                    else
                    {
                        if (restart || !m_animator2D.get_animationName().Equals(animationName))
                        {
                            m_playableDirector.set_time(0.0);
                        }
                        m_playableDirector.Resume();
                    }
                    m_hasTimeline = true;
                }
                else
                {
                    if (flag)
                    {
                        Log.Warning("Character named '" + m_characterData.get_name() + "' has a timeline setup for key '" + timelineKey + "' but the actual asset is null.", 323, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\HavreMap\\MapPathfindingActor.cs");
                    }
                    m_playableDirector.set_time(0.0);
                    m_playableDirector.Pause();
                    m_hasTimeline = false;
                }
            }
            m_animationCallback.Setup(animationName, restart, onComplete, onCancel);
            m_animator2D.SetAnimation(animationName, animationInfo.loops, async, restart);
            m_animationParameters = animationInfo.parameters;
        }
コード例 #5
0
 public void InitEnterAnimFirstFrame()
 {
     if (!m_isInitialized)
     {
         Log.Error("Camera must be initialized before.", 116, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\HavreMap\\MapCameraHandler.cs");
     }
     m_allowInteraction = false;
     m_playableDirector.set_time(0.0);
     m_playableDirector.Evaluate();
 }
コード例 #6
0
        public static void ComputeClipWorldSpaceOffset(PlayableDirector director, TimelineClip clip, out Vector3 clipPositionOffset, out Quaternion clipRotationOffset)
        {
            GameObject sceneGameObject = TimelineUtility.GetSceneGameObject(director, clip.parentTrack);
            double     time            = director.get_time();
            TrackAsset parentTrack     = clip.parentTrack;

            TimelineClip[] clips = parentTrack.clips;
            director.Stop();
            for (int i = 0; i < clips.Length; i++)
            {
                parentTrack.RemoveClip(clips[i]);
            }
            parentTrack.AddClip(clip);
            double start           = clip.start;
            double blendInDuration = clip.blendInDuration;

            clip.blendInDuration = 0.0;
            clip.start           = 1.0;
            director.Play();
            director.set_time(0.0);
            director.Evaluate();
            clipPositionOffset = sceneGameObject.get_transform().get_position();
            clipRotationOffset = sceneGameObject.get_transform().get_rotation();
            AnimationPlayableAsset animationPlayableAsset = clip.asset as AnimationPlayableAsset;

            if (!(animationPlayableAsset == null))
            {
                clipPositionOffset += clipRotationOffset * animationPlayableAsset.position;
                clipRotationOffset *= animationPlayableAsset.rotation;
                director.Stop();
                clip.start           = start;
                clip.blendInDuration = blendInDuration;
                parentTrack.RemoveClip(clip);
                for (int j = 0; j < clips.Length; j++)
                {
                    parentTrack.AddClip(clips[j]);
                }
                director.Play();
                director.set_time(time);
                director.Evaluate();
            }
        }
コード例 #7
0
        public static void MatchPrevious(TimelineClip currentClip, Transform matchPoint, PlayableDirector director)
        {
            MatchTargetFields matchFields = TimelineAnimationUtilities.GetMatchFields(currentClip);

            if (matchFields != MatchTargetFieldConstants.None && !(matchPoint == null))
            {
                double       time         = director.get_time();
                TimelineClip previousClip = TimelineAnimationUtilities.GetPreviousClip(currentClip);
                if (previousClip != null && currentClip != previousClip)
                {
                    AnimationTrack animationTrack  = currentClip.parentTrack as AnimationTrack;
                    double         blendInDuration = currentClip.blendInDuration;
                    currentClip.blendInDuration = 0.0;
                    double blendOutDuration = previousClip.blendOutDuration;
                    previousClip.blendOutDuration = 0.0;
                    director.Stop();
                    animationTrack.RemoveClip(currentClip);
                    director.Play();
                    double num = (currentClip.start <= previousClip.end) ? currentClip.start : previousClip.end;
                    director.set_time(num - 1E-05);
                    director.Evaluate();
                    Vector3    position = matchPoint.get_position();
                    Quaternion rotation = matchPoint.get_rotation();
                    director.Stop();
                    animationTrack.AddClip(currentClip);
                    animationTrack.RemoveClip(previousClip);
                    director.Play();
                    director.set_time(currentClip.start + 1E-05);
                    director.Evaluate();
                    AnimationPlayableAsset asset = currentClip.asset as AnimationPlayableAsset;
                    TimelineAnimationUtilities.RigidTransform result = TimelineAnimationUtilities.UpdateClipOffsets(asset, animationTrack, matchPoint, position, rotation);
                    TimelineAnimationUtilities.WriteMatchFields(asset, result, matchFields);
                    currentClip.blendInDuration   = blendInDuration;
                    previousClip.blendOutDuration = blendOutDuration;
                    director.Stop();
                    animationTrack.AddClip(previousClip);
                    director.Play();
                    director.set_time(time);
                    director.Evaluate();
                }
            }
        }
コード例 #8
0
ファイル: MainUIDemo.cs プロジェクト: hussein-aitlahcen/nevaw
 public void ShowStepMenuAnim(bool value)
 {
     if (value)
     {
         m_showStepMenu.set_time(0.0);
         m_showStepMenu.Play();
     }
     else
     {
         m_hideStepMenu.set_time(0.0);
         m_hideStepMenu.Play();
     }
 }
コード例 #9
0
        public static void ComputeTrackOffsets(PlayableDirector director, TimelineClip clip, out Vector3 parentPositionOffset, out Quaternion parentRotationOffset, out Vector3 positionOffset, out Quaternion rotationOffset)
        {
            GameObject sceneGameObject = TimelineUtility.GetSceneGameObject(director, clip.parentTrack);
            double     time            = director.get_time();
            TrackAsset parentTrack     = clip.parentTrack;

            TimelineClip[] clips = parentTrack.clips;
            director.Stop();
            for (int i = 0; i < clips.Length; i++)
            {
                parentTrack.RemoveClip(clips[i]);
            }
            parentTrack.AddClip(clip);
            double start           = clip.start;
            double blendInDuration = clip.blendInDuration;

            clip.blendInDuration = 0.0;
            clip.start           = 1.0;
            director.Play();
            director.set_time(1.0);
            director.Evaluate();
            positionOffset = sceneGameObject.get_transform().get_position();
            rotationOffset = sceneGameObject.get_transform().get_rotation();
            director.set_time(0.0);
            director.Evaluate();
            parentPositionOffset = sceneGameObject.get_transform().get_position();
            parentRotationOffset = sceneGameObject.get_transform().get_rotation();
            director.Stop();
            clip.start           = start;
            clip.blendInDuration = blendInDuration;
            parentTrack.RemoveClip(clip);
            for (int j = 0; j < clips.Length; j++)
            {
                parentTrack.AddClip(clips[j]);
            }
            director.Play();
            director.set_time(time);
            director.Evaluate();
        }
コード例 #10
0
ファイル: MainUIDemo.cs プロジェクト: hussein-aitlahcen/nevaw
 public void ShowPlayerAvatarAnim(bool value)
 {
     m_playerAvatar.get_gameObject().SetActive(true);
     if (value)
     {
         m_showPlayerAvatar.set_time(0.0);
         m_showPlayerAvatar.Play();
     }
     else
     {
         m_hidePlayerAvatar.set_time(0.0);
         m_hidePlayerAvatar.Play();
     }
 }
コード例 #11
0
        public static IEnumerator PlayDirector(PlayableDirector director)
        {
            director.set_time(0.0);
            director.Play();
            while (true)
            {
                PlayableGraph playableGraph = director.get_playableGraph();
                if (playableGraph.IsValid())
                {
                    playableGraph = director.get_playableGraph();
                    if (!playableGraph.IsDone())
                    {
                        yield return(null);

                        continue;
                    }
                    break;
                }
                break;
            }
        }
コード例 #12
0
ファイル: MainUIDemo.cs プロジェクト: hussein-aitlahcen/nevaw
 public void Open()
 {
     m_open.set_time(0.0);
     m_open.Play();
 }
コード例 #13
0
ファイル: MainUIDemo.cs プロジェクト: hussein-aitlahcen/nevaw
 public void PlayVersusAnim()
 {
     m_gotoVersus.set_time(0.0);
     m_gotoVersus.Play();
 }