Задать вопрос
Ответы пользователя по тегу C#
  • Как убрать Visual Scripting в Unity 2021?

    @SWA512
    Gamedev
    Удалить пакет Visual Scripting в Менеджере пакетов.
    67ac885597574909011782.jpeg
    Ответ написан
    1 комментарий
  • Unity как исправить баг с прыжком?

    @SWA512
    Gamedev
    rb.MovePosition() явно накладывается на импульс от прыжка. Убрать воздействие Move() во время прыжка. Или перевести Move() так же на добавление импульса rb.AddForce(Vector3.up * movement, ForceMode.Impulse); [естественно прыгать он будет выше]
    Ответ написан
  • Как заставить двигаться объект в сторону курсора?

    @SWA512
    Gamedev
    Код примерный, не рабочий:
    using UnityEngine;
    
    public class MoveTowardsCursorCoroutine : MonoBehaviour
    {
        public float speed = 5f;
        public float targetDistance = 1f;
    
        private Coroutine moveCoroutine;
    
        IEnumerator MoveToTarget(Vector3 target)
        {
            while (true)
            {
                Vector3 direction = (target - transform.position).normalized;
                float distance = Vector3.Distance(transform.position, target);
    
                // Если достигли цели, начинаем двигаться по инерции
                if (distance <= targetDistance)
                {
                    // Задаем новую цель немного впереди текущей позиции
                    target = transform.position + direction * 10f; // Примерная дистанция инерции
                }
    
                // Плавное перемещение
                transform.position += direction * speed * Time.deltaTime;
    
                yield return null;
            }
        }
    
        void Update()
        {
            // Получаем позицию курсора в мировых координатах
            Vector3 mousePosition = Input.mousePosition;
            mousePosition = Camera.main.ScreenToWorldPoint(mousePosition);
            mousePosition.z = transform.position.z;
    
            // Если корутина не запущена, запускаем новую
            if (moveCoroutine == null)
            {
                moveCoroutine = StartCoroutine(MoveToTarget(mousePosition));
            }
        }
    }
    Ответ написан
    Комментировать
  • Когда выделяется память для переменных внутри функциях?

    @SWA512
    Gamedev
    Одно ядро AMD Ryzen 5000 выполняет до 20 инструкций за такт, в том числе IF(JPM/JNC), если вы пишите игру для настольных систем, то такая оптимизация - это выкинутое на помойку ваше личное время, и время потраченное на другие аспекты игры (например тестирование, реиграбельность, начальная сложность и т.д.).
    Если ваш Move не вызывается 10000 раз за кадр, то вам не стоит вообще на него обращать внимание.
    Внимание стоит обратить на графы Profiler, там скорей всего есть более насущные пожиратели производительности устройства, которые могут превосходить ваш Move() в миллионы раз по кол-ву обращений и емкости памяти.
    Ответ написан
    Комментировать
  • Существует ли альтернатива методу CheckSphere(), где можно в 3 аргументе вписать список(массив) масок слоев?

    @SWA512
    Gamedev
    Первый вариант маски на несколько слоев:
    LayerMask hitLayers = LayerMask.GetMask(“Objects”) | LayerMask.GetMask(“Player”) | LayerMask.GetMask(“Terrain”);
    Physics.CheckSphere(transform.position, sphereRadius, hitLayers)

    Второй, на один слой:
    Physics.CheckSphere(transform.position, sphereRadius, LayerMask.GetMask(“Objects”))
    Ответ написан
    1 комментарий
  • Как добавить на фон видео в главном меню на unity?

    @SWA512
    Gamedev
    - ставите Quad объект на фон (отодвигаете подальше от камеры чтобы он был за сценой)
    - на него добавить компонент VideoPlayer
    - привязать вывод через RenderTexture (создать отдельно) или прямой рендер в материал
    Ответ написан
    Комментировать
  • Выходит такая ошибка, как быть?

    @SWA512
    Gamedev
    Нужно указать тип компонента:
    rb = GetComponent<Rigidbody2D>();
    Ответ написан
    Комментировать