UNITY_C#

유니티_오디오 사용하기_날짜별 오디오 이벤트주기

쫑나리 2023. 9. 20. 13:55
728x90
반응형
SMALL

PlayOneShot : 한번만 재생하기

 

DateCheck 스크립트를 생성해주었고, 유니티짱(Player)에게 주었습니다. 


public class DateCheck : MonoBehaviour
{
    System.DateTime now;
    int nowMonth;
    int nowDay;

    private AudioSource univoice;
    public AudioClip voiceBirthday;

    void Start()
    {
        now = System.DateTime.Now;
        nowMonth = now.Month;   
        nowDay = now.Day;

        // 소리 재생
        univoice = GetComponent<AudioSource>();
        univoice.PlayOneShot(voiceBirthday);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

유니티짱의 inspector 창에서 DateCheck 스크립트에  만들어 둔 voiceBirthday에 오디오파일을 넣어줍니다!

오메데또 어쩌고 하니 아주 잘 된듯합니다!

 

이번엔 특정 날짜마다 알맞는 멘트를 지정하겠습니다.

행열으로 이용해보겠읍니다

public class DateCheck : MonoBehaviour
{
    System.DateTime now;
    int nowMonth;
    int nowDay;

    private AudioSource univoice;
    public AudioClip voiceDate0101;
    public AudioClip voiceDate0115;
    public AudioClip voiceDate0203;
    public AudioClip voiceDate0211;
    public AudioClip voiceDate0214;
    public AudioClip voiceDate0303;
    public AudioClip voiceDate0314;
    public AudioClip voiceDate0319;
    public AudioClip voiceDate0401;
    public AudioClip voiceDate0421;
    public AudioClip voiceDate0422;
    public AudioClip voiceDate0503;
    public AudioClip voiceDate0504;
    public AudioClip voiceDate0505;
    public AudioClip voiceDate0602;
    public AudioClip voiceDate0707;
    public AudioClip voiceDate0720;
    public AudioClip voiceDate0813;
    public AudioClip voiceDate0915;
    public AudioClip voiceDate0922;
    public AudioClip voiceDate1008;
    public AudioClip voiceDate1010;
    public AudioClip voiceDate1103;
    public AudioClip voiceDate1123;
    public AudioClip voiceDate1224;
    public AudioClip voiceDate1225;
    public AudioClip voiceDate1231;
    public AudioClip voiceBirthday;
    private AudioClip[,] voiceDate = new AudioClip[12 + 1, 31 + 1];

    void Start()
    {
        now = System.DateTime.Now;
        nowMonth = now.Month;   
        nowDay = now.Day;

        // 음성 데이터 정리
        voiceDate[1, 1] = voiceDate0101;
        voiceDate[1, 15] = voiceDate0115;
        voiceDate[2, 3] = voiceDate0203;
        voiceDate[2, 11] = voiceDate0211;
        voiceDate[2, 14] = voiceDate0214;
        voiceDate[3, 3] = voiceDate0303;
        voiceDate[3, 14] = voiceDate0314;
        voiceDate[3, 19] = voiceDate0319;
        voiceDate[4, 1] = voiceDate0401;
        voiceDate[4, 21] = voiceDate0421;
        voiceDate[4, 22] = voiceDate0422;
        voiceDate[5, 3] = voiceDate0503;
        voiceDate[5, 4] = voiceDate0504;
        voiceDate[5, 5] = voiceDate0505;
        voiceDate[6, 2] = voiceDate0602;
        voiceDate[7, 7] = voiceDate0707;
        voiceDate[7, 20] = voiceDate0720;
        voiceDate[8, 13] = voiceDate0813;
        voiceDate[9, 15] = voiceDate0915;
        voiceDate[9, 22] = voiceDate0922;
        voiceDate[10, 8] = voiceDate1008;
        voiceDate[10, 10] = voiceDate1010;
        voiceDate[11, 3] = voiceDate1103;
        voiceDate[11, 23] = voiceDate1123;
        voiceDate[12, 24] = voiceDate1224;
        voiceDate[12, 25] = voiceDate1225;
        voiceDate[12, 31] = voiceDate1231;


        // 해당 날짜의 음성이 있으면 재생
        nowMonth = 2;
        nowDay = 14;
        univoice = GetComponent<AudioSource>();
        if (voiceDate[nowMonth, nowDay] != null)
            univoice.PlayOneShot(voiceDate[nowMonth, nowDay]);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

유니티 짱 목소리가 담긴 파이들을 날자별로 다 넣어주었습니다.

같은 내용을 복붙할 때는 cntl + D 한줄 복사 아주 좋습니다

2월 14일로 재생해보았는데

바렌타인데이다네 하면서 무슨말인지 모르겠지만 아주 귀엽습니다.

 

 

728x90
반응형
LIST