Ответы пользователя по тегу Unity
  • Защита от пересечения генерируемых объектов - Unity 2d?

    @AliminVerckon
    public GameObject player;
        public GameObject platformPrefab;
       
        public float minY = -4.5f;
        public float maxY = 4.7f;
    
    public float ratio = 1.2f;
    public float sizeplatformony;
    public float lastvalue;
    
        Vector2 spawnFix;
    
        void OnTriggerEnter2D(Collider2D collision)
        {
            if (collision.CompareTag("Platform"))
            {
               Value = player.transform.position.y + Random.Range(MinY MaxY);
                Vector2 targetPosition = new Vector2(Random.Range(-1.8f, 1.8f),  value);
    if(Value-lastvalue > sizeplatformony + ratio){
                GameObject p = Instantiate(platformPrefab, targetPosition, Quaternion.identity);
                Destroy(collision.gameObject);
    lastvalue = Value;
    } else {
    GameObject p = Instantiate(platformPrefab, targetPosition+ratio, Quaternion.identity);
                Destroy(collision.gameObject);
    lastvalue = Value + ratio;
    }
            }
        }


    Не весь код = плохо, не знаю как у тебя генерируется первая платформа, но тебе придется занести Y координату первой платформы в lastvalue, иначе конфликт!
    Аккуратность подредактируешь в редакторе и если есть ошибки в регистре тоже в IDE.
    И ratio (Коэффициент) настроишь как тебе надо в инспекторе, он влияет на минимальную высоту между новой и старой платформой
    Ответ написан
    1 комментарий