Unity3d:クリックで新しいゲームオブジェクトを生成する前に子オブジェクトを破棄します

タシターンは言う

さまざまなゲームオブジェクトをインスタンス化するメインボタンのグループがあります。これらのメインボタンを交互に切り替えると、ディスプレイパネルのすべての子オブジェクトがクリアされ、それに応じたコンテンツのインスタンス化関数が呼び出されます。

これは機能しますが、結果は理想的ではありません。メインボタンの1つをクリックして子をクリアしますが、新しい子をすぐに生成しません。もう一度クリックしてコンテンツを表示する必要があります。

パート1

public void OnClicked(){
    GameObject _manager = GameObject.Find("Manager");
    _manager.gameObject.GetComponent<managerSystem>().clearSubList();
}

public void OnClicked2(){
    GameObject _manager = GameObject.Find("Manager");
    _manager.gameObject.GetComponent<managerSystem>().getSubList(transform.name);
}

パート2

public void clearSubList(){
    foreach (Transform child in SubScroll.transform) {
        Destroy(child.gameObject);
    }
}

パート3

public void getSubList(string theBName){

    currentSubName = new List<string>();
    currentSubPrice = new List<string>();

    for (int i = 0; i < reader.Length; i++ ){
        if (SubScroll.transform.childCount != reader.Length){
            GameObject go = Instantiate(subListButton, SubScroll.transform);
            string [] x = reader[i].Split('/');
            if (x.Length == 2){go.name = x[0]; currentSubName.Add(x[0]); currentSubPrice.Add(x[1]);}
            if (x.Length == 3){go.name = x[0] + " " + x[1]; currentSubName.Add(x[0] + " " + x[1]); currentSubPrice.Add(x[2]);}
            Array.Clear(x, 0, x.Length);
        }
}

それは私が最初に呼び出すリストをクリアすることに関連していますか?私はさまざまな方法に変更しましたが、これは私にとって最適です。パート2の2つのリストは、テキストファイルの名前に基づいてコンテンツを取得し、その行を解析します。これにより、コードのその部分が削除されました。同じ場合、forループセクションのこのリストのどこに値が取得されるのか疑問に思っている場合は、さらに時間がかかります。

ムハンマド・ファーハン・アクイール

パート1から:同じボタンクリックで両方のメソッドを配置したようです。両方のメソッドが同時に実行されるため、機能しない場合があります。

したがって、最初にすべての子をクリアしてから新しいオブジェクトを生成しようとしているため、両方の方法を組み合わせることでこれを実現できます。両方のonclickメソッドをマージし、コードを変更しました。それが役立つかどうか私に知らせてください。

新しいパート1:

    public void onClickClearAndSpawnSublist() {

    GameObject _manager = FindObjectOfType(typeof(managerSystem));
    _manager.ClearAndSpawnSublist();
}

新しいパート3:

    public void ClearAndSpawnSublist(string theBName) {

    foreach (Transform child in SubScroll.transform)
    {
        Destroy(child.gameObject);
    }


    currentSubName = new List<string>();
    currentSubPrice = new List<string>();

    for (int i = 0; i < reader.Length; i++)
    {
        if (SubScroll.transform.childCount != reader.Length)
        {
            GameObject go = Instantiate(subListButton, SubScroll.transform);
            string[] x = reader[i].Split('/');
            if (x.Length == 2) { go.name = x[0]; currentSubName.Add(x[0]); currentSubPrice.Add(x[1]); }
            if (x.Length == 3) { go.name = x[0] + " " + x[1]; currentSubName.Add(x[0] + " " + x[1]); currentSubPrice.Add(x[2]); }
            Array.Clear(x, 0, x.Length);
        }
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Unity3D:親ゲームオブジェクトを子に対して移動します

分類Dev

編集モード(Unity3d)で子オブジェクトを破棄するにはどうすればよいですか?

分類Dev

Unity 3Dでオブジェクトを破棄してスポーン(リスポーン)する

分類Dev

実行時にUnity3Dでゲームオブジェクトを別のゲームオブジェクトにスナップする

分類Dev

配列のゲームオブジェクトを破棄します

分類Dev

新しいオブジェクトを割り当てる前に、古いオブジェクトを破棄する必要がありますか?

分類Dev

""の変換を破棄することはできません。ゲームオブジェクトを破棄する場合は、代わりにゲームオブジェクトでdestroyを呼び出してください

分類Dev

Unity:ネットワークを介してゲームオブジェクトを破壊する方法は?

分類Dev

ゲームオブジェクトを破棄するだけでなく、ゲームオブジェクトを変数に保存する方法

分類Dev

ゲームオブジェクトを他のゲームオブジェクトUnity3Dの前方方向に移動する方法

分類Dev

Unity3dピッチ、ロール、ヨーの角度のリストに基づいてオブジェクトをスムーズに回転します

分類Dev

新しいオブジェクトを作成する前に、すべての子オブジェクトを破棄するにはどうすればよいですか?

分類Dev

Unity 3Dは、マウスクリックで10個のオブジェクトを生成します

分類Dev

オブジェクトはデータを使用する前に破棄します

分類Dev

Javascriptはオブジェクトの子を新しいオブジェクトにマージします

分類Dev

タスクが非同期で実行されている間にオブジェクトを破棄します

分類Dev

オブジェクトが破棄された場合、MouseLeaveトリガーをブロックします

分類Dev

オブジェクトのトランジットjsを破棄します

分類Dev

サブゲームオブジェクトを使用してゲームオブジェクトを再ペアレント化しようとすると、Unity3d変換の問題が発生します

分類Dev

Unity3d:他の2つのゲームオブジェクトと直角三角形を形成するようにゲームオブジェクトを配置します

分類Dev

Unity3Dでゲームオブジェクトを移動するための最良の方法

分類Dev

unity3dでゲームオブジェクトの回転を制限する方法

分類Dev

オブジェクト内、オブジェクト内... ReactJSでJSONオブジェクトをターゲットにしようとしています

分類Dev

オブジェクトを破棄して復元する

分類Dev

オブジェクトを破棄したら、別の位置に新しいオブジェクトを作成します

分類Dev

Unityでクリックしたときにゲームオブジェクトの色を変更するにはどうすればよいですか?

分類Dev

Unity:レンダリングが終了した後にVFXオブジェクトを破棄します

分類Dev

名前のないJavaでオブジェクトを破棄する方法は?

分類Dev

古いゲームオブジェクトの機能を保存しながら、現在のゲームオブジェクトを新しいゲームオブジェクトに置き換えるにはどうすればよいですか?

Related 関連記事

  1. 1

    Unity3D:親ゲームオブジェクトを子に対して移動します

  2. 2

    編集モード(Unity3d)で子オブジェクトを破棄するにはどうすればよいですか?

  3. 3

    Unity 3Dでオブジェクトを破棄してスポーン(リスポーン)する

  4. 4

    実行時にUnity3Dでゲームオブジェクトを別のゲームオブジェクトにスナップする

  5. 5

    配列のゲームオブジェクトを破棄します

  6. 6

    新しいオブジェクトを割り当てる前に、古いオブジェクトを破棄する必要がありますか?

  7. 7

    ""の変換を破棄することはできません。ゲームオブジェクトを破棄する場合は、代わりにゲームオブジェクトでdestroyを呼び出してください

  8. 8

    Unity:ネットワークを介してゲームオブジェクトを破壊する方法は?

  9. 9

    ゲームオブジェクトを破棄するだけでなく、ゲームオブジェクトを変数に保存する方法

  10. 10

    ゲームオブジェクトを他のゲームオブジェクトUnity3Dの前方方向に移動する方法

  11. 11

    Unity3dピッチ、ロール、ヨーの角度のリストに基づいてオブジェクトをスムーズに回転します

  12. 12

    新しいオブジェクトを作成する前に、すべての子オブジェクトを破棄するにはどうすればよいですか?

  13. 13

    Unity 3Dは、マウスクリックで10個のオブジェクトを生成します

  14. 14

    オブジェクトはデータを使用する前に破棄します

  15. 15

    Javascriptはオブジェクトの子を新しいオブジェクトにマージします

  16. 16

    タスクが非同期で実行されている間にオブジェクトを破棄します

  17. 17

    オブジェクトが破棄された場合、MouseLeaveトリガーをブロックします

  18. 18

    オブジェクトのトランジットjsを破棄します

  19. 19

    サブゲームオブジェクトを使用してゲームオブジェクトを再ペアレント化しようとすると、Unity3d変換の問題が発生します

  20. 20

    Unity3d:他の2つのゲームオブジェクトと直角三角形を形成するようにゲームオブジェクトを配置します

  21. 21

    Unity3Dでゲームオブジェクトを移動するための最良の方法

  22. 22

    unity3dでゲームオブジェクトの回転を制限する方法

  23. 23

    オブジェクト内、オブジェクト内... ReactJSでJSONオブジェクトをターゲットにしようとしています

  24. 24

    オブジェクトを破棄して復元する

  25. 25

    オブジェクトを破棄したら、別の位置に新しいオブジェクトを作成します

  26. 26

    Unityでクリックしたときにゲームオブジェクトの色を変更するにはどうすればよいですか?

  27. 27

    Unity:レンダリングが終了した後にVFXオブジェクトを破棄します

  28. 28

    名前のないJavaでオブジェクトを破棄する方法は?

  29. 29

    古いゲームオブジェクトの機能を保存しながら、現在のゲームオブジェクトを新しいゲームオブジェクトに置き換えるにはどうすればよいですか?

ホットタグ

アーカイブ