Скрипт для 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
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
ParrentButton = transform.parent.GetComponent
Комментариев нет:
Отправить комментарий