8 / 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);
}
}
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