Network.Instantiate(프리팹, 위치, 각도, 그룹)
- 현재 게임에 접속한 모든 유저에게 프리팹 생성.
- 내부적으로 Buffered RPC를 호출해
나중에 접속한 유저도 이미 생성된 프리팹을 볼 수 있음.
- 그룹 지정시 동일 그룹의 유저들에게만 생성됨.
=========================================================
NetworkView
- isMine => NetworkView 가 자신의 것인지 확인.
ex)
// NetworkView가 자신의 것인지 확인.
if(networkView.isMine)
{
}
=========================================================
ex)
void OnGUI(){
// 현재 유저의 네트워크에 접속여부 판단
if (Network.peerType == NetworkPeerType.Disconnected)
{
// 게임 서버 생성 버튼
if (GUI.Button(new Rect(20, 20, 200, 25), "Start Server"))
{
// 게임 서버 생성 : InitializeServer(접속자수, 포트번호, NAT 사용여부)
Network.InitializeServer(20, port, _useNat);
}
// 게임 접속 버튼
if (GUI.Button(new Rect(20, 50, 200, 25), "Connect to Server"))
{
// 게임 서버 접속 : Connect (접속 IP, 접속 포트 번호)
Network.Connect(ip, port);
}
}
else
{
// 서버일 때 메시지 출력
if (Network.peerType == NetworkPeerType.Server)
{
GUI.Label(new Rect(20, 20, 200, 25), "Initialization Server...");
// Network.connections 속성.
// Network.coonections는 접속한 유저 정보를 배열로 저장하고 있음.
// 접속자 수 확인시 Network.connections.Length 로 접속자 수를 확인할 수 있음.
GUI.Label(new Rect(20, 50, 200, 25), "Client Count = " + Network.connections.Length.ToString());
}
// 클라이언트로 접속했을 때의 메시지 출력
if (Network.peerType == NetworkPeerType.Client)
{
GUI.Label(new Rect(20, 20, 200, 25), "Connected to Server.");
}
else
{
GUI.Label(new Rect(20, 20, 200, 25), "Connected to Server.");
}
}
}
// 게임 서버로 구동시키고 서버초기화가 정상완료됐을 때 호출
void OnServerInitialized()
{
StartCoroutine(CreatePlayer());
}
// 클라이언트로 게임 서버에 접속했을 때 호출
void OnConnectedToServer()
{
StartCoroutine(CreatePlayer());
}
// 플레이어를 생성시키는 코루틴 함수
IEnumerator CreatePlayer()
{
Vector3 pos = 플레이어 생성할 position;
// 네트워크상 플레이어를 동적생성
// 현재 게임에 접속한 모든 유저에게 프리팹 생성
// 내부적으로 Buffered RPC를 호출해
// 나중에 접속한 유저도 이미 생성된 프리팹을 볼 수 있음.
// 그룹을 지정하면 동일 그룹의 유저들에게만 생성됨.
Network.Instantiate(player, pos, Quaternion.identity, 0);
yield return null;
}
'프로그래밍 정리 > Unity' 카테고리의 다른 글
[Unity - 유니티] OnSerializeNetworkView 콜백함수 (0) | 2014.06.09 |
---|---|
[Unity - 유니티] NetworkView - 네트워크 플레이시 끊어짐 현상 처리 (0) | 2014.06.09 |
[Unity - 유니티] CharacterController 컴포넌트 (0) | 2014.06.08 |
[Unity - 유니티] Network 클래스 제공 콜백함수 (0) | 2014.06.08 |
[Unity - 유니티] NetworkView, RPC - Network 게임 제작시. (0) | 2014.06.08 |