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

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

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

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

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

受付中

動的に生成したオブジェクトの判定方法について

M.hosokawa
M.H

総合スコア19

C#

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

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

1回答

0評価

0クリップ

1550閲覧

投稿2018/07/03 22:44

動的に作成したボタンをタッチした時、そのオブジェクトを削除するという機能を実装しようと考えています。
下記スクリプト
createPrefab(string strqrText)
では、UpDate()メソッドでカメラから取得した値を渡し、情報が入っていればContent内にボタンを追加するという動きをしています。

ここから、タッチしたボタンを削除したいのですが実装方法がわからず、質問致しました。
プログラムの組み方が良いのかどうかもわかりません。

上記2点についてご教示いただければ幸いです。
よろしくお願いいたします。

C#

using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using ZXing; using ZXing.QrCode; public class QRReader : MonoBehaviour { public int height = 1920; public int width = 1080; public int fps = 60; private string strqrText; private WebCamTexture webCamTexture; public PQRCodeManager qrManager; public GameObject QRList; RawImage rawImage; [SerializeField] GameObject goQRTextResult; Transform QRContent; private List<GameObject> cloneList = new List<GameObject>(); // Use this for initialization private IEnumerator Start() { QRList = Resources.Load("prefab/StepButton") as GameObject; goQRTextResult = GameObject.FindGameObjectWithTag("parent"); WebCamDevice[] devices = WebCamTexture.devices; //webカメラの検索 for (int i = 0; i < devices.Length; i++) { Debug.Log(devices[i].name); if (devices[i].name == null) { break; } } //0番目に取得したwebカメラを取得 WebCamDevice userWebCamDevice = WebCamTexture.devices[0]; rawImage = this.GetComponent<RawImage>(); webCamTexture = new WebCamTexture(userWebCamDevice.name, height, width, fps); // WebCamを許可するかユーザーに確認 yield return Application.RequestUserAuthorization(UserAuthorization.WebCam); if (Application.HasUserAuthorization(UserAuthorization.WebCam) == false) // 許可しないので抜ける yield break; //カメラ画像を回転させる // iPad実機 ※アウトカメラ // 90度回転して表示されるので本来の角度に戻す rawImage.rectTransform.Rotate(new Vector3(0, 0, 90)); // X-Yサイズを入れ替え rawImage.rectTransform.sizeDelta = new Vector2(rawImage.rectTransform.sizeDelta.y, rawImage.rectTransform.sizeDelta.x); // 鏡像表示されるので反転して本来の表示に戻す rawImage.rectTransform.localScale = new Vector3( -rawImage.rectTransform.localScale.x, rawImage.rectTransform.localScale.y, rawImage.rectTransform.localScale.z); rawImage.texture = webCamTexture; webCamTexture.Play(); this.qrManager = new PQRCodeManager(); } // Update is called once per frame void Update() { try { strqrText = this.qrManager.read(webCamTexture); } catch (NullReferenceException ex) { Debug.Log("myLight was not set in the inspector"); } createPrefab(strqrText); } //子オブジェクトの作成 void createPrefab(string strqrText) { try { if (strqrText.Equals("-1")) { Debug.Log("The value is -1"); } else { //Scroll Viewに要素を追加する GameObject clone = Instantiate(QRList) as GameObject; cloneList.Add(clone); clone.transform.Find("ProcessText").GetComponent<Text>().text = strqrText; clone.transform.SetParent(goQRTextResult.transform, false); clone.transform.name = strqrText; clone.transform.GetComponent<Button>().onClick.AddListener(() => OnClick()); } } catch (NullReferenceException Exception) { } } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

DeadEndShoot666

2018/07/04 00:10

ボタンはUnityのGUI機能のボタンですか? それとも自作の物ですか?
M.hosokawa

2018/07/04 00:13

コメントありがとうございます。ボタンはプレハブ化したuGUIを使用しています。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

C#

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

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。