Files
Colosseum/Assets/_Game/Scripts/UI/ConnectionUI.cs
dal4segno c265f980db chore: Assets 디렉토리 구조 정리 및 네이밍 컨벤션 적용
- Assets/_Game/ 하위로 게임 에셋 통합
- External/ 패키지 벤더별 분류 (Synty, Animations, UI)
- 에셋 네이밍 컨벤션 확립 및 적용
  (Data_Skill_, Data_SkillEffect_, Prefab_, Anim_, Model_, BT_ 등)
- pre-commit hook으로 네이밍 컨벤션 자동 검사 추가
- RESTRUCTURE_CHECKLIST.md 작성

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 19:08:27 +09:00

101 lines
2.8 KiB
C#

using UnityEngine;
using Unity.Netcode;
using Unity.Netcode.Transports.UTP;
namespace Colosseum.UI
{
/// <summary>
/// 네트워크 연결 설정 (Inspector에서 제어)
/// </summary>
public class ConnectionUI : MonoBehaviour
{
[Header("Connection Settings")]
[SerializeField] private string ipAddress = "127.0.0.1";
[SerializeField] private ushort port = 7777;
[Header("Status (Read Only)")]
[SerializeField, Tooltip("현재 연결 상태")] private string connectionStatus = "Disconnected";
private UnityTransport transport;
private void Awake()
{
transport = NetworkManager.Singleton?.GetComponent<UnityTransport>();
}
private void Start()
{
UpdateTransportSettings();
}
private void Update()
{
UpdateConnectionStatus();
}
private void UpdateConnectionStatus()
{
if (NetworkManager.Singleton == null)
{
connectionStatus = "No NetworkManager";
return;
}
if (NetworkManager.Singleton.IsServer && NetworkManager.Singleton.IsHost)
connectionStatus = "Host";
else if (NetworkManager.Singleton.IsServer)
connectionStatus = "Server";
else if (NetworkManager.Singleton.IsClient)
connectionStatus = NetworkManager.Singleton.IsConnectedClient ? "Connected" : "Connecting...";
else
connectionStatus = "Disconnected";
}
public void StartHost()
{
UpdateTransportSettings();
NetworkManager.Singleton.StartHost();
Debug.Log("[Network] Started as Host");
}
public void StartClient()
{
UpdateTransportSettings();
NetworkManager.Singleton.StartClient();
Debug.Log($"[Network] Connecting to {ipAddress}:{port}...");
}
public void StartServer()
{
UpdateTransportSettings();
NetworkManager.Singleton.StartServer();
Debug.Log("[Network] Started as Server");
}
public void Disconnect()
{
if (NetworkManager.Singleton != null)
{
NetworkManager.Singleton.Shutdown();
Debug.Log("[Network] Disconnected");
}
}
private void UpdateTransportSettings()
{
if (transport != null)
{
transport.SetConnectionData(ipAddress, port);
}
}
private void OnValidate()
{
if (Application.isPlaying && transport != null)
{
UpdateTransportSettings();
}
}
}
}