@yraiv

В чем здесь ошибка?

не могу понять, что не так. Когда объект соприкасается с игроком, то он выключается и сам включает обе булевые переменные. Мне нужно было, чтоб он брал значения из второго скрипта, вроде в инспекторе все правильно выставил, но всё равно он сразу делает их активными при соприкосновении, хотя переменная из второго скрипта выкл.
Первый скрипт
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ColissionDeistvie : MonoBehaviour
{




    public GameObject Predmet;
    public GameObject GO;
    public bool key;
    public bool Znachenie;
    void OnTriggerStay2D(Collider2D col)
    {
        if (col.tag == "Player")
        {
            Znachenie = GO.GetComponent<GiveBoolPeremen>();
            key = Znachenie;


        }



        if (col.tag == "Player" && key == true)     
        {
            Predmet.SetActive(false);
        }
    }
}


Второй скрипт
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GiveBoolPeremen : MonoBehaviour
{
    public GameObject GO;
    public bool Znachenie;


    public void OnMouseDown()
    {
        Znachenie = GO.GetComponent<ColissionDeistvie>();
        Znachenie = true;
        
    }


}
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
GiveBoolPeremen - это MonoBehaviour, его нельзя приравнять к bool. Зато у этого класса можно взять значение параметра Znachenie.

var boolPeremen= GO.GetComponent<GiveBoolPeremen>();
key = boolPeremen.Znachenie;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы