unity3d Ссылка на объект необходима для доступа к нестатическому члену CoinAudio.Audiosrc. - PullRequest
0 голосов
/ 08 декабря 2018

как говорится в названии, я пытаюсь вызвать Run () в этом коде

CoinAudio.Run();

, и это сценарий Run ()

public class CoinAudio : MonoBehaviour {
    private AudioSource Audiosrc;

    void Start () {
           Audiosrc=GetComponent<AudioSource>();
    }

    // Update is called once per frame
    public static void Run () {
         Audiosrc.Play();

    }}

, и когда я пытаюсьвызов Run () для запуска звука дает мне эту ошибку Ссылка на объект требуется для доступа к нестатическому члену `CoinAudio.Audiosrc ' любое решение, пожалуйста, и пожалуйста, не говорите мне, что вопрос повторил мою проблемусовершенно разные, это правильно, что у него то же имя, но не та же проблема

Ответы [ 3 ]

0 голосов
/ 08 декабря 2018

Итак, у вас есть класс CoinAudio и класс AudioManager

, но вы вызываете CoinAudio.Run () не будет работать, поскольку компилятор сказал, что вам необходимо создать переменную экземпляра:

в AudioManager, если скрипт CoinAudio подключен к GameObject под названием MyAudio, вы можете написать что-то вроде:

GameObject g;

void Start () 
{
    g = GameObject.Find("MyAudio").GetComponent<CoinAudio>();
    g.Run();

    //NOT CoinAudio.Run();
}
0 голосов
/ 09 декабря 2018

Сделайте ваш AudioSource статическим членом CoinAudio.

public class CoinAudio : MonoBehaviour {
    private static AudioSource Audiosrc;

    void Start () {
       Audiosrc=GetComponent<AudioSource>();
    }

    public static void Run () {
        Audiosrc.Play();
    }
}
0 голосов
/ 08 декабря 2018

Удалите статическое ключевое слово из метода «Выполнить»:

     private AudioSource Audiosrc;

    void Start () {
       Audiosrc = GetComponent<AudioSource>();
       Run ();
    }

    // Update is called once per frame
    public void Run () {
         Audiosrc.Play();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...