Страницы

Поиск по вопросам

четверг, 13 июня 2019 г.

Простое if условие не работает, где может быть ошибка?

Скрипт для Unity, но возможно здесь просто оевидная C# ошибка которую я не вижу... Имеется скрипт, "печатающий" текст по букве. Он применен к тексту кнопки кнопки (text, потомок button). Нужно чтобы скрипт запускался только если кнопка нажимабельна (interactable).
Я создал публичную переменную чтобыперетащить в нее кнопку в Unity, и использовал GetComponent(), но почему-то не работает.
Ниже короткий скрипт. Почему это не сработало, где ошибка? Заранее спасибо!
UPD скрипт слегка обновлен но по-прежнему не работает.

using UnityEngine; using System.Collections; using UnityEngine.UI;
// attach to UI Text component (with the full text already there)
public class UITextTypeWriter : MonoBehaviour {
public Text txt; string story; public Button ThisButton;
void Start() { txt = GetComponent(); story = txt.text; txt.text = "";

if (ThisButton.interactable) { StartCoroutine(PlayText()); } }
IEnumerator PlayText() { foreach (char c in story) { txt.text += c; yield return new WaitForSeconds(0.125f); } }
}


Ответ

isActiveAndEnabled - вернет false, если компонент изначально был активен, и true если скрипт был активирован(ГО был не активен, а потом его включили или деактивировали, а затем активировали.) - поправьте меня если я не прав.
public Text txt; string story; public Button ParrentButton;
void Awake() { txt = GetComponent(); story = txt.text; txt.text = "";
ParrentButton = transform.parent.GetComponent

Комментариев нет:

Отправить комментарий