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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

2324閲覧

子要素のTextを取得したい

GOTOken

総合スコア54

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/07/12 07:01

実装したいこと

Textを取得し、一定の値に到達したら、表示するようにしたい。
試したこと

text.gameObject.SetActive(true);

のように、して表示、非表示を行おうとしましたが、エラーを吐かれてできませんでした。
また、foreach文で子要素を取得できるというのを記事で確認したのでそれも試しましたが、実装できませんでした。もしかしたら、使い方を理解できていないのかもしれないですが・・・。

スクリプト

c#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class GameManager : MonoBehaviour { 7 8 public Text ComboText; 9 public int ComboCounter; 10 public float deltaTime; 11 12 public static float delta; 13 public static int Combo; 14 private Text text; 15 16 // Use this for initialization 17 void Start () { 18 //コンボ初期化 19 Combo = 0; 20 // ComboText.text = "Combo:0"; 21 } 22 23 // Update is called once per frame 24 void Update() 25 { 26 27 ComboCounter = Combo; 28 if(Combo == 0 || Combo <4) 29 { 30 foreach(Text text in transform) 31 { 32 text.gameObject.SetActive(false); 33 } 34 } 35 if (Combo > 5) 36 { 37 text.gameObject.SetActive(true); 38 ComboText.text = "Combo" + ComboCounter.ToString(); 39 } 40 //コンボ取得時に計測時間計測開始 41 if (Combo > 1) 42 { 43 //計測時間設定 44 delta += Time.deltaTime; 45 } 46 //計測時間を代入 47 deltaTime = delta; 48 49 if(deltaTime > 3) 50 { 51 //計測時間経過後コンボ初期化 52 Combo = 0; 53 Debug.Log("0"); 54 55 } 56 57 58 } 59} 60

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

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

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

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

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

guest

回答1

0

テキストが一つであればGetComponentInChildren<Text>()でうまいこと取得できるかもしれません

複数であってもGetComponentsInChildren<Text>()で取得はできますが
どれが目的のテキストか判別するのは難しいです

自分は手詰まりの場合はテキスト自体にスクリプトをアタッチしてフィールドにTextをおいて
AwakeStartgameObject.transform.root.gameObject.GetComponent<GameManeger>()でルートのクラスのほうのフィールドに代入してます

子オブジェクトのAwakeが全部走らないと親のAwakeが走らないので少し注意が必要です

投稿2018/07/12 07:31

DeadEndShoot666

総合スコア203

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問