このコードはC#であり、私はUnityゲームエンジンを使用しています。配列要素(C#)Unityを1つずつ有効にする方法
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class CollisionDetectionForQuest : MonoBehaviour {
public GameObject[] Garbages;
public GameObject[] GarbagesDummy;
public bool activateInactive;
//public GameObject[] Counter;
void Start(){
Garbages = GameObject.FindGameObjectsWithTag("Trash");
foreach (GameObject garb in Garbages) {
}
GarbagesDummy = GameObject.FindGameObjectsWithTag ("TrashDummy");
foreach(GameObject dummy in GarbagesDummy){
dummy.gameObject.SetActive (false);
}
}
void OnCollisionEnter(Collision obj){
if (obj.gameObject.CompareTag ("Trash")) {
obj.gameObject.SetActive (false);
activateInactive = true;
//in this line i want to activate my GarbageDummy 1 by 1 base on
//every Trash i put in my collider.
foreach(GameObject a in GarbagesDummy){
a.gameObject.SetActive (true);
}
}
だから基本的に私は私のコライダーを置くすべてのゴミに1によってgarbagedummyゲームオブジェクト1をアクティブにします。しかし、私はこれを試して、それは動作しません:
誰でも助けてください。ここで
は私のスクリーンショットです:
Hmmあなたが達成しようとしていることは不明です。あなたはあなたのコライダーに 'ゴミ箱'オブジェクトを置くたびに、 'ゴミ箱'オブジェクトを一つ起動させたいのですか?それは特定のごみダミーか、それともちょうどのものである必要がありますか? –
@LukeBriggsそれらのいずれか。私は**ゴミ**オブジェクトを私のコライダーに置くたびにそれをsetActive(false)として設定し、私の**ゴミのダミー**オブジェクトをアクティブにして、ちょうど自然に置いたように見えるようにします。 – TheGinxx009