Unity3d: доступ к параметрам OnClick кнопки в скрипте - PullRequest
1 голос
/ 02 июня 2019

enter image description here

У меня есть кнопка, и я прикрепил другой скрипт "PlaySound" для этой кнопки, который воспроизводит звук при нажатии кнопки.Как только аудио закончится, я хочу остановить анимацию, которую я запускаю здесь, в OnClick из Button.Как получить доступ к параметрам Ellen gameObject и 0, которые я установил в окне инспектора (проверьте изображение) в сценарии PlaySound

1 Ответ

2 голосов
/ 02 июня 2019

Вам лучше написать это как код C #

То, что у вас сейчас функционально, выглядит так:

public class SomeScript : MonoBehaviour {
    public Animator ellen;
    void Start() {
        GetComponent<Button>().onClick.AddListener(delegate() {
            ellen.SetTrigger(0);
        });
    }
}

Если этот скрипт прикреплен к вашей кнопке, а компонент Animator игрового объекта Эллен назначен полю ellen.

Если вы измените это так:

public class SomeScript : MonoBehaviour {
    public Animator ellen;
    public float audioDuration;
    void Start() {
        GetComponent<Button>().onClick.AddListener(delegate() {
            StartCoroutine(TriggerAnimation());
        });
    }

    IEnumerator TriggerAnimation() {
        ellen.SetTrigger(0);
        yield return new WaitForSeconds(audioDuration);
        ellen.ResetTrigger(0); //or however you want to return to the idle state
    }
}

Теперь вам просто нужно указать продолжительность аудиоклипа. Также может быть способ запросить текущий статус воспроизведения источника звука , но у меня недостаточно информации о вашем проекте, чтобы иметь возможность функционально хэшировать этот код.

...