Как обратиться к bool-у из другого скрипта?

мне нужно обратиться к переменной bool из другого скрипта, но я не понимаю как это сделать, я хотел сделать подобное просто включением скрипта с другого скрипта, но так сложнее, помогите, ну типо мне нужно другим скриптом включать галочку на обьекте на котором есть этот скрипт можно ли прописать это через GetComponent? типо

public GameObject player;
player.GetComponent<script> ();
bool = true;

так можно?


Ответы (3 шт):

Автор решения: Rastrey

Для обращения к полю из другого компонент нужно получить сам компонент (скрипт) и обратиться к полю через точку. Также необходимо убедиться что поле публичное. Пример:

var isUseGravity = player.GetComponent<Rigidbody>().useGravity;
→ Ссылка
Автор решения: Vladozs

Если вы хотите, чтобы при запуске скрипта это происходило, то используйте функцию void Start(), чтобы изменить переменную, то в другом скрипте она должна быть public, а в этом вы пишете player.GetComponent<ваш скрипт>().bool = значение;

public GameObject player;

void Start()
{
   player.GetComponent<script>().bool = true;
}
→ Ссылка
Автор решения: Pawuk

В 1 скрипте сделать публичное поле bool

public bool smthBool {get; set;}

во 2 скрипте получить ссылку на 1 скрипт: 1 способ - прокинуть через инспектор

[SerializeField]
private SmthClassWhithBool;

2 способ: в Awake/Start

    var smthClass = GetComponent ...
   // все равно будет нужна ссылка на GameObject на котором висит этот скрипт

    //можно применить Find

smthClass.smthBool = false;
→ Ссылка