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); } } } } }
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}"); }