Нужна помощь с головоломкой в unity

Новичок
Статус
Оффлайн
Регистрация
15 Янв 2022
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Друзья, всем добрый день!
Я только начинаю знакомиться с unity и пытаюсь реализовать простую головоломку через ui. Смысл в том, что при нажатии кнопок в определенном порядке в инвентарь падает ключ и дестроится замок. Кнопки - спрайты с коллайдером, при клике они должны выключаться, а на фоне остается картинка со вдавленной. Код очень топорный, не понимаю, почему не работает. Помогите, пожалуйста!
C#:
public class FirstChestLock : MonoBehaviour
{
    public GameObject obj1;
    public GameObject obj2;
    public GameObject obj3;
    public GameObject lock_obj;
    public GameObject window;
    public CameraLook scr;
 
 
    void OnMouseDown()
    {
        if(obj1 = GameObject.Find("/Lock_1/Image/btn1"))
        {
            obj1.SetActive(false);
 
            if (obj3 = GameObject.Find("/Lock_1/Image/btn3"))
            {
                obj3.SetActive(false);
 
                if (obj2 = GameObject.Find("/Lock_1/Image/btn2"))
                {
                    obj2.SetActive(false);
                    Destroy(lock_obj);
                    StartCoroutine(OffWindow());
                    scr.enabled = true;
                }
                else
                {
                    obj1.SetActive(true);
                    obj2.SetActive(true);
                }
            }
            else
            {
                obj1.SetActive(true);
            }
        }         
    }
 
    private IEnumerator OffWindow()
    {       
        yield return new WaitForSeconds(2);
        window.SetActive(false);
    }
 
Пользователь
Статус
Оффлайн
Регистрация
8 Июл 2020
Сообщения
288
Реакции[?]
222
Поинты[?]
11K
Привет! Хочется помочь! Но к юнити душа не лежит, после UE4 всё как-то не то.Думаю на блупринтах такую головоломку удалось бы реализовать очень шустро! Не хотите Unreal пощупать пока не поздно?) Там многие функции уже записаны в ноды и свои писать можно.То что осваивается первым потом уже подсознательно ближе.

Вот некоторые видео по простым замкам в юнити, может поддтолкнёт на какие-то мысли и поможет.Можно найти и сложнее, но для начала я думаю норм.
На сундуке неплохо бы смотрелась загадка как раз с крутилками,например ряд символов.И эти символы же по сути только визуал, а решение цифровое.
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
24 Янв 2022
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Лучше скачайте Adventure Creator и сделайте головоломку, там гораздо больше функционала и нет проблем с багами
 
Начинающий
Статус
Оффлайн
Регистрация
5 Мар 2022
Сообщения
41
Реакции[?]
1
Поинты[?]
0
Скрина не видно... Но можно предположить, что название какого-то объекта не находится, там же вложения if{...if{...if{... да и
GameObject.Find - затратный метод, лучше создайте класс кнопок MyButtons например, прицепите его к каждой кнопке, потом массив объектов кнопок, и вы сразу увидите где чего не нашло, и как все работает.
Ну или если сильно сложно -
C#:
if(obj1 = GameObject.Find("/Lock_1/Image/btn1"))
        {
            Debug.Log("Нашел первую кнопку");
            obj1.SetActive(false);
 
            if (obj3 = GameObject.Find("/Lock_1/Image/btn3"))
            {
                Debug.Log("Нашел вторую кнопку");
                ...
            }
}
 
Сверху Снизу