Merge branch 'main' of http://59.18.227.134:30008/dal4segno/Northbound
This commit is contained in:
@@ -45,9 +45,35 @@ namespace Northbound
|
|||||||
// UI 체크 캐싱 (Input System 콜백 내에서 IsPointerOverGameObject() 사용 불가)
|
// UI 체크 캐싱 (Input System 콜백 내에서 IsPointerOverGameObject() 사용 불가)
|
||||||
private bool _isPointerOverUI = false;
|
private bool _isPointerOverUI = false;
|
||||||
|
|
||||||
|
// 플레이어 컨트롤러 참조 (로컬 플레이어 체크용)
|
||||||
|
private NetworkPlayerController _playerController;
|
||||||
|
private bool _isInitialized = false;
|
||||||
|
|
||||||
public override void OnNetworkSpawn()
|
public override void OnNetworkSpawn()
|
||||||
{
|
{
|
||||||
if (!IsOwner) return;
|
_playerController = GetComponent<NetworkPlayerController>();
|
||||||
|
|
||||||
|
// 지연 초기화 - 다음 프레임에 체크
|
||||||
|
StartCoroutine(InitializeAfterOwnerSet());
|
||||||
|
}
|
||||||
|
|
||||||
|
private System.Collections.IEnumerator InitializeAfterOwnerSet()
|
||||||
|
{
|
||||||
|
// _ownerPlayerId가 설정될 때까지 대기 (최대 1초)
|
||||||
|
float timeout = 1f;
|
||||||
|
while (_playerController != null && _playerController.OwnerPlayerId == ulong.MaxValue && timeout > 0)
|
||||||
|
{
|
||||||
|
yield return null;
|
||||||
|
timeout -= Time.deltaTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 로컬 플레이어인지 확인
|
||||||
|
if (_playerController == null || !_playerController.IsLocalPlayer)
|
||||||
|
{
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
_isInitialized = true;
|
||||||
|
|
||||||
_inputActions = new PlayerInputActions();
|
_inputActions = new PlayerInputActions();
|
||||||
_inputActions.Player.ToggleBuildMode.performed += OnToggleBuildMode;
|
_inputActions.Player.ToggleBuildMode.performed += OnToggleBuildMode;
|
||||||
@@ -118,7 +144,7 @@ namespace Northbound
|
|||||||
|
|
||||||
public override void OnNetworkDespawn()
|
public override void OnNetworkDespawn()
|
||||||
{
|
{
|
||||||
if (IsOwner && _inputActions != null)
|
if (_isInitialized && _inputActions != null)
|
||||||
{
|
{
|
||||||
_inputActions.Player.ToggleBuildMode.performed -= OnToggleBuildMode;
|
_inputActions.Player.ToggleBuildMode.performed -= OnToggleBuildMode;
|
||||||
_inputActions.Player.Rotate.performed -= OnRotate;
|
_inputActions.Player.Rotate.performed -= OnRotate;
|
||||||
@@ -134,7 +160,7 @@ namespace Northbound
|
|||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
if (!IsOwner) return;
|
if (!_isInitialized) return;
|
||||||
|
|
||||||
// UI 체크 캐싱 (Input System 콜백 내에서 사용하기 위해)
|
// UI 체크 캐싱 (Input System 콜백 내에서 사용하기 위해)
|
||||||
_isPointerOverUI = CheckPointerOverUI();
|
_isPointerOverUI = CheckPointerOverUI();
|
||||||
|
|||||||
Reference in New Issue
Block a user