生成的对象不会再次生成

天使

我正在一个手机游戏中工作,该手机游戏在同一场景中具有多个区域。每个区域都有一个触发器,当玩家进入其中时,会生成几个对象来拾取它们。我该如何取消激活拾取的物体,以便当玩家再次进入该区域时,该物体不会再次产生?

这是我的代码:

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在生成后简单地从中删除GameObjectspawnObjects.Remove(spawnObjects[selection]);

public class Playervitals : 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()
    {
        for (int i = 0; i < spawnPositions.Count; i++)
        {
            GameObject spawnPosition = spawnPositions[i];
            int selection = Random.Range(0, spawnObjects.Count);
            PoolManager.Pools["Objetos"].Spawn(spawnObjects[selection], spawnPosition.transform.position, spawnPosition.transform.rotation);
            spawnObjects.Remove(spawnObjects[selection]);
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何再次生成支持库?

来自分类Dev

不会多次生成d3network图

来自分类Dev

多次生成质数

来自分类Dev

如何防止random.sample再次生成相同的数字组合?

来自分类Dev

我删除了traces.txt文件,无法再次生成

来自分类Dev

如果不等于x,则再次生成随机数

来自分类Dev

生成一个随机数,如果不符合条件,则再次生成一个随机数。怎么做?

来自分类Dev

每次生成新的Firebase令牌

来自分类Dev

并行make多次生成代码

来自分类Dev

在PostgreSQL中多次生成相同的数据

来自分类Dev

OpenMDAO两次生成着色文件

来自分类Dev

url在分页中多次生成

来自分类Dev

以随机的时间生成对象而不会覆盖

来自分类Dev

头文件两次生成相同的警告

来自分类Dev

使用函数多次生成示例组件React Native

来自分类Dev

TNMPOP3.Connect两次生成异常。

来自分类Dev

尝试在图表中标记条形,但多次生成文本

来自分类Dev

每次生成随机QString都会产生相同的结果

来自分类Dev

第二次生成“ JHipster-UML”

来自分类Dev

C++ 每次生成随机数

来自分类Dev

不在循环中多次生成相同的随机数

来自分类Dev

第二次更改第一个下拉列表值时,将再次生成新的下拉列表以及旧的第二个下拉框

来自分类Dev

FCM Token 第一次不生成,第二次生成

来自分类Dev

每次生成实例时,FactoryGirl都可以设置变量吗?

来自分类Dev

控制器中的网址操作两次生成端口

来自分类Dev

原则架构:更新一次又一次生成相同的SQL

来自分类Dev

在SpriteKit中多次生成同一节点的最佳实践(Swift)

来自分类Dev

每次生成的密码哈希都不一样

来自分类Dev

依次生成“ 5,3,1,3,5”的方程是什么?

Related 相关文章

热门标签

归档