🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Photon Server

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

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

Unity

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

Q&A

解決済

2回答

1927閲覧

UnityでスライダーUIがスクリプトから生成されない

M4SH1R000

総合スコア5

Photon Server

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

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

Unity

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

0グッド

0クリップ

投稿2020/12/11 09:01

編集2020/12/11 09:04

前提・実現したいこと

Unity3Dでゲームを制作しているのですが、SliderUIがスクリプトから生成できずに困っております。

発生している問題・エラーメッセージ

1.(PUNを使用しているため)Resourceフォルダにある「PlayerUI」というスライダーを生成したい。イメージ説明
2.GameManagerのGameCOntrollerというオブジェクトからPlayerUIというスライダーを生成する
イメージ説明
3.生成するスクリプトは以下です。(一部省略)

C#

1using System; 2using System.Collections; 3using Photon.Pun; 4using Photon.Realtime; 5using UnityEngine; 6using UnityEngine.SceneManagement; 7 8public class GameController : MonoBehaviourPunCallbacks { 9 [SerializeField] 10 public GameObject playerUiPrefab; 11 [SerializeField] 12 public GameObject canvas; 13 14 private void Start () { 15 if (playerUiPrefab != null) { 16 GameObject _uiGo = Instantiate (playerUiPrefab); 17 _uiGo.transform.SetParent (canvas.GetComponent<Transform> (), false); 18 } else { 19 Debug.LogWarning ("<Color=Red><a>Missing</a></Color> PlayerUiPrefab reference on player Prefab.", this); 20 } 21 } 22}

4.上記の操作を行っても、UIが生成されません。
イメージ説明

試したこと

Textや(プレハブ状態の)Canvasプレハブ化したものは正しく生成されます。
以下はシーンに設定してあるCanvasを親としてtextをインスタンスしたものになります。
スクリプトは同一のものです。
イメージ説明
イメージ説明
イメージ説明

補足情報(FW/ツールのバージョンなど)

Unity … Unity2019.4.12f
API … .NET 4.x

どなたか解決策をご教授いただければ幸いです。

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

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

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

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

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

guest

回答2

0

自己解決

問題はスライダーに設定したスクリプトにありました…。
https://doc.photonengine.com/ja-jp/pun/v1/demos-and-tutorials/pun-basics-tutorial/player-ui-prefab
こちらのサイトの内容を完コピしたので大丈夫だろうと思っていたのですが以下のスクリプトの_targetという変数を設定し忘れていました・・・。
お恥ずかしい限りです。。。

c#

1if (_target == null) { 2 Debug.LogError ("<Color=Red><a>Missing</a></Color> PlayMakerManager target for PlayerUI.SetTarget.", this); 3 return; 4}

投稿2020/12/14 00:21

M4SH1R000

総合スコア5

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

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

0

分岐条件が間違っているんだと思われます。

C#

1if (playerUiPrefab != null) { 2 /* playerUiPrefabがnullではない、 3 つまりあれば実行される(二つ目が生成される) */ 4} else { 5 // 上の逆 6}

if (playerUiPrefab == null)と書き直してください

投稿2020/12/12 05:18

PinoMatcha

総合スコア368

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

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

M4SH1R000

2020/12/12 14:27 編集

ありがとうございます。 結果ですがエラーが出ました。。。 Missing PlayerUiPrefab reference on player Prefab. UnityEngine.Debug:LogWarning(Object, Object)
PinoMatcha

2020/12/12 16:06

すみません、勘違いしていたみたいです。 「playerUiPrefabがシーンに無ければインスタンスを生成する」というスクリプトではなく、「playerUiPrefabがセットされていればインスタンスを生成する」というスクリプトですね。 でしたら、if (playerUiPrefab != null) でいいです、ごめんなさい。 もしかしたら、このスクリプトですかね? https://doc.photonengine.com/ja-jp/pun/v1/demos-and-tutorials/pun-basics-tutorial/player-ui-prefab Photon環境ではないですがインスタンスは生成できたのでPhoton側でなにかうまく動いていないんだと思います…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問