2017-11-24 6 views
-2

これは私の行う必要があるプロジェクトのほんの一部であり、私はそれにアプローチする方法がわかりません。すべてのオブジェクトが収集されたときにUIボタンを表示させます

私はこれらのオブジェクトを持っていて、5つのオブジェクトをすべて収集したら、画面の左上隅にある灰色のボックスのUIボタンが表示されます。私はそれを理解しようとしている年齢を過ごしてきましたが、私はできません。

私は絶対初心者のコーディング経験があります。これは文字通り私の最初のコーディング経験です。

コードを使用しようとしました:

using System.Collections; 
    using System.Collections.Generic; 
    using UnityEngine; 

    public class destroyobject : MonoBehaviour 
    { 
     public GameObject button; 
     public int collectable = 5; 


     void Start() 
     { 
      button.SetActive(false); 
     } 

     void OnTriggerEnter(Collider obj) 
     { 
      collectable = -1;    
      if (collectable <= 0) 
      button.SetActive(true); 

      Destroy (obj.gameObject); 
     } 
    } 
+0

thatsのに役立ちます。しかし、私の最初の投稿は多分これは正常です。それは私のプロジェクトの小さな部分です。私はすでに完全なシーンを完了している、あなたはオブジェクトに歩くことができ、彼らは削除され、そのちょうど最初の丸薬を収集した後すぐに表示され、私はなぜ知っていない。私は質問に使用しようとしたコードを追加しようとしています(コメントに収まらないかもしれません)。どのオブジェクトをスクリプトに置くかわかりません。 – locktock9

+0

これは非常に一般的です。このサイトは存在しないので、私たちはあなたのためにあなたの仕事をすることができます。しかし、あなたが枯渇した場合は助けてください。 –

+0

それは不必要に敵意があるように見えるだけです。私は少し怖い、私は非常にスマートではなく、ちょうど話すように足を必要と – locktock9

答えて

0

まずcolelctablestatic変数を作ります。だから、あなたのスクリプトを持っているすべての5つのコライダーのオブジェクトに対して同じ略:

public static int collectable = 5; 

、このようなあなたのOnTriggerEnterを変更:

void OnTriggerEnter(Collider obj) 
{ 
    collectable --; 
    if (collectable <= 0) 
     button.SetActive(true); 

    Destroy(obj.gameObject); 
} 

希望、これは非常に残酷な

+0

これは助けてくれてありがとう。しかし、今問題は、それが無差別に衝突する可能性のあるすべてのドアや他のオブジェクトを削除し、収集可能な価値からそれらをカウントすることです.... – locktock9

+0

答えを受け入れてください。それはまた別の質問です。 –

+0

これまで私に親切であった唯一の人を考えると、私はそうすると思います。しかし、私はここで再び質問をすることを控えるだろうと思うXD私は死者を持っていない – locktock9

0

あなたのトークンは、それらに衝突型加速器を必要とし、あなたのキャラクターは、剛体またはCharacterControllerのいずれかが必要になります。その後、OnCollisionEnter()を使って接触しているかどうかを確認し、それらを破壊することができます。

トークンにタグを付けることができます。FindGameObjectsWithTagは、指定されたタグを持つGameObjectsの配列を返します。次に、その配列が空であるかどうかを確認します。あなたのボタンを有効にしている場合。

私はあなたの全体の割り当てをしませんが、これはあなたを始めるのに十分だと思います。私が言及した方法についてのUnityドキュメンテーションを見てください。ここで

関連する問題