Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Как создать дверь для мобильной игры с открыванием по кнопки отдельной?
@Nepro

Как сделать простую дверь в юнити для мобильных устройств и что бы она открывалась и закрывалась по кнопке?

Привет! Я переискал все в интернете, но ничего не работает! Нашел на ютубе одного блогера, сделал все как он через Raycast! Там типо плеер подходит в созданной двери и появляется специальная кнопка или текст из за радиуса и ты нажимаешь и должна появиться анимация открытие или закрытие двери, но у меня не срабатывает анимация! Кнопка появляестя когда подхожу к двери, но анимация не срабатывает!

Вот ссылка на ютуб видео: https://youtu.be/eruGdj1Uzmw?si=BJPQw2HtSr3HvqWx

Сделал все также!!! Код такой же, имена такие же ввел! Можете подсказать в чем проблема?
  • Вопрос задан
  • 101 просмотр
Подписаться 1 Средний 2 комментария
Ответы на вопрос 1
@DrRen7
Ну есть функция Debug.log("Ошибка"); так что смотри что после raycast"a не сработало
примерно должно быть так
GameObject _screenbuttor; //элемент UI с подсказкой для открытия двери
 LayerMask _doorMask;//маска двери 
 private void Update()
 {
    
     Transform cam = Camera.main.transform; // откуда пускаем луч будет просто камера 
     RaycastHit hitInfo; //информация о попадание луча
     if (Physics.Raycast(cam.position,cam.forward,out hitInfo, 10f,_doorMask)) 
     {
         Debug.Log("hit work"); //проверка что все работает 
         _screenbuttor.SetActive(true); // подсказку активной 
     }
     else
     {
         _screenbuttor.SetActive(false);
     }

     if (_screenbuttor.activeSelf && Input.GetKeyDown(KeyCode.E)) //если подсказка активна и нажата кнопка E 
     {
         Debug.Log("Door Interactive"); // проверяем что все сработало 
         hitInfo.collider.GetComponent<Door>().InteractingDoor(); // вызываем метод для работы с дверью
     }

На двери
using UnityEngine;

public class Door : MonoBehaviour
{
    [SerializeField] bool _isOpen; 
   // public bool isOpen=> _isOpen;

    public void InteractingDoor()
    {
        Debug.Log("Use Door Interact"); // проверяем что перешли в другой скрипт 
        if (_isOpen) CloseDoor();
        else OpenDoor();
    }

    void CloseDoor()
    {
        Debug.Log("Close Door"); //проверяем что включился метод для закрытия двери
        //Ну тут действия для закрытия
    }
    void OpenDoor()
    {
        Debug.Log("Open Door"); //проверяем что включился метод для открытия двери
        //Тут действия для открытия
    }
}

Ну и смотри в консоле что не сработало значит там и ошибка, если все работает значит что то не так с методом для открытия двери, проверить анимационный контроллер или как там отрывается
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы