Advertisement
kadyr

Untitled

Aug 7th, 2021
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.96 KB | None | 0 0
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. public class PlayerMove : MonoBehaviour
  4. {
  5.  
  6. public AudioSource walkingSource;
  7. public Transform startPosition;
  8. void Start()
  9. {
  10. }
  11.  
  12. //Добавляем ссылку на компонент CharacterController в инспектор
  13. [SerializeField] CharacterController controller;
  14. //Добавляем ссылку на переменную speed (скорость игрока) в инспекторе
  15. [SerializeField] float speed = 5f;
  16.  
  17. //Создаем переменную для направления движения игрока
  18. private Vector3 direction;
  19. //Создаем переменную гравитации для падения
  20. float gravity = 20;
  21. float time = 0;
  22. void Update()
  23. {
  24. if (crystals < 5)
  25. {
  26. time += Time.deltaTime;
  27. TimeText.text = time.ToString();
  28. }
  29.  
  30. if (Input.GetKeyDown(KeyCode.LeftShift))
  31. {
  32. speed = 10;
  33. }
  34. if (Input.GetKeyUp(KeyCode.LeftShift))
  35. {
  36. speed = 5;
  37. }
  38.  
  39. // moveHorizontal будет принимать значение -1 если нажата кнопка A, 1 если нажата D, 0 если эти кнопки не нажаты
  40. float moveHorizontal = Input.GetAxis("Horizontal");
  41. // moveVertical будет принимать значение -1 если нажата кнопка S, 1 если нажата W, 0 если эти кнопки не нажаты
  42. float moveVertical = Input.GetAxis("Vertical");
  43.  
  44. if (controller.isGrounded)
  45. {
  46. //Редактируем переменную направления, используя moveHorizontal и moveVertical
  47. //Мы двигаемся по координатам x и z, координата y для прыжков, пока что этого не делаем.
  48. direction = new Vector3(moveHorizontal, 0, moveVertical);
  49. //Дополнительно умножая его на скорость передвижения (преобразуя локальные координаты к глобальным)
  50. direction = transform.TransformDirection(direction) * speed;
  51. if (direction.magnitude > 0)
  52. {
  53. walkingSource.mute = false; // включаем аудио
  54. }
  55. else
  56. {
  57. walkingSource.mute = true; // выключаем
  58. }
  59.  
  60. //Прыгаем
  61. if (Input.GetKeyDown(KeyCode.Space))
  62. {
  63. direction.y = 20;
  64. }
  65. }
  66. else
  67. {
  68. walkingSource.mute = true; //выключаем звук
  69. }
  70.  
  71. direction.y -= gravity * Time.deltaTime;
  72. //Этой строчкой мы осуществляем изменение положения игрока на основе вектора direction
  73. //Time.deltaTime это количество секунд которое прошло с последнего кадра, для синхронизации по времени
  74. controller.Move(direction * Time.deltaTime);
  75. }
  76. [SerializeField] int crystals = 0;
  77. [SerializeField] Text ScoreText;
  78. [SerializeField] Text TimeText;
  79.  
  80. private void OnTriggerEnter(Collider collider)
  81. {
  82. if (collider.tag == "Crystal")
  83. {
  84. print("crystal");
  85. Destroy(collider.gameObject);
  86. crystals = crystals + 1;
  87. ScoreText.text = crystals.ToString();
  88. }
  89. if(collider.tag == "Apteka")
  90. {
  91. GetComponent<PlayerController>().ChangeHealth(20);
  92. Destroy(collider);
  93. }
  94. if(collider.tag == "LoseZone")
  95. {
  96. Debug.Log("triggered");
  97. transform.position = startPosition.position;
  98. }
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement