Beispiel #1
0
		public override void Initialize (bool overwrite) {
			if (valid && !overwrite)
				return;

			base.Initialize(overwrite);

			if (!valid)
				return;

			state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());

			#if UNITY_EDITOR
			if (!string.IsNullOrEmpty(_animationName)) {
				if (Application.isPlaying) {
					state.SetAnimation(0, _animationName, loop);
				} else {
					// Assume SkeletonAnimation is valid for skeletonData and skeleton. Checked above.
					var animationObject = skeletonDataAsset.GetSkeletonData(false).FindAnimation(_animationName);
					if (animationObject != null)
						animationObject.Apply(skeleton, 0f, 0f, false, null, 1f, true, false);
				}
				Update(0);
			}
			#else
			if (!string.IsNullOrEmpty(_animationName)) {
				state.SetAnimation(0, _animationName, loop);
				Update(0);
			}
			#endif
		}
Beispiel #2
0
 public void HandleAnimComplete(Spine.AnimationState state, int trackIndex, int loopCount)
 {
     if (!loop || (loop && loopCount == loopTimes))
     {
         animationComplete = true;
     }
 }
        /// <summary>
        /// Initialize this component. Attempts to load the SkeletonData and creates the internal Spine objects and buffers.</summary>
        /// <param name="overwrite">If set to <c>true</c>, force overwrite an already initialized object.</param>
        public override void Initialize(bool overwrite)
        {
            if (valid && !overwrite)
            {
                return;
            }
            base.Initialize(overwrite);

            if (!valid)
            {
                return;
            }
            state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());
            wasUpdatedAfterInit = false;

            if (!string.IsNullOrEmpty(_animationName))
            {
                var animationObject = skeletonDataAsset.GetSkeletonData(false).FindAnimation(_animationName);
                if (animationObject != null)
                {
                    state.SetAnimation(0, animationObject, loop);
                                        #if UNITY_EDITOR
                    if (!Application.isPlaying)
                    {
                        Update(0f);
                    }
                                        #endif
                }
            }
        }
		void Start () {
			// Make sure you get these AnimationState and Skeleton references in Start or Later. Getting and using them in Awake is not guaranteed by default execution order.
			skeletonAnimation = GetComponent<SkeletonAnimation>();
			spineAnimationState = skeletonAnimation.state;
			skeleton = skeletonAnimation.skeleton;

			StartCoroutine(DoDemoRoutine());
		}
Beispiel #5
0
        void HandleCustomEvents(Spine.AnimationState state, int trackIndex, Spine.Event e)
        {
            var eventName = e.Data.Name;

            if (CustomEvents.ContainsKey(eventName))
            {
                CustomEvents[eventName]();
            }
        }
 public override void Init()
 {
     m_lastStatus     = RoleStatus.None;
     m_animationState = m_dock.Anime.AnimationState;
     m_skeleton       = m_dock.Anime.skeleton;
     m_hangAnime      = m_skeleton.Data.FindAnimation(m_dock.HangAnimeName);
     m_moveAnime      = m_skeleton.Data.FindAnimation(m_dock.MoveAnimeName);
     m_landAnime      = m_skeleton.Data.FindAnimation(m_dock.LandAnimeName);
 }
Beispiel #7
0
 void Start()
 {
     // Make sure you get these AnimationState and Skeleton references in Start or Later.
     // Getting and using them in Awake is not guaranteed by default execution order.
     skeletonAnimation   = GetComponent <SkeletonAnimation>();
     spineAnimationState = skeletonAnimation.AnimationState;
     skeleton            = skeletonAnimation.Skeleton;
     StartCoroutine(DoDemoRoutine());
 }
Beispiel #8
0
        private void OnBombEnd(Spine.AnimationState state, int trackIndex)
        {
            m_stAnimation.state.End -= OnBombEnd;

            //xue delete
            //m_stBombLogic.Stop();
            m_stBombLogic.BombStatus++;
            Object.Destroy(this.gameObject);
        }
Beispiel #9
0
 private void Start()
 {
     m_hActorController.actorData.m_hAnimation = this;
     // Make sure you get these AnimationState and Skeleton references in Start or Later.
     // Getting and using them in Awake is not guaranteed by default execution order.
     m_hSkeletonAnimation   = GetComponent <SkeletonAnimation>();
     m_hSpineAnimationState = m_hSkeletonAnimation.AnimationState;
     m_hSkeleton            = m_hSkeletonAnimation.Skeleton;
 }
Beispiel #10
0
        bool CheckAnimationState(AnimationState state)
        {
            if (state == null)
            {
                Debug.LogError("AnimationState is null");
                return(false);
            }

            return(true);
        }
Beispiel #11
0
        /// <summary>
        /// Initialize this component. Attempts to load the SkeletonData and creates the internal Spine objects and buffers.</summary>
        /// <param name="overwrite">If set to <c>true</c>, force overwrite an already initialized object.</param>
        public override void Initialize(bool overwrite)
        {
            if (valid && !overwrite)
            {
                return;
            }

            base.Initialize(overwrite);

            if (!valid)
            {
                return;
            }

            state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());

#if UNITY_EDITOR
            if (!string.IsNullOrEmpty(_animationName))
            {
                if (Application.isPlaying)
                {
                    TrackEntry startingTrack = TrySetAnimation(_animationName, loop);
                    if (startingTrack != null)
                    {
                        Update(0);
                    }
                }
                else
                {
                    // Assume SkeletonAnimation is valid for skeletonData and skeleton. Checked above.
                    var animationObject = skeletonDataAsset.GetSkeletonData(false).FindAnimation(_animationName);
                    if (animationObject != null)
                    {
                        animationObject.PoseSkeleton(skeleton, 0f);
                    }
                }
            }
#else
            if (!string.IsNullOrEmpty(_animationName))
            {
                TrackEntry startingTrack = TrySetAnimation(_animationName, loop);
                if (startingTrack != null)
                {
                    Update(0);
                }
            }
                        #endif
#if GM2DPROJECT
            if (GameA.Game.GM2DGame.Instance != null)
            {
                GameA.Game.GameRun.Instance.RegistSpineSkeletonAnimation(this);
            }
            //GameA.Game.SceneManager.Instance.RegistSpineSkeletonAnimation (this);
#endif
        }
Beispiel #12
0
        void OnEnd(Spine.AnimationState state, int trackIndex)
        {
            if (animationName != null && animationName != "")
            {
//				Debug.Log ("MTUnity: SpineHideObserver: OnEnd animationName = " + animationName);
                Spine.TrackEntry te = state.GetCurrent(trackIndex);
                if (te != null && te.animation.name.CompareTo(animationName) == 0)
                {
                    this.gameObject.SetActive(false);
                }
            }
        }
Beispiel #13
0
        void Start()
        {
            // Make sure you get these AnimationState and Skeleton references in Start or Later.
            // Getting and using them in Awake is not guaranteed by default execution order.
            skeletonAnimation   = GetComponent <SkeletonAnimation>();
            spineAnimationState = skeletonAnimation.AnimationState;
            skeleton            = skeletonAnimation.Skeleton;
            spineAnimationState.SetAnimation(0, runToIdleAnimationName, false);
            spineAnimationState.AddAnimation(0, idleAnimationName, true, 0);
            skeletonAnimation.SetOrder(123456);

//			StartCoroutine(DoDemoRoutine());
//			StopCoroutine(DoDemoRoutine());
        }
Beispiel #14
0
 void SetAnimationState(int trackindex, string animationName, bool loop)
 {
     if (currentAnimationState != animationName)
     {
         if (currentAnimationState == climbAnimationName)
         {
             m_Character.ClimbCorrection();
         }
         skeletonAnimation   = GameObject.Find("PlayerAnim").GetComponent <SkeletonAnimation>();
         spineAnimationState = skeletonAnimation.AnimationState;
         spineAnimationState.SetAnimation(0, animationName, true);
         currentAnimationState = animationName;
     }
 }
        public void HandleAnimComplete(Spine.AnimationState state, int trackIndex)
        {
            if (idleAfter)
            {
                if (willTransform)
                {
                    animChar.transform.position += transformOffset;
                }

                animChar.charState = CharState.Idle;
            }

            animationComplete = true;
        }
        void Start()
        {
            // Make sure you get these AnimationState and Skeleton references in Start or Later.
            // Getting and using them in Awake is not guaranteed by default execution order.

            skeletonAnimation   = GetComponent <SkeletonAnimation>();
            spineAnimationState = skeletonAnimation.AnimationState;
            skeleton            = skeletonAnimation.Skeleton;

            foreach (var animation in untriggeredRestState)
            {
                spineAnimationState.SetAnimation(0, animation, true);
            }
        }
Beispiel #17
0
        //SkeletonAnimation

        /*
         *	Int Value:		0 sets ghostingEnabled to false, 1 sets ghostingEnabled to true
         *	Float Value:	Values greater than 0 set the spawnRate equal the float value
         *	String Value:	Pass RGBA hex color values in to set the color property.  IE:   "A0FF8BFF"
         */
        void OnEvent(Spine.AnimationState state, int trackIndex, Spine.Event e)
        {
            if (e.Data.Name == "Ghosting")
            {
                ghostingEnabled = e.Int > 0;
                if (e.Float > 0)
                {
                    spawnRate = e.Float;
                }
                if (e.String != null)
                {
                    this.color = HexToColor(e.String);
                }
            }
        }
Beispiel #18
0
        private void Start()
        {
            playButton.onClick.AddListener(() => Play());
            addButton.onClick.AddListener(() => Add());
            clearButton.onClick.AddListener(() => Clear());

            isLoopToggle.onValueChanged.AddListener(OnIsLoopedValueChanged);

            speedSlider.onValueChanged.AddListener(OnSpeedChanged);
            speedSlider.value = 100;

            _state = skeletalAnim.state;

            PopulateAnimDropdown();
        }
Beispiel #19
0
        /// <summary>
        /// Initialize this component. Attempts to load the SkeletonData and creates the internal Spine objects and buffers.</summary>
        /// <param name="overwrite">If set to <c>true</c>, force overwrite an already initialized object.</param>
        public override void Initialize(bool overwrite)
        {
            if (valid && !overwrite)
            {
                return;
            }
            updateCount = 0;
            base.Initialize(overwrite);

            if (!valid)
            {
                return;
            }

            state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());

                        #if UNITY_EDITOR
            if (!string.IsNullOrEmpty(_animationName))
            {
                if (Application.isPlaying)
                {
                    TrackEntry startingTrack = TrySetAnimation(_animationName, loop);
                    if (startingTrack != null)
                    {
                        Update(0);
                    }
                }
                else
                {
                    // Assume SkeletonAnimation is valid for skeletonData and skeleton. Checked above.
                    var animationObject = skeletonDataAsset.GetSkeletonData(false).FindAnimation(_animationName);
                    if (animationObject != null)
                    {
                        animationObject.PoseSkeleton(skeleton, 0f);
                    }
                }
            }
                        #else
            if (!string.IsNullOrEmpty(_animationName))
            {
                TrackEntry startingTrack = TrySetAnimation(_animationName, loop);
                if (startingTrack != null)
                {
                    Update(0);
                }
            }
                        #endif
        }
Beispiel #20
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="state"></param>
        /// <param name="eventType"></param>
        /// <param name="callback"></param>
        public void SetSpineEvent(Spine.AnimationState state, int eventType, LuaFunction callback)
        {
            if (state == null)
            {
                return;
            }

            if (eventType == 0)
            {
                state.Complete += delegate(Spine.TrackEntry trackEntry)
                {
                    callback.Call(trackEntry);
                };
            }
            else
            {
                state.Event += delegate(Spine.TrackEntry trackEntry, Spine.Event e)
                {
                    callback.Call(e.Data.Name);
                };
            }
        }
Beispiel #21
0
        /// <summary>
        /// Initialize this component. Attempts to load the SkeletonData and creates the internal Spine objects and buffers.</summary>
        /// <param name="overwrite">If set to <c>true</c>, force overwrite an already initialized object.</param>
        public override void Initialize(bool overwrite)
        {
            if (valid && !overwrite)
            {
                return;
            }

            base.Initialize(overwrite);

            if (!valid)
            {
                return;
            }

            state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());

            if (!string.IsNullOrEmpty(_animationName))
            {
                var animationObject = skeletonDataAsset.GetSkeletonData(false).FindAnimation(_animationName);
                if (animationObject != null)
                {
                    animationObject.PoseSkeleton(skeleton, 0f);
                    skeleton.UpdateWorldTransform();

                                        #if UNITY_EDITOR
                    if (Application.isPlaying)
                    {
                                        #endif

                    // In Unity Editor edit mode, make this block not run.
                    state.SetAnimation(0, animationObject, loop);

                                        #if UNITY_EDITOR
                }
                                        #endif
                }
            }
        }
Beispiel #22
0
        public override void OnStateEnter(
            Animator animator,
            AnimatorStateInfo stateInfo,
            int layerIndex)
        {
            if (!_controller)
            {
                _controller = animator.GetComponent <SpineController>();
                if (!_controller)
                {
                    throw new NotFoundComponentException <SpineController>();
                }
            }

            if (!_skeletonAnimation)
            {
                _skeletonAnimation = animator.GetComponentInChildren <SkeletonAnimation>();
                if (!_skeletonAnimation)
                {
                    throw new NotFoundComponentException <SkeletonAnimation>();
                }

                _spineAnimationState = _skeletonAnimation.state;
            }

            try
            {
                _trackEntry           = _controller.PlayAnimationForState(animationClip, layer);
                _trackEntry.TimeScale = timeScale;
                _normalizedTime       = 0f;
            }
            catch (KeyNotFoundException)
            {
                Debug.LogError($"{nameof(_trackEntry)} is null!");
            }
        }
        public void Initialize(bool overwrite)
        {
            if (this.IsValid && !overwrite)
            {
                return;
            }

            // Make sure none of the stuff is null
            if (this.skeletonDataAsset == null)
            {
                return;
            }
            var skeletonData = this.skeletonDataAsset.GetSkeletonData(false);

            if (skeletonData == null)
            {
                return;
            }

            if (skeletonDataAsset.atlasAssets.Length <= 0 || skeletonDataAsset.atlasAssets[0].MaterialCount <= 0)
            {
                return;
            }

            this.state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());
            if (state == null)
            {
                Clear();
                return;
            }

            this.skeleton = new Skeleton(skeletonData)
            {
                ScaleX = this.initialFlipX ? -1 : 1,
                ScaleY = this.initialFlipY ? -1 : 1
            };

            meshBuffers = new DoubleBuffered <MeshRendererBuffers.SmartMesh>();
            baseTexture = skeletonDataAsset.atlasAssets[0].PrimaryMaterial.mainTexture;
            canvasRenderer.SetTexture(this.mainTexture);             // Needed for overwriting initializations.

            // Set the initial Skin and Animation
            if (!string.IsNullOrEmpty(initialSkinName))
            {
                skeleton.SetSkin(initialSkinName);
            }

            separatorSlots.Clear();
            for (int i = 0; i < separatorSlotNames.Length; i++)
            {
                separatorSlots.Add(skeleton.FindSlot(separatorSlotNames[i]));
            }

            wasUpdatedAfterInit = false;
            if (!string.IsNullOrEmpty(startingAnimation))
            {
                var animationObject = skeletonDataAsset.GetSkeletonData(false).FindAnimation(startingAnimation);
                if (animationObject != null)
                {
                    state.SetAnimation(0, animationObject, startingLoop);
                                        #if UNITY_EDITOR
                    if (!Application.isPlaying)
                    {
                        Update(0f);
                    }
                                        #endif
                }
            }

            if (OnRebuild != null)
            {
                OnRebuild(this);
            }
        }
Beispiel #24
0
 private void AnimationAwake()
 {
     skeletonAnimation   = GameObject.Find("PlayerAnim").GetComponent <SkeletonAnimation>();
     spineAnimationState = skeletonAnimation.AnimationState;
     skeleton            = skeletonAnimation.Skeleton;
 }
		public override void Initialize (bool overwrite) {
			if (valid && !overwrite)
				return;

			base.Initialize(overwrite);

			if (!valid)
				return;

			state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());

			#if UNITY_EDITOR
			if (!string.IsNullOrEmpty(_animationName)) {
				if (Application.isPlaying) {
					state.SetAnimation(0, _animationName, loop);
				} else {
					// Assume SkeletonAnimation is valid for skeletonData and skeleton. Checked above.
					var animationObject = skeletonDataAsset.GetSkeletonData(false).FindAnimation(_animationName);
					if (animationObject != null)
						animationObject.Apply(skeleton, 0f, 0f, false, null, 1f, true, false);
				}
				Update(0);
			}
			#else
			if (!string.IsNullOrEmpty(_animationName)) {
				state.SetAnimation(0, _animationName, loop);
				Update(0);
			}
			#endif
		}
Beispiel #26
0
 void OnEnd(Spine.AnimationState state, int trackIndex)
 {
     Destroy(gameObject);
 }
Beispiel #27
0
 protected abstract void HandleEvents(Spine.AnimationState state, int trackIndex, Spine.Event e);
        public void Initialize(bool overwrite)
        {
            if (this.IsValid && !overwrite)
            {
                return;
            }

            // Make sure none of the stuff is null
            if (this.skeletonDataAsset == null)
            {
                return;
            }
            var skeletonData = this.skeletonDataAsset.GetSkeletonData(false);

            if (skeletonData == null)
            {
                return;
            }

            if (skeletonDataAsset.atlasAssets.Length <= 0 || skeletonDataAsset.atlasAssets[0].MaterialCount <= 0)
            {
                return;
            }

            this.state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());
            if (state == null)
            {
                Clear();
                return;
            }

            this.skeleton = new Skeleton(skeletonData)
            {
                scaleX = this.initialFlipX ? -1 : 1,
                scaleY = this.initialFlipY ? -1 : 1
            };

            meshBuffers = new DoubleBuffered <MeshRendererBuffers.SmartMesh>();
            canvasRenderer.SetTexture(this.mainTexture);             // Needed for overwriting initializations.

            // Set the initial Skin and Animation
            if (!string.IsNullOrEmpty(initialSkinName))
            {
                skeleton.SetSkin(initialSkinName);
            }

            if (!string.IsNullOrEmpty(startingAnimation))
            {
                var animationObject = skeletonDataAsset.GetSkeletonData(false).FindAnimation(startingAnimation);
                if (animationObject != null)
                {
                    animationObject.PoseSkeleton(skeleton, 0f);
                    skeleton.UpdateWorldTransform();

                                        #if UNITY_EDITOR
                    if (Application.isPlaying)
                    {
                                        #endif

                    // Make this block not run in Unity Editor edit mode.
                    state.SetAnimation(0, animationObject, startingLoop);

                                        #if UNITY_EDITOR
                }
                                        #endif
                }
                else
                {
                    startingAnimation = string.Empty;
                }
            }
        }
Beispiel #29
0
 protected override void HandleEvents(Spine.AnimationState state, int trackIndex, Spine.Event e)
 {
 }