質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Photon Cloud

Photon Cloudは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つです。ネットワーク通信によるオンラインゲームを開発・運営するために必要なツールがサーバー環境に構築されています。

Photon Server

Photon Serverは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つで、サーバにインストールして使うサーバアプリケーションです。全てカスタマイズが可能で権限管理もできます。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1488閲覧

Unity2D PUN2のRPCを利用した変数の同期、通信

Mirai000

総合スコア14

Photon Cloud

Photon Cloudは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つです。ネットワーク通信によるオンラインゲームを開発・運営するために必要なツールがサーバー環境に構築されています。

Photon Server

Photon Serverは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つで、サーバにインストールして使うサーバアプリケーションです。全てカスタマイズが可能で権限管理もできます。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2022/02/20 04:07

用意した物

空のGameObject
-PhotonView.cs
-test.cs

Button(UI)
-Button.cs

サーバーへの接続等は他オブジェクトで対応

実装したい機能

ボタンをクリックした時にChangeHandRPCを実行してx=1の値が空のGameObjectにあるtest.csのvalueへ代入される

(別オブジェクトにアタッチされているスクリプト間での変数の同期)

エラーコード

error CS0103: The name 'photonView' does not exist in the current context

スクリプト(using省略)

test.cs

1public class test : MonoBehaviourPunCallbacks 2{ 3 public int value=0; 4 5 void Awake() { 6 PhotonView photonView = this.GetComponent<PhotonView>(); 7 } 8 9 [PunRPC] 10 void ChangeHand (int a) { 11 value = a; 12 } 13}

Button.cs

1public class Button : MonoBehaviourPunCallbacks 2{ 3 public int x=1; 4 5 public void OnClick() { 6 photonView.RPC("ChangeHand", RpcTarget, x); 7 } 8}

試した事

photonView.RPC()がPhotonViewをアタッチしているオブジェクト内でしか使えないと考え、
test.csにもphotonView.RPC()を追加してコンパイルした所、同じエラーが表示された。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

MonoBehaviourPunCallbacksとMonoBehaviourPunは内部でGetParentComponent<PhotonView>()しています。
なのでtest.csとButton.csをアタッチしたGameObjectにPhotonViewをアタッチしてください。
また親クラスのphotonViewを参照できるのでtest.csのAwakeのように自前でGetComponentしなくても大丈夫です。

投稿2022/02/20 07:35

shiena

総合スコア1825

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mirai000

2022/02/20 10:05

回答ありがとうございます。 PhotonViewは自分で宣言しなくてもよかったのですね。 アドバイス通りに設定するとエラーが消えて無事に実行できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問