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

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

詳細はこちら
参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

C#

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

Unity

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

Q&A

解決済

2回答

14097閲覧

Unity Prefabでスクリプトの参照がうまくできない

obasuteyama-

総合スコア43

参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

C#

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

Unity

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

0グッド

0クリップ

投稿2021/02/10 14:18

毎度お世話になります
今は他のスクリプトの変数を操作しようとしています
そしてこんな感じのプログラムを書きました
<ScrText>

C#

1public int a = 0;

これはオブジェクトAにアタッチしていて、

<Prefabの方>

C#

1[SerializeField] public ScrText ScrText; 2 3private IEnumerator Start() 4{ 5 i = ScrText.a; 6}

これはPrefabの方にアタッチしています

誤字があったらすみません
またかなーり省略したので実際とは違いますがこんな感じです
調べてみたらこんな感じで他のオブジェクト変数を取得できるらしく、
(参考 https://qiita.com/Teach/items/8d1cdb90a3b533707c9a)
他のオブジェクトではできています。

今できていないのは
イメージ説明
上の画像の場所にScrTextをアタッチすることで(できればスクリプトのほうをアタッチしたい)
Prefabだとできないこと(この事案でなくても)が多々あります

ヒラルキーのほうに持っていくとアタッチできます
でもそれだとしたいことができません

インターネットで検索してもなかなか求めている結果が出てきません
なので解決法があれば、
またそこらの知識が曖昧なので教えていただきたいです
よろしくお願いします。

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

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

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

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

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

guest

回答2

0

自己解決

えーと大変申し訳ないのですが、
結論から申し上げますと、このやり方は無理?というかやっても無駄?でした。
やろうとしていたことは、プレハブのなかで変数を作り、それを色々変えて、textで表示させよう!で、
そうすると、プレハブは複製されるので、変数もたくさんできて、textも多分その変数を表示できないとおもいます。
なのでtext側のスクリプトで変数を作り、その変数をプレハブ側からいじるという感じにしたらとてもうまくいきました。
お手数をおかけしました。

投稿2021/02/20 15:11

obasuteyama-

総合スコア43

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

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

0

同一のシーン内のオブジェクト同士であれば互いを参照することができますが、
Prefabなどのシーンに属さないオブジェクトからシーン内のオブジェクトを参照することはできません。
そのシーンが開かれてない時にシーン内のオブジェクトは存在しないからです。(多少雑な表現ですが、正確にしようとすると文量が跳ね上がります)

おそらく、シーン内にそのPrefabをInstantiateするやつがいるはずです。
シーン内にInstantiateされたオブジェクトであればそれはもうシーン内のものなので、そのシーン内のものを参照させることができます。
InstantiateされるまではInstantiateを行うオブジェクトに代わりに参照を持たせておき、Instantiateしたオブジェクトに参照をコピーしてください。

投稿2021/02/10 15:22

Ram.Type-0

総合スコア424

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

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

obasuteyama-

2021/02/10 23:58

ご回答ありがとうございます。 すごく納得できて実際に試してみました。 この回答はinstantiateするオブジェクトなら参照できるんじゃないか?というものですよね? そのことで試してみてもできませんでした。 やり方が違うのでしょうか?
Ram.Type-0

2021/02/12 04:28

多分細かいやり方の問題だと思います。 参照させたいPrefab、Instantiateを行なっているシーン内のオブジェクトのInspectorを追記してもらえますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問