뒤끝 월드 유저별 닉네임

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 :
  • 프로젝트명 :
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

뒤끝 월드 사용해보고 있는데 질문 있어서 글 남깁니다.

플레이어 Prefabs 마다 위에 닉네임을 달아줬는데 포톤의 PV.isMine 같이 isOwned로 들어온 사람 별로 닉네임이 나눠지지가 않아서 어떻게 하면 좋을지 고민하다가 여쭤봅니다. 어느 단계에서 닉네임을 넘겨줘야 해결이 될까요?

안녕하세요 개발자님,
월드 이용과 관련하여 DM을 통해 안내드린 내용이 있으니
DM 확인해 주시면 감사하겠습니다.

문의해주신 내용과 관련하여 신규 기능으로 클라이언트가 월드 접속 시 메타 정보를 바로 넘길 수 있도록 개선 작업이 진행 되고 있는 것으로 확인됩니다.
해당 기능은 빠르게 업데이트하여 제공될 예정인 점 참고 부탁드리며
업데이트 전 까지는 아래의 방법을 사용 해 주시면 감사하겠습니다.

using BACKND;
using UnityEngine;
using TMPro;  // TextMeshPro를 사용한다고 가정

public class PlayerIdentity : NetworkBehaviour
{
    [SyncVar(hook = nameof(OnNicknameChanged))]
    public string playerNickname = "Player";
    
    [SerializeField] 
    private TextMeshProUGUI nicknameText;
    
    // 닉네임이 변경될 때 UI에 반영하는 hook 함수
    void OnNicknameChanged(string oldNickname, string newNickname)
    {
        if (nicknameText != null)
            nicknameText.text = newNickname;
    }
    
    public override void OnStartClient()
    {
        base.OnStartClient();
        
        // 클라이언트가 시작될 때 닉네임 텍스트 초기화
        if (nicknameText != null)
            nicknameText.text = playerNickname;
    }
    
    public override void OnStartLocalPlayer()
    {
        base.OnStartLocalPlayer();
        
        // 로컬 플레이어가 시작될 때 자신의 닉네임 설정
        // 예: 로비에서 입력받은 닉네임이나 PlayerPrefs에 저장된 닉네임 사용
        string myNickname = PlayerPrefs.GetString("PlayerNickname", "Player" + Random.Range(100, 999));
        CmdSetNickname(myNickname);
    }
    
    [Command]
    void CmdSetNickname(string newNickname)
    {
        // 서버에서 닉네임 변경 (SyncVar가 모든 클라이언트에 자동으로 동기화)
        playerNickname = newNickname;
    }
}