SUGI_ 2023. 8. 17. 15:17

WebRpc

단점 : 사람이 많이 모일 수록 느려진다.

 

보이스채팅은 인게임창에서만 가능

1. Voice 게임오브젝트

- Recorder 컴포넌트

- PhotonVoice Network

 

2. Speaker 게임오브젝트 (Player)

- Speaker

- AudioSource

 

3. Player

- PhotonVoiceView

 

SoundManager /dataMaager

싱글톤 OnDestroyLoad

-> 3D sound 용도는 안됨.

public class SoundManager : MonoBehaviour
{
    public static SoundManager instance;

    //BGM 종류들
    //상태머신에만 enum을 사용하는 것이 아님 -> 종류 열거
    public enum EBgm
    {
        BGM_TITLE,
        BGM_LOBBY,
        BGM_GAME
    }

    //SFX 종류들
    public enum ESfx
    {
        SFX_BUTTON,
        SFX_JUMP
    }

    //클립을 담을 수 있는 배열/List 생성
    //bgm audio clip 담을 수 있는 배열
    [SerializeField] AudioClip[] bgms;
    //sfx audio clip 담을 수 있느 배열
    [SerializeField] AudioClip[] sfxs;

    //bgm 플레이하는 AudioSource
    [SerializeField] AudioSource audioBgm;
    //sfx 플레이하는 AudioSource
    [SerializeField] AudioSource audioSfx;

    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
            DontDestroyOnLoad(gameObject);
            //-> 삭제 Destroy(gameObject);
        }

        else
        {
            Destroy(gameObject);
        }
    }

    //BGM Play
    public void PlayBGM(EBgm bgmIdx)
    {
        //플레이할 bgm 설정
        //enum int형으로 형변환 가능
        audioBgm.clip = bgms[(int)bgmIdx];

        audioBgm.Play();
    }
}

사용방법 : SoundManager.instance.PlayBGM(SoundManager.EBgm.BGM_GAME);

더 디테일 - 멈추는 것도 필요

 

//특정 컴포넌트 자동으로 추가 요청
[RequireComponent(typeof(AudioSource))]

 

 

버튼 클래스 : 상속으로 사용할 수 있음

모든 버튼이 눌릴 때 소리나게 할 수 있음.

 

상속

가상함수

버튼 기능을 사용할 수 있음

가상함수는 - 재정의 할 수 있음. virtual

 

상속 - 받아서 할 수 있음.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class MetaButton : Button
{

    protected override void Start()
    {
        base.Start();
    }

    void Update()
    {
        
    }
    public override void OnMove(AxisEventData eventData)
    {
        base.OnMove(eventData);
        print("OnMove");
    }
    public override void OnPointerDown(PointerEventData eventData)
    {
        base.OnPointerDown(eventData);
        print("OnPointerDown");
    }
    public override void OnPointerEnter(PointerEventData eventData)
    {
        base.OnPointerEnter(eventData);
        print("OnPointerEnter");

        transform.localScale = Vector3.one * 2;
    }
    public override void OnPointerExit(PointerEventData eventData)
    {
        base.OnPointerExit(eventData);
        print("OnPointerExit");

        transform.localScale = Vector3.one * 1;
    }
    public override void OnPointerUp(PointerEventData eventData)
    {
        base.OnPointerUp(eventData);
        print("OnPointerUp");
    }
    public override void OnSelect(BaseEventData eventData)
    {
        base.OnSelect(eventData);
        print("OnSelect");

        SoundManager.instance.PlaySFX(SoundManager.ESfx.SFX_BUTTON);
    }
}

https://easings.net/ko

 

Easing Functions Cheat Sheet

Easing functions specify the speed of animation to make the movement more natural. Real objects don’t just move at a constant speed, and do not start and stop in an instant. This page helps you choose the right easing function.

easings.net

 

itween

dween

728x90