private void Flip(Vector2 dir) { if (isWallSliding) { return; } if (!ps.facingLeft) { if (dir.x < 0) { anim.SetSpeed("playbackSpeed", -1f); } else { anim.SetSpeed("playbackSpeed", 1f); } sr.flipX = false; } else { if (dir.x > 0) { anim.SetSpeed("playbackSpeed", -1f); } else { anim.SetSpeed("playbackSpeed", 1f); } sr.flipX = true; } }
//UPDATE POWER EFFECTS public override void deliverPowerEffects(PersonStatus status, AnimationScript animator, UnitNavigationController navigator) { if (timer == 0) { if (animator.powerEffect) { Object.Destroy(animator.powerEffect); } var renderers = status.gameObject.transform.GetComponentsInChildren <SkinnedMeshRenderer>(); foreach (var renderer in renderers) { if (renderer.gameObject.name == "Character01") { renderer.material.mainTexture = (Texture2D)Resources.Load("Character01Zombie", typeof(Texture2D)); } } status.UnitStatus = PersonStatus.Status.Zombie; navigator.Stop(); halfSpeed = speed / 2; thirdSpeed = speed / 3; animator.powerEffect = (GameObject)Object.Instantiate(owner.particleEffect, new Vector3(status.transform.position.x, status.transform.position.y + 0.9f, status.transform.position.z), Quaternion.identity); animator.powerEffect.transform.parent = animator.transform; status.Fear = owner.Fear; } timer += Time.deltaTime; if (timer >= (aliveTime * 0.25f) && timer <= (aliveTime * 0.75f) && !stop) { //Debug.Log(speed); speed = halfSpeed; animator.SetSpeed(animator.MiddleSpeed); } /* * if(timer >= (aliveTime * 0.5f) && timer <= (aliveTime * 0.75f)) * { * Debug.Log(speed); * speed = speed / 2; * } */ if (timer >= (aliveTime * 0.75f) && !stop) { //Debug.Log(speed); speed = thirdSpeed; animator.SetSpeed(0.5f); animator.SetSpeed(animator.WalkingSpeed); } if (stop) { animator.SetSpeed(0); } if (timer >= aliveTime) { status.UnitStatus = PersonStatus.Status.Dead; status.Fear = 0; Object.Destroy(animator.powerEffect); } }