Advertisement
AndrewRosyaev

RunAnimation

Mar 2nd, 2014
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.26 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class RunAnimation : MonoBehaviour
  5. {
  6.     public float VitalityRegenSpeed = 30;
  7.     public float VitalityFallSpeed = 30;
  8.     private float Vitality;
  9.     private float maxVitality = 100;
  10.     public float runLimit = 30;
  11.     public float movementSpeed = 3;
  12.     public float runSpeed = 6;
  13.     private bool run;
  14.     private bool walk;
  15.     public Texture2D vitalityBackground;
  16.     public Texture2D vitalityNormal;
  17.     public Texture2D vitalityBad;
  18.     public Transform AnimationTransform;
  19.     public AnimationClip idleAnim;
  20.     public AnimationClip walkAnim;
  21.     public AnimationClip runAnim;
  22.     private bool visible;
  23.     private CharacterMotorE motor;
  24.     void Start ()
  25.     {
  26.         motor = GetComponent<CharacterMotorE>();
  27.         Vitality = maxVitality; //при загрузке скрипта текущая выносливость становится равно максимально доступной
  28.     }
  29.    
  30.     void Update ()
  31.     {
  32.         if(run&Vitality>=0) //если включен бег и выносливость больше нуля
  33.         {
  34.             motor.movement.maxForwardSpeed = runSpeed;
  35.             Vitality -= Time.deltaTime * VitalityFallSpeed; //уменьшается выносливость
  36.             AnimationTransform.animation.CrossFade(runAnim.name); //включаем анимацию бега
  37.         }
  38.         else if (Vitality<=maxVitality) //если бег выключен и выносливость меньше или равна максимальной
  39.         {
  40.             motor.movement.maxForwardSpeed = movementSpeed;
  41.             Vitality += Time.deltaTime * VitalityRegenSpeed;    // увеличиваем выносливость
  42.         }
  43.         if(walk==false&run==false)
  44.         {
  45.             AnimationTransform.animation.CrossFade(idleAnim.name);  //воспроизводим анимацию спокойствия
  46.         }
  47.         if(walk==true)
  48.         {
  49.             AnimationTransform.animation.CrossFade(walkAnim.name);
  50.         }
  51.         if(Input.GetButtonDown("Vertical")||Input.GetButtonDown("Horizontal"))
  52.         {
  53.             walk = true;
  54.         }
  55.         if(Input.GetButton("Vertical")&Input.GetKey(KeyCode.LeftShift)&Vitality>runLimit)
  56.         {
  57.             run = true;     //включаем бег
  58.             walk = false;
  59.         }
  60.         if(!Input.GetButton("Vertical")&!Input.GetButton("Horizontal"))
  61.         {
  62.             walk = false;
  63.         }
  64.         if(!Input.GetKey(KeyCode.LeftShift)||!Input.GetButton("Vertical")||Vitality<=1)
  65.         {  
  66.             run = false;        //бег выключается
  67.         }
  68.         if(Input.GetKeyDown(KeyCode.V))
  69.         {
  70.             visible = !visible;
  71.         }
  72.     }
  73.     void OnGUI()
  74.     {
  75.         if(visible)
  76.         {
  77.             GUI.DrawTexture(new Rect(Screen.width - 270,Screen.height-35,250,19),vitalityBackground); //вывод рамки для выносливости
  78.             if(Vitality>=runLimit)                                                                  //если выносливости больше чем лимит для бега
  79.             GUI.DrawTexture(new Rect(Screen.width - 269,Screen.height-34,Vitality/maxVitality*247,17),vitalityNormal);  //выводим текстуру нормального состояния выносливости   
  80.             else if(Vitality>=1)                                                                                    //если выносливости меньше чеме лимит для бега
  81.             GUI.DrawTexture(new Rect(Screen.width - 269,Screen.height-34,Vitality/maxVitality*247,17),vitalityBad); //выводим текстуру критического состояния для бега
  82.         }
  83.            
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement