Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- public class RunAnimation : MonoBehaviour
- {
- public float VitalityRegenSpeed = 30;
- public float VitalityFallSpeed = 30;
- private float Vitality;
- private float maxVitality = 100;
- public float runLimit = 30;
- public float movementSpeed = 3;
- public float runSpeed = 6;
- private bool run;
- private bool walk;
- public Texture2D vitalityBackground;
- public Texture2D vitalityNormal;
- public Texture2D vitalityBad;
- public Transform AnimationTransform;
- public AnimationClip idleAnim;
- public AnimationClip walkAnim;
- public AnimationClip runAnim;
- private bool visible;
- private CharacterMotorE motor;
- void Start ()
- {
- motor = GetComponent<CharacterMotorE>();
- Vitality = maxVitality; //при загрузке скрипта текущая выносливость становится равно максимально доступной
- }
- void Update ()
- {
- if(run&Vitality>=0) //если включен бег и выносливость больше нуля
- {
- motor.movement.maxForwardSpeed = runSpeed;
- Vitality -= Time.deltaTime * VitalityFallSpeed; //уменьшается выносливость
- AnimationTransform.animation.CrossFade(runAnim.name); //включаем анимацию бега
- }
- else if (Vitality<=maxVitality) //если бег выключен и выносливость меньше или равна максимальной
- {
- motor.movement.maxForwardSpeed = movementSpeed;
- Vitality += Time.deltaTime * VitalityRegenSpeed; // увеличиваем выносливость
- }
- if(walk==false&run==false)
- {
- AnimationTransform.animation.CrossFade(idleAnim.name); //воспроизводим анимацию спокойствия
- }
- if(walk==true)
- {
- AnimationTransform.animation.CrossFade(walkAnim.name);
- }
- if(Input.GetButtonDown("Vertical")||Input.GetButtonDown("Horizontal"))
- {
- walk = true;
- }
- if(Input.GetButton("Vertical")&Input.GetKey(KeyCode.LeftShift)&Vitality>runLimit)
- {
- run = true; //включаем бег
- walk = false;
- }
- if(!Input.GetButton("Vertical")&!Input.GetButton("Horizontal"))
- {
- walk = false;
- }
- if(!Input.GetKey(KeyCode.LeftShift)||!Input.GetButton("Vertical")||Vitality<=1)
- {
- run = false; //бег выключается
- }
- if(Input.GetKeyDown(KeyCode.V))
- {
- visible = !visible;
- }
- }
- void OnGUI()
- {
- if(visible)
- {
- GUI.DrawTexture(new Rect(Screen.width - 270,Screen.height-35,250,19),vitalityBackground); //вывод рамки для выносливости
- if(Vitality>=runLimit) //если выносливости больше чем лимит для бега
- GUI.DrawTexture(new Rect(Screen.width - 269,Screen.height-34,Vitality/maxVitality*247,17),vitalityNormal); //выводим текстуру нормального состояния выносливости
- else if(Vitality>=1) //если выносливости меньше чеме лимит для бега
- GUI.DrawTexture(new Rect(Screen.width - 269,Screen.height-34,Vitality/maxVitality*247,17),vitalityBad); //выводим текстуру критического состояния для бега
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement