• Как исправить баг игры в unity?

    @komba1n Автор вопроса
    snappyname, Спасибо за помощь. Попробую переставить игрока, главную камеру и спавнер правее, может быть тогда враг просто останется позади
  • Как исправить баг игры в unity?

    @komba1n Автор вопроса
    snappyname, извиняюсь, вот скрипт спавна. Насчет управления персонажем - по задумке он должен перемещаться по 3 линиям (0; 2,5 ; -2,5 по оси y), тем самым уворачиваясь от препятствий. Что же касается скрипта, то это мой первый проект и в с# у меня знания минимальные, а скрипты я списываю.
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Spawner : MonoBehaviour
    {
        public GameObject[] barrierVariants;
    
        private float timeBtwSpawn;
        public float startTimeBtwSpawn;
        public float decreaseTime;
        public float minTime = 1f;
    
        private void Update()
        {
            if (timeBtwSpawn <= 0)
            {
                int rand = Random.Range(0, barrierVariants.Length);
                Instantiate(barrierVariants[rand], transform.position, Quaternion.identity);
    
                timeBtwSpawn = startTimeBtwSpawn;
                if (startTimeBtwSpawn > minTime)
                {
                    startTimeBtwSpawn -= decreaseTime;
                }
            }
            else
            {
                timeBtwSpawn -= Time.deltaTime;
            }
    
        }
    }
  • Как исправить баг игры в unity?

    @komba1n Автор вопроса
    Мимокрокодил, snappyname, есть ли ошибки в моем коде?
  • Как исправить баг игры в unity?

    @komba1n Автор вопроса
    Вот скрипт игрока -
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.SceneManagement;
    
    public class Player : MonoBehaviour
    {
        private Vector2 targetPos;
        public float Yincrement;
    
        public float speed;
        public float maxHeight;
        public float minHeight;
    
        public int health = 3;
    
    
        private void Update()
        {
            if(health <= 0)
            {
                SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
            }
            transform.position = Vector2.MoveTowards(transform.position, targetPos, speed * Time.deltaTime);
    
            if (Input.GetKeyDown(KeyCode.W) && transform.position.y < maxHeight)
            {
                targetPos = new Vector2(transform.position.x, transform.position.y + Yincrement);
                transform.position = targetPos;
            }
            else if(Input.GetKeyDown(KeyCode.S) && transform.position.y > minHeight)
                targetPos = new Vector2(transform.position.x, transform.position.y - Yincrement);
                transform.position = targetPos;
        }
    }