同じシーンに複数の領域があるモバイルゲームで作業しています。各エリアにはトリガーがあり、プレイヤーがそれを入力すると、いくつかのオブジェクトがスポークされてピックアップされます。ピックアップされたオブジェクトを非アクティブにするにはどうすればいいですか?プレイヤーが再びこのエリアに入ると、このオブジェクトは再び生成されません。スポーンされたオブジェクトが再び生成されない
これは私のコードです:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using PathologicalGames;
public class InOutZone_ZONAS: MonoBehaviour {
//Objetos
[Header("Objetos")]
public List<GameObject> spawnPositions;
public List<GameObject> spawnObjects;
private GameObject[] despawnObjects;
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Player")
{
SpawnObjectsZ();
}
}
void OnTriggerExit(Collider other)
{
if (other.gameObject.tag == "Player")
{
GameObject[] despawnObjects = GameObject.FindGameObjectsWithTag("ItemZona");
for (int i = 0; i < despawnObjects.Length; i++)
{
PoolManager.Pools ["Objetos"].Despawn (despawnObjects[i].transform);
Debug.Log("Despawnea Objetos");
}
}
}
void SpawnObjectsZ()
{
foreach (GameObject spawnPosition in spawnPositions) {
int selection = Random.Range (0, spawnObjects.Count);
PoolManager.Pools ["Objetos"].Spawn (spawnObjects [selection], spawnPosition.transform.position, spawnPosition.transform.rotation);
}
}
}
でそれを起動した後、あなたは、単に
List
からゲームオブジェクトを削除することができます。 – Programmerコード – Angelsm
を追加しました。良い。 'InOutZone_ZONAS'スクリプトがどのオブジェクトにアタッチされているのかを説明してください。ピックアップアイテムまたはプレーヤーが検出された場所? – Programmer