Example #1
0
    void OnPBLoaded(GameObject pb_cache, ref Transform _ground, GROUND_TYPE ground_type)
    {
        if (pb_cache != null)
        {
            //if (pb_cache == null)
            //{
            //    GameObject g_pb_new = obj as GameObject;
            //    pb_cache = g_pb_new;
            //}

            if (_ground == null)
            {
                if (_GroundT != null && pb_cache != null)
                {
                    GameObject g_g = CUnityUtil.Instantiate(pb_cache) as GameObject;
                    if (g_g != null)
                    {
                        _ground = g_g.transform;
                        _ground.SetParent(_GroundT, false);

                        g_g.name = ground_type.ToString();
                        //g_g.SetActive(GroundType == ground_type);
                    }
                }
            }
        }
    }
Example #2
0
    private void SpawnGround(GROUND_TYPE type, int count = 1)
    {
        string        blockName;
        GameObject    block;
        List <string> groundType = new List <string>();

        foreach (var item in groundNames)
        {
            if (item.Contains(type.ToString()))
            {
                groundType.Add(item);
            }
        }
        //По дефолту спавнится 1 блок, но можно указать и несколько
        // Из нового списка с однотипными блоками выбираем случайный, для того чтобы его заспавнить
        for (int i = 0; i < count; i++)
        {
            blockName = groundType[Random.Range(0, groundType.Count)];
            if (isTest == "")
            {
                block = pooler.SpawnFromPool(blockName, new Vector3(0, 0, -20), Quaternion.identity);
            }
            else
            {
                block = pooler.SpawnFromPool(isTest, new Vector3(0, 0, -20), Quaternion.identity);
            }

            block.transform.position = currentEdge;

            //Край блока
            var blockEdge = block.transform.Find("edge").transform.position;

            currentLastBlock = block;
            currentEdge      = blockEdge;


            spawnedGroundLog.Add(type);
            blockCount++;

            // Сообщаем что заспавнили блок земли
            Notification(block);
        }
        //Debug.Log($"Спавним - {spawnedGroundLog.Last().ToString()}");
        //Debug.Log($"Блоков до босса - {blockCount}");
    }