RPC는 진짜 어마어마하게 중요합니다ㅣ포톤PUN2

Поділитися
Вставка
  • Опубліковано 10 лис 2024

КОМЕНТАРІ • 109

  • @nkstudio9161
    @nkstudio9161 5 років тому +7

    몇 없는 한국어 - 포톤 강의를 다루어주셔서 감사합니다 추천!

    • @gorani_TV
      @gorani_TV  5 років тому +1

      감동이에요~ 열심히 하겠습니다!

  • @이주헌-x2q
    @이주헌-x2q 3 роки тому +3

    개인용 위치
    1:02 플레이어 하나일때 움직임 동기화
    2:18 플레이어 프리팹
    6:10 RPC
    7:00 AllBuffered 나중에들어올때

  • @추억창고-r9o
    @추억창고-r9o Рік тому

    와 단방에 이해했네요 감사합니다 이 채널은 신이야..

  • @방정식-w5i
    @방정식-w5i 4 роки тому +1

    10분에 이렇게 알찬 내용이 다 담겨져있는 강의가 몇 개나 더 있을까 싶네요 ㅎㅎ 오늘도 매우 잘 보고 가요!

  • @탠탠-k1c
    @탠탠-k1c 2 роки тому

    와 좋은 강의 정말 감사합니다. 보는 영상마다 좋아요 누르고 있습니다!

  • @GreandChickenMaster
    @GreandChickenMaster 3 роки тому

    영상 정독할뗴마다 좋아요 와드 밖고갑니다 감사합니다.

  • @shc0018
    @shc0018 2 роки тому +1

    진짜 이건 돈받고 팔아도 될정도네요. 정말 핵심만 짚어주셔서 이해에 많이 됐습니다. 감사합니다.

    • @gorani_TV
      @gorani_TV  2 роки тому

      좋은 말씀 감사합니다!

  • @seersdduR
    @seersdduR 2 роки тому

    좋은 내용 감사합니다.

  • @유재성-r6u
    @유재성-r6u 3 роки тому

    진짜 간결하고 명쾌합니다

  • @백마-g3f
    @백마-g3f 3 роки тому

    설명을 너무 잘해주셔서 저같은 개발 문외한도 점차 이해하게 되네요. 정말 설명을 잘하십니다.. 대단하시네요!!!!

    • @gorani_TV
      @gorani_TV  3 роки тому

      도움이 되셨다니 다행입니다.

  • @개발자주유-1
    @개발자주유-1 3 роки тому +1

    안녕하세요~
    감사합니다~
    안 그래도 보통 서버랑은 개념이 다른 거 같아서 어려웠는데 이렇게 강의로 만나니 반갑네요ㅎㅎㅎㅎ

  • @zero-to-100
    @zero-to-100 3 роки тому

    시원시원한 강의 너무 잘봤습니다

    • @gorani_TV
      @gorani_TV  3 роки тому

      봐주셔서 감사합니다

  • @강우진-i1l
    @강우진-i1l 3 роки тому

    정말 감사합니다.

  • @머리별
    @머리별 4 роки тому

    웨비나 1탄에서 RPC는 이해하고 가라고 해서 왔는데
    정말 까아아아알끄으으으음해요! 이해 완벽히 하고 갑니다!

  • @lllcosmoslll
    @lllcosmoslll 5 років тому

    열정적인 강의 정말 감사합니다

  • @이인동-i1d
    @이인동-i1d 4 роки тому

    유익한 영상 감사드립니다 ㅠㅠ 쏙쏙 이해되네요

  • @gamedev.1166
    @gamedev.1166 5 років тому +1

    효과음이 풍부해졌네요 ㅋㅋ
    포톤은 공부하면 엄청 유용하게 사용할 수 있을것 같아요 ㅋㅋ
    잘보고 갑니다

    • @gorani_TV
      @gorani_TV  5 років тому

      찡긋 -.< 감사합니다

  • @taewookim4472
    @taewookim4472 4 роки тому

    제가 너무 성급했습니다..죄송합니다!
    또 옟버릇이 나왔군요.. 앞으로 이런일없도록 더욱 노력하겠습니다!
    많이 불쾌할수도 있었는데 성실히 대답해 주셔서 너무 감사합니다!
    언제나 응원 하도록 하겠습니다!

  • @damondoil2276
    @damondoil2276 4 роки тому +1

    해당 영상을 보고 나서, 1인칭 시점 캐릭터 컨트롤러를 가지고 테스트 하던 중에 알게된 사실이 있습니다.
    플레이어가 2명(이상)이 접속할시, 각 캐릭터의 컨트롤이 각각 다른 클라이언트로 스왑이 되는 버그가 있더군요. 처음에는 이게 무슨 버근가 싶어서 관련 영상을 몇번을 보면서 수정을 해보다가 혹시나 싶어서 생성시에 해당 클라이언트의 캐릭터가 아닐때 카메라 컴포넌트를 끄게 했더니 정상적으로 돌아가는걸 확인했습니다. 혹시 저와 같은 현상을 겪는 분이 계시다면 참고 하셨으면 합니다.

    • @gorani_TV
      @gorani_TV  4 роки тому +1

      이게 플레이어가 하나있는 카메라를 참조해야 해서. 카메라가 플레이어를 하이어라키 상 위쪽부터 가져오기 때문에 순서가 바뀔 수 있습니다.
      정확한 내용은 코드를 보여주실 수 있나요?

    • @damondoil2276
      @damondoil2276 4 роки тому

      @@gorani_TV 복잡하지는 않습니다. 카메라 컨트롤 스크립트에서 awake 혹은 start 에 조건문 하나 달아서 IsMine == false 일경우 스크립트가 가지고 있는 카메라 컴포넌트를 enable = false 시켰습니다. 좀 더 깔끔하고 좋은 방법이 있긴 할텐데 당장 떠오르는건 이것밖에 없더라구요.

    • @damondoil2276
      @damondoil2276 4 роки тому

      @@gorani_TV
      public Camera cam = null;
      public PhotonView pv;
      private void Awake()
      {
      if (!this.pv.IsMine)
      {
      cam.enabled = false;
      this.enabled = false;
      }
      }
      코드로 표기 하면 이렇습니다. 아주 간단해요.

    • @gorani_TV
      @gorani_TV  4 роки тому

      +SI - U HAN 네 제가 말한 게 그거예요~ 카메라가 플레이어를 참조하면 하이어라키 위에서 플레이어를 가져오니까 isMine이어도 꼬입니다. 플레이어가 카메라를 참조해야 해요

  • @bawoochamkim8559
    @bawoochamkim8559 Рік тому

    7:40초 쯤에 나오는 내용에서 pc는 자기가 A MINE인 PC인지 B MINE인 PC인지 어떻게 판단하나요???

  • @양갱-w6i
    @양갱-w6i 4 роки тому

    좋은 강의 항상 감사합니다.
    포톤 강의를 보면서 몇가지 진행하는데 궁금한게 있어서 문의 드립니다.
    1. Controlled Locally 체크 유무는 현재 실행 파일에서 PhotonNetwork.Instantiate로 생성했을시 true로 들어 가는건가요?
    2. 유저가 입력하는게 아닌 AI 몬스터 경우 masterclient에서만 update실행시키는 방법말고 다른 방법이 있을까요?

    • @gorani_TV
      @gorani_TV  4 роки тому

      1. 네
      2. Scene에게 두고 하면 됩니다

  • @이인동-i1d
    @이인동-i1d 4 роки тому

    게임만들다 궁금한게 생겼는데요, 영상에서 설명하신 것처럼 RPC를 사용하면 상대 클라이언트의 내 복제품(?) 한테 보내지잖아요?
    근데 제가 로비 오브젝트를 만들고 거기에 photonview를 붙였는데,
    photonview 의 owner가 scene이더라구요.
    이 상태에서 RPC를 활용해서 로비 스크립트에 있는 변수를 수정하는 메소드를 보내면
    상대 스크립트에서도 수정이 되나요?
    owner가 scene이면 모든 클라이언트들은 다들 복제품을 가지고 있는건가요?

    • @gorani_TV
      @gorani_TV  4 роки тому

      +스리랑 그렇습니다 이 원리로 RPC채팅이 가능해요 모두가 복제품을 가지므로요.

    • @이인동-i1d
      @이인동-i1d 4 роки тому

      @@gorani_TV 아하 답변 감사드립니다!

  • @MoveMoveMoveMoveMove
    @MoveMoveMoveMoveMove 2 роки тому

    이전 강의에 있는 채팅방 세팅에서 씬전환으로 한명이 입장버튼을 누를때 유저들이 게임씬이 이동되는 그런 시스템을 만들기를 원했는데 와... 이거 제가 모르는게 너무 많은거 같아요.. 도저히 이해가 안되네요... 무엇을 추가해야 photonview를 씬에서 공유하고 있는 채팅방 상태에서 각자가 photonview를 새로가진 프리팹으로 연결되면서 그 방설정이 유지되는 방식을 어떻게 구현해야되는건가요(참 설명하기도 어렵네요...)

    • @gorani_TV
      @gorani_TV  2 роки тому

      ua-cam.com/play/PL3KKSXoBRRW3YE4UMnRH762vOhSHLdnpK.html 여기 있는 것 중 웨비나 1,2,3편을 차근차근 보며 이해하시면 도움 될거같아요

  • @석지우-q1p
    @석지우-q1p 5 років тому

    너무 잘보고 있습니다 고라니님... 만들어보다가 질문이 생겨서 남겨봅니다 객체를 생성했는데 그 위치를 어떤 오브젝트의 자식으로 넣어뒀는데 다른 멀티에서는 하이어라키 상에서 자식으로 들어가있지않고 가장 밖으로 빠져서 생성되어있던데 이것은 어떻게 해결해야할까요? 포톤에서 Instantiate하는 오브젝트들은 전부 하이어라키 최상위에서만 생성되는건가요?

    • @gorani_TV
      @gorani_TV  5 років тому

      +석지우 일단은 최상위에 생성됩니다. SetParent로 하셨을텐데 이것 또한 RPC로 하셔야해요

    • @석지우-q1p
      @석지우-q1p 5 років тому

      @@gorani_TV 아 RPC로 그런것도 되는군요 감사합니다..! 혹시 나중에 포톤으로 풀링도 가능하다면 강좌해주시면 감사하겠습니다 ㅠ

  • @mhk5066
    @mhk5066 3 роки тому

    궁금한게 있씁니다.. rpc에 프로퍼티로 gameobject는 못넘기는데 그럼 어떤 오브젝트의 정보는 어떻게 접근해서 넘기면 될까요?

    • @gorani_TV
      @gorani_TV  3 роки тому

      viewID로 구분해야 합니다.

  • @Porer2570
    @Porer2570 2 роки тому

    여러 영상보면서 멀티만드는데 많은 도움이 됐습니다! 근데 씬이동 하는데 막혀서요ㅠㅠ플레이어가 혼자만 씬이동을 하게 하고싶은데 다른플레이어도 같이 이동되네요ㅠㅠ 그리고 그리고 어떻게 또 바꾸면 씬이동을 같이 안해도 상대에겐 같이있게 보이고요.. 어떻게 해여하나요?..

    • @gorani_TV
      @gorani_TV  8 місяців тому

      씬전환시 문제가 많이 발생하기에 최대한 단일씬으로 개발해보세요

  • @InwaterK
    @InwaterK 4 роки тому

    배경화면이 너무너무 이쁜데요??

  • @구동현-w4l
    @구동현-w4l 4 роки тому

    잘보고 있습니다. 혹시 rpc타겟 다른 값은 각각 무슨역할 하는지 알려주실수있으신가요?? ㅠㅠ

  • @정보경-r5d
    @정보경-r5d 4 роки тому

    고라니님 덕분에 포톤을 알게되서 멀티플레이 게임을 한번 만들어보고있습니다!!
    혹시 질문 하나 해도 될까요?
    10개의 이미지를 서로 드래그하면서 하는 게임을 만들어보고있는데 스프라이트 10개를 프리팹으로 만들어서 각 프리팹에 photon transform view, photon view를 추가했습니다. 그리고 mouseInput.cs를 만들어서 마우스 드래그 코드를 punRPC로 구현하고, 처음 시작하면 화면에 10개의 이미지가 방장으로부터 생성되도록했습니다
    혼자 접속하면 드래그가 매끄럽게 잘 되는데 두명이 동시에 접속하면 드래그가 되긴하는데 매끄럽게 되지 않아요
    이런경우엔 어떻게 해야 할까요 ㅜㅜ

    • @gorani_TV
      @gorani_TV  4 роки тому

      드래그 포지션을 2D횡스크롤 멀티게임 만들기에서 위치 동기화 처럼 lerp를 사용하셔야 좋아요.

  • @tkdwnsable
    @tkdwnsable 2 роки тому

    혹시 특정 RPC함수에서 RpcTarget buffer 설정할 때 마지막 호출 한 번만 기억하도록 할 수 있을까요?? 버퍼가 길어지니까 문제가 생겨서요

    • @gorani_TV
      @gorani_TV  2 роки тому

      ua-cam.com/video/x2ppIKc-GlE/v-deo.html 이 방식을 써보는 게 어떨까요?

  • @haseo8296
    @haseo8296 4 роки тому

    안녕하세요. RPC로 axis 변수를 상대방한테 보내는거 혹시 다른 스크립트에서 상대방이 받으려면 어떻게 해야 하나요?

    • @gorani_TV
      @gorani_TV  4 роки тому

      함수를 만들고 RPC로 그 함수를 실행하게 하면 됩니다

  • @gamegate5
    @gamegate5 4 роки тому

    지금 멀티플레이 리듬게임을 만드려고 하는데, 한 사람이 노트를 주는 형식으로 하려는데, 주는 사람만 노트가 보입니다. 동기화가 안되는거 같은데, 어떻게 해야 할까요?

    • @gorani_TV
      @gorani_TV  4 роки тому

      2D 횡스크롤 멀티게임만들기 편을 완벽히 이해하셔야 포톤을 이해할 것입니다.
      현재는 그냥 Instantiate로 생성한 것 같아요

  • @gildonghong9696
    @gildonghong9696 2 роки тому

    포톤 pun을 사용해서 복잡한 실시간 pvp 모바일게임을 2년간 만들다보니, client들 중 한명이 호스트를 맡게 하는것이 아닌.
    서버용 컴퓨터가 호스트를 맡고 정보를 처리해줘야하는 순간이 왔습니다.
    pun은 무조건 client들 중 masterclient가 호스트를 맡아야 하는 구조인것 같은데,
    photon을 사용하면서 서버용 컴퓨터로 데이터를 보내고 그 컴퓨터에서 실행해서 결과를 client들로 보내주려면 어떻게 해야하나요?

    • @gorani_TV
      @gorani_TV  2 роки тому +1

      데디케이티드 서버가 필요하시면 포톤BOLT를 사용하시면 됩니다

    • @gildonghong9696
      @gildonghong9696 2 роки тому

      HpKit이라는 아이템의 collider와 2명의 client가 거의 동시에 접촉했을 때 RPC를 사용해서 masterClient로 접촉한 시간을 보내고
      masterClient에서 받은 RPC들중 가장 빠른 RPC를 보낸 client의 HP를 회복시켜줬었는데요
      masterClient가 접속이 끊어졌거나 게임을 background 상태로 하고 다른 어플을 사용할 때
      제대로 동작하지 않아서, 그런경우 다른 client를 masterClient로 임명했었습니다.
      하지만 임명하는 딜레이가 꽤 길 때가 많고 그것은 photon이 어떻게 할 수 없다고 하더라구요
      서버용 컴퓨터가 호스트를 맡아서 모든 플레이어가 RPC를 서버용 컴퓨터로 보내고
      서버용 컴퓨터에서 가장 빨리온 RPC를 보낸 client에게 HP를 회복시켜주는 방법을 사용하고 싶습니다.

    • @gildonghong9696
      @gildonghong9696 2 роки тому

      @@gorani_TV 답변감사합니다. 포톤Quantam은 Pun과 비교했을 때 명령어 형태가 많이 달라지나요? Bolt를 지금 살펴보려고 하는데 photon에서 Realtime, Fusion, Quantm을 더 추천하는 느낌이 들어서 알아봤지만 어떤것이 저한테 어울리는 것인지, 만약 Bolt를 사용했을때는 어떤 한계에 부딪힐지 걱정이됩니다.

    • @gorani_TV
      @gorani_TV  2 роки тому +1

      각자 코드스타일이 전부 다르지만 퀀텀은 어렵다고 느꼈습니다 퓨전은 이번에 새로나온 거로 퓨전도 데디케이티드 서버 되는지 확인하시고 사용하시면 될거같아요.

    • @gildonghong9696
      @gildonghong9696 2 роки тому

      @@gorani_TV 감사합니다

  • @양박현태준률
    @양박현태준률 3 роки тому

    실행을 했는데 포톤뷰가 안뜨고 비슷한걸 사용했는데도 작동을 안하고요 캐릭터도 생성이 안되요
    고라니님은 어떻게 하는지 아시나요?

    • @양박현태준률
      @양박현태준률 3 роки тому

      실수로 메인카메라한테 안넣고 플레이어한테 넣었네요 죄송합니다.

  • @haseo8296
    @haseo8296 4 роки тому

    고라니님 제가 지금 만들고 있는 컨텐츠가 있는데 이게 RPC인지 한번 봐주시면 감사하겠습니다.
    방에 진입한 사람들이 총 4명 있고 방을 개설한 사람을 방장으로 세팅합니다.
    방장을 제외한 3명은 방을 나가는 UI버튼 외에는 다른 UI 버튼등을 터치 못하게 막아두고
    방장만이 UI를 터치할 수 있고 해당 UI를 눌렸을때 이뤄지는 행위들을 나머지 3명도 동일하게 실행하게 하고 싶습니다. 이런것을 RPC로 접근하면 가능할까요?
    아직 공부중이라 고라니님꺼 다 정독중인데 확신이 안되서 질문을 남겨봅니다.
    매번 좋은 영상 정말 감사합니다.

    • @gorani_TV
      @gorani_TV  4 роки тому +1

      네 RPC쓰면 되요.

    • @haseo8296
      @haseo8296 4 роки тому

      @@gorani_TV 그 방장이 진행하는 방식은 RPC로 동기화하는 느낌인건 알겠는데 방장이 아닌 일반 유저들이 방 나가는 버튼을 제외하고 다른 UI의 터치를 막는것도 RPC의 개념으로 접근 해야 하나요?

    • @gorani_TV
      @gorani_TV  4 роки тому +1

      IsMasterClient인 경우 활성화예요. 웨비나 123편이 많이 도움될거예요

    • @haseo8296
      @haseo8296 4 роки тому

      @@gorani_TV 감사합니다. 덕분에 물꼬가 좀 트이는 느낌이네요. 정말 감사합니다!

  • @user-zd9vz9ef5y
    @user-zd9vz9ef5y 3 роки тому

    접속을 눌렀을때 1vs1로 랜덤하게 상대가 매칭되게 하는 방법은 어떤식으로 접근해야할까요?

    • @gorani_TV
      @gorani_TV  3 роки тому

      먼저 PhotonNetwork.JoinRandomRoom을 시도합니다
      실패시 PhotonNetwork.CreateRoom을 MaxPlayer를 2로 하고 방을 생성합니다

  • @박현우-m8r
    @박현우-m8r 4 роки тому

    이 영상보고 포톤을 처음 사용해보는데 컴퓨터에서는 서버 연결(동기화)이 잘되는데 노트북으로 할땐 서버 연결(동기화)이 안돼요 ㅠㅠ
    답변해주시기 난해 하실 것 같긴하지만 구글이나 네이버 유튜브등에 찾아봐도 잘 나오지도 않아서 문의 드립니다...
    주로 노트북으로 작업(?)하는데 안되서 너무 답답하고 힘드네요 ㅠㅠ

    • @gorani_TV
      @gorani_TV  4 роки тому

      혹시 인터넷 우회를 하셨나요? 프로젝트 Photon에 Photon Server Settings - Settings - Fixed Region을 kr로도 해보세요

    • @박현우-m8r
      @박현우-m8r 4 роки тому

      @@gorani_TV fixed region을 kr이나 혹시 몰라 us로도 해봤는데 둘다 안됬어요..ㅠㅠ
      인터넷 우회도 따로 하지는 않았습니다

    • @박현우-m8r
      @박현우-m8r 4 роки тому

      @@gorani_TV 방법이 없는건가요...? ㅠㅠ..

    • @gorani_TV
      @gorani_TV  4 роки тому

      어떤분은 mtu를 바꿔서 그랬대요. 인터넷 설정문제가 큽니다

    • @박현우-m8r
      @박현우-m8r 4 роки тому

      @@gorani_TV mtu는 처음 들어봐서 인터넷에서 찾아서 열어봤는데 처음숫자만 크고 나머지는 다 1500인데 어떻게 설정해야 하나요?
      + 인터넷은 무선공유기를 사용하고 있습니다

  • @bawoochamkim8559
    @bawoochamkim8559 Рік тому

    마찬가지로 각PC가 서버에 들어가는 순간 A가 MINE인지 B가 MINE인지 어떻게 판단하나요?

    • @gorani_TV
      @gorani_TV  8 місяців тому

      PhotonView가 자기 컴퓨터라면 IsMine이라고 판단해줍니다.

  • @user-he7el6sk8k
    @user-he7el6sk8k 3 роки тому

    RPC 활용해서 개발 하다가 막혔습니다.. Received RPC "SyncInt" for viewID 0 but this PhotonView does not exist! Was remote PV. Remote called. By: #01 '' Maybe GO was destroyed but RPC not cleaned up. 라고 오류가 뜨는데 왜 그러는지 잘 모르겠습니다..

    • @gorani_TV
      @gorani_TV  3 роки тому

      GO가 파괴되었는데 RPC를 호출받아서 그렇습니다. 파괴 전에 RPC를 제어하도록 바꿔주세요

  • @머리별
    @머리별 4 роки тому

    고라니님
    VSCODE로 코딩중인데 포톤관련은 자동완성이 1도 안됩니다. ㅠㅠ
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using Photon.Pun;
    using Photon.Realtime;
    public class NetworkManager : MonoBehaviourPunCallbacks
    {
    void Awake() {
    Screen.SetResolution(960, 540, false);
    PhotonNetwork.ConnectUsingSettings();
    }
    }
    이거 작성중에도 자동완성은 Awake()밖에 안됬습니다 ㅠㅠ

    • @gorani_TV
      @gorani_TV  4 роки тому

      유니티용 설치는 하셨나요?

    • @머리별
      @머리별 4 роки тому

      네..
      이미 임포트도 다했어요 ㅠㅠ

    • @머리별
      @머리별 4 роки тому

      @@gorani_TV 어케 해야 할까요?

    • @gorani_TV
      @gorani_TV  4 роки тому

      뭔가 계속 안되면 VS studio를

    • @머리별
      @머리별 4 роки тому

      @@gorani_TV VS는 컴이 못버텨......... ㅠㅠㅠㅠㅠㅠㅜ

  • @대충개발하는코끼리
    @대충개발하는코끼리 4 роки тому

    스타트코루틴은 rpc로 동기화를 어떻게 시키나요?

    • @gorani_TV
      @gorani_TV  4 роки тому

      아래 스타일처럼 쓰면 됩니다
      [PunRPC]
      void MyRPC(){ StartCoroutine("MyCoroutineRPC"); }
      IEnumerator MyCoroutineRPC(){}

  • @5juk
    @5juk 3 роки тому

    3D도 똑같나요?

  • @wsl5894
    @wsl5894 4 роки тому +1

    다 좋은데 편집이 쉼이 없이 너무 빠른탬포라 아쉽네요..

    • @gorani_TV
      @gorani_TV  4 роки тому

      제 영상이 전반적으로 빨라서, 지금은 약간 더 느리지만 그래도 빠르게 느껴지실 수 있어요.
      0.75배속으로 보시거나, 양해 부탁드려유

    • @littlerookey5466
      @littlerookey5466 3 роки тому

      저는빨라서 좋은거같아요 영상이라 다시보기도되니까