AmbushedRaccoon

Паркур и Unity - часть 1: Проверка условий и запуск паркура

May 31st, 2020
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.67 KB | None | 0 0
  1. private void Update()
  2. {
  3.     //Проверка исходных условий
  4.     bool isForwardPressed = Input.GetAxis("Vertical") > 0f;
  5.     bool isJumpPressed = Input.GetAxis("Jump") > 0f;
  6.     if (!_playerController.IsGrounded && isForwardPressed && !_isClimbing && _parkourObstacles.Count > 0 && isJumpPressed)
  7.     {
  8.         //Находим коллайдер для попытки паркура
  9.         RaycastHit hit;
  10.         if (Physics.Raycast(transform.position, transform.forward, out hit, _parkourCollider.radius, _obstacleMask))
  11.         {
  12.             //Препятствие в коллекции
  13.             var parkourObstacle = _parkourObstacles.Find(obstacle => obstacle.Collider == hit.collider);
  14.             ParkourObstacle.Wall wall = default(ParkourObstacle.Wall);
  15.             //Если нашли препятствие и успешно получили стену из него
  16.             if (parkourObstacle != null && parkourObstacle.TryGetWall(hit.point, ref wall))
  17.             {
  18.                 //Проверяем получаем высшую точку препятствия
  19.                 //Проверяем что разница высот между точкой начала залезания и высшей точкой препятствия допустимая
  20.                 Vector3 highestPoint = wall.GetHighestPoint();
  21.                 if (highestPoint.y > transform.position.y && highestPoint.y - transform.position.y <= _parkourHeight)
  22.                 {
  23.                     //Запускаем паркур
  24.                     StartClimbing(parkourObstacle, wall, hit.point);
  25.                 }
  26.             }
  27.         }
  28.     }
  29. }
Add Comment
Please, Sign In to add comment