Четверг, 18 Апреля 2024, 09:44

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Сложный массив
Сложный массив
RebyataYaNeSharyДата: Пятница, 03 Марта 2017, 22:35 | Сообщение # 1
частый гость
Сейчас нет на сайте
Такая тема, по мне так очень сложно, долго уже парюсь с этим, помогите пожалуйста. Есть префаб, при клике появляются клоны этого префаба сколько угодно, и скапливаются все на определенной местности, мне нужно создать массив в который будут они помещаться и проверять расположение каждого по Y, и если среди всех этих позиций 5 к примеру ну или 6, совпадают, то удалять эти объекты с одинаковыми позициями.

Вот код если что
Код
g UnityEngine;
using System.Collections;
using Text = UnityEngine.UI.Text;

public class Tap : MonoBehaviour {

    public GameObject myPrefab;
    Vector3 Cursor;
    public Camera Camera;
    public Text Scores;
    public int score = 0;
    public int plusScore = 1;
    bool a = false;
    public float Distance;
    Vector3 StartRay;
    Vector3 FinalRay;
    bool g = false;
    int z = 2;

    void Start () {
        Input.simulateMouseWithTouches = true;
    }

  

    void Update () {
        Vector3 StartRay = new Vector3(5.28f, -4.73f, 0f);
        Vector3 FinalRay = new Vector3(14.34f, -4.73f, 0f);
      Vector3 Cursor = Input.mousePosition;

        Cursor = Camera.main.ScreenToWorldPoint(Cursor);

        Cursor.z = -0.09f;
        if (Input.GetMouseButtonDown(0)) {
            myPrefab.transform.position = Cursor;
            if (myPrefab.transform.position.y > 1.7)
            {

                Instantiate(myPrefab);
                a = true;
          
            }
            if (a == true) {

                if (Camera.transform.position == new Vector3(10, 0, -10)) {

                    score += plusScore;
                    a = false;
                
                }
    
            }
  
        }

        if (Camera.transform.position.x == 0 || Camera.transform.position.x == 20)
        {
            if (a == true)
            {
                var clones = GameObject.FindGameObjectsWithTag("clone");
                foreach (var clone in clones)
                {
                    Destroy(clone, 5f);

                }

            }

        }

        if (a == true) {
            score = 0;
            a = false;
        }

        if (Camera.transform.position.x == 0 || Camera.transform.position.x == 20) {

            score = 0;
        
        }

        Scores.text = score.ToString();

        if (a == false) {
        
        

        
        
        }

        

        }

    public void But() {

        Camera.transform.position = new Vector3(10, 0, -10);
    
    
    }

    public void Main()
    {

        Camera.transform.position = new Vector3(0, 0, -10);

    }
    

    }
VostruginДата: Суббота, 04 Марта 2017, 18:51 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Вот пример, в свой код думаю интегрируете.

Код
using UnityEngine;
using System.Collections;
using System.Linq;

public class MyClass : MonoBehaviour {

    public GameObject MyPrefab;
    public List<GameObject> CreatedPrefabs;  

    void Start() {
     CreatedPrefabs = new List<GameObject>();
    }

    void Update() {
      if (Input.GetKeyUp(KeyCode.R))
        {
            var go = Instantiate(MyPrefab);
            CreatedPrefabs.Add(go);

            var findPos = go.transform.position;

            // Если элементов с такой позицией больше 5
            if(CreatedPrefabs.Count(x => x.transform.position == findPos) > 5)
            {
                // Удаляем все объекты с искомой позицией
                CreatedPrefabs.Where(x => x.transform.position == findPos).ToList().ForEach(x => Destroy(x));
                // Оставляем в списки все объекты, кроме объектов с искомой позицией
                CreatedPrefabs = CreatedPrefabs.Where(x => x.transform.position != findPos).ToList();
            }
        }
    }
}






Сообщение отредактировал Vostrugin - Суббота, 04 Марта 2017, 18:55
RebyataYaNeSharyДата: Понедельник, 06 Марта 2017, 14:46 | Сообщение # 3
частый гость
Сейчас нет на сайте
Спасибо большое, интегрируем)

Добавлено (06 марта 2017, 14:46)
---------------------------------------------
У меня проблема такая тут возникла - The type or namespace name `List`1' could not be found. Are you missing a using directive or an assembly reference?

Не подскажите как решить?

Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Сложный массив
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг