Unity 3d скрипт лазания по скале

Вот пример скрипта на Unity 3D для лазания по скале:

csharp

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class WallClimb: MonoBehaviour

{

    public float climbSpeed = 5f; // Скорость лазания

    public float jumpForce = 5f; // Сила прыжка

    private bool isClimbing = false; // Флаг, указывающий, лазим ли мы по скале

    private void Update()

    {

        // Проверяем нажатие клавиши «Space»

        if (Input.GetKeyDown(KeyCode.Space))

        {

            // Если мы уже лазим по скале, то делаем прыжок

            if (isClimbing)

            {

                GetComponent<Rigidbody>().velocity = new Vector3(GetComponent<Rigidbody>().velocity.x, jumpForce, 0);

            }

        }

    }

    private void OnTriggerStay(Collider other)

    {

        // Проверяем, что столкнулись с объектом с тегом «Wall»

        if (other.CompareTag(«Wall»))

        {

            // Проверяем нажатие клавиши «W» или «Up Arrow»

            if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))

            {

                // Включаем флаг лазания

                isClimbing = true;

                // Отключаем гравитацию и останавливаем объект

                GetComponent<Rigidbody>().useGravity = false;

                GetComponent<Rigidbody>().velocity = Vector3.zero;

                // Поднимаемся вверх по скале

                transform.Translate(Vector3.up * climbSpeed * Time.deltaTime);

            }

        }

    }

    private void OnTriggerExit(Collider other)

    {

        // Проверяем, что вышли из столкновения с объектом с тегом «Wall»

        if (other.CompareTag(«Wall»))

        {

            // Выключаем флаг лазания

            isClimbing = false;

            // Включаем гравитацию

            GetComponent<Rigidbody>().useGravity = true;

        }

    }

}

Примечания:

— В данном примере предполагается, что у вас есть объект с тегом «Wall», с которым игрок будет взаимодействовать при лазании.

— Скрипт будет включать лазание по скале, когда игрок сталкивается с объектом «Wall» и нажимает клавишу «W» или «Up Arrow». Затем он будет двигаться вверх по скале с заданной скоростью climbSpeed. Когда игрок перестает нажимать клавишу или выходит из столкновения с объектом «Wall», лазание будет отключено и гравитация будет включена.

Write to Telegram:
No comments yet. Be the first to add a comment!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.