• Как сделать так, что бы объект не спавнился в объекте?

    @DrRen7
    Smart_hub,
    [SerializeField] float _minRand = 87f;
        [SerializeField] float _maxRand = 130f;
        [SerializeField] GameObject _car;
        [SerializeField] float _checkSphereRad = 2f;
        [SerializeField] LayerMask _carMask;
    
    
        void Start()
        {
            StartCoroutine(Spawner());
        }
    
        IEnumerator Spawner()
        {
            while (true)
            {
                float rand = Random.Range(_minRand, _maxRand);
                Vector3 pos = new Vector3(-5.5f, 0.5f, rand);
                if (Physics.CheckSphere(pos, _checkSphereRad, _carMask)) continue;
                GameObject newCar = Instantiate(_car, pos, Quaternion.identity);
                Destroy(newCar, 20f);
                yield return new WaitForSeconds(2.8f);
            }
        }
    }

    для машин layer, если в сферчек срабатывает дальше код не выполняется
    Написано
  • Unity Bug Reporter. Как решить?

    @DrRen7
    Ну наверно самый простой вариант это зайти в проект от администратора и сохранить его в ассет, и импортировать в новый. Можно попробовать в проекте удалить папку Library. Была примерно такая ошибка из за того что перестали компилироваться скрипты, но тогда все починилось откатом в гите так что опыта в починке не было=\
    Написано
  • Какие есть игровые движки не требовательные к железу?

    @DrRen7
    Ну выбор сильно зависит от того: а что тебе от движка надо? если Godot устраивает то лучше на нем остаться, думаю достаточно перспективный движок, он ОС так что даж тупые действия создателей его не убьют, как пример сейчас есть уже форк Redot
    Написано
  • Как добавить свой скрипт (и какой скрипт добавлять) в дополнение для Unity- Vuforia?

    @DrRen7
    Но описанию получается, что у тебя срабатывает скрипт что ставит объект при нажатии на кнопку(как будто это экран).
    Как поправить через Vuforia не знаю, но так есть 2 пути это не запускать скрипт для создания объекта если объект есть(не лучший вариант) перенести кнопки в другую layer mask(или tag ) и делать return есть таг или маска в hitresult
    Написано
  • Как сделать обход препятствий в 2.5d Unity-игре?

    @DrRen7
    kititnikx,
    Я в 2д не силен...
    Но смотри у тебя пока есть 3 маски создалось 3 Surface, а там нужен только 1 попробуй все скинуть на 1 слой запечь а потом скинуть как надо, хотя вероятно в настойках запекания есть что все запекать на 1
    только мост точно стоит убрать и настроить обстаклы правильно
    Написано
  • Как заставить работать PlayerPrefs в Unity?

    @DrRen7
    kdyatlov99,
    тут я написал как сделать сейф в Json, про PPref не могу подсказать, но вероятно должны быть какие то значения а не ошибки
    Написано
  • Как заставить работать PlayerPrefs в Unity?

    @DrRen7
    x = _transform.position.x; так и должно быть с андерлайном?
    да и не надо это наверно если есть
    PlayerPrefs.SetFloat("x", transform.position.x);
    Написано
  • Камера съезжает вниз при запуске игры в юнити 2д, что делать?

    @DrRen7
    SealSeal,
    я вот про ось z не уверен, её вероятно не стоит трогать если это 2д (те оставить как оно было изначально)
    transform.position = new Vector3(_target.position.x, _yOffset, transform.position.z)

    сделай скрины а то не понятно и компонент камеры тоже
    Написано
  • Камера съезжает вниз при запуске игры в юнити 2д, что делать?

    @DrRen7
    SealSeal,
    камера не является дочерним объектом того за кем следит?
    если да то убрать её из объекта и сделать примерно так
    [SerializeField] Transform _target; //<= обьект для слежения
    [SerializeField] float _yOffset=1f;
    private void LateUpdate()
    {
        transform.position = new Vector3(_target.position.x, _yOffset, _target.position.z);
    }
    Написано
  • Пули в Unity 2D?

    @DrRen7
    armageddon234,
    Удачи надеюсь все получится) про телеграмм не думаю, что я хоть где то, что то делаю в короткое время
    Написано
  • Unity: Как заставить OnTriggerOver показывать, что это событие не произошло?

    @DrRen7
    Jinx,
    FixedUpdate привязан ко времени, Update и LateUpdate к чистоте кадров
    не понимаю зачем нужен метод с триггером на проверку если есть метод для проверки
    как пример
    https://docs.unity3d.com/ScriptReference/Physics.C...
    Написано
  • Пули в Unity 2D?

    @DrRen7
    armageddon234,
    Осталось застревание или иногда не отпрыгивает?
    Застревание идет из за того что пуля цепляет сразу 2 поверхности и потом когда она начинает уходить от одной срабатывает другая, думаю стоит во FixedUpdate сделать задержу для OnCollision там надо тестить думаю 2-3 вызова надо
    плюс стоит ещё сделать минимальный(максимальный) угол отражения
    Написано
  • Не получается создать 3d фигуру в 3d max?

    @DrRen7
    надо выбрать во круг какой оси будет крутится линия
    Написано
  • Что может быть причиной проблем с SSD и системными файлами?

    @DrRen7
    аналогично убилась винда обновой, BSOD даж при входе в безопасный, не было точки пришлось винду сносить=(
    До этого тож была проблема с какой то обновой но там все прошло через пару включений, но в этот раз был дэдлайн так что возится времени не было.
    Есть вариант что это может быть из за проблем с дровами m2
    Написано
  • Спам ошибками Post-Processing, что делать?

    @DrRen7
    Swish123,
    попробуй скачать Sample URP и посмотри как там сделан PP
    или в PP мб семлы есть , тут видно что проблемы начинаются из за шейдеров
    Написано
  • Как правильно сделать сохранение улучшений для игры?

    @DrRen7
    yraiv, хмм тут надо на проект смотреть допустим если у тебя ну это бафы значит их определенное количество тут будут лучше SO, ну а если это апгрейды и условные бафы постоянно улучшаются то SO можно использовать как отправную точку со значениями первого и процента улучшения ну тогда мы все храним в классе

    using UnityEngine;
    [System.Serializable]
    public class Upgrade
    {
        [SerializeField] private string _typeName;
        [SerializeField] private int _price;
        [SerializeField] private float _damage;
    }

    вот наш класс для апгрейда
    using System.Collections.Generic;
    using UnityEngine;
    using System.IO;
    
    public class UpgrageList : MonoBehaviour
    {
        string _name="Tower";
        [SerializeField] List<Upgrade>_upgrades;
    
        [ContextMenu("Save")]
    public void SaveState()
    {
        var json = JsonUtility.ToJson(this);
        File.WriteAllText(Application.persistentDataPath + $"{_name}.so", json);
            Debug.Log(Application.persistentDataPath);
    }
        [ContextMenu("Load")]
    public void LoadState()
    {
        var json = File.ReadAllText(Application.persistentDataPath + $"{_name}.so");
        JsonUtility.FromJsonOverwrite(json, this);
    }
    }

    это условно хранится на объекте

    66e1b1d92c112617593272.png

    {"_upgrades":[{"_typeName":"Fire","_price":5,"_damage":"30"},{"_typeName":"Ice","_price":5,"_damage":"40"},{"_typeName":"Earth","_price":2,"_damage":"10"}]}
    Написано
  • Как сделали свет от лампы?

    @DrRen7
    решений то много, вопрос в том сколько ресурсов на это можно потратить
    1)Красиво, и реалистично это когда мы видим луч из за пыли или смога - но это довольно ресурсоемко
    2)Построение других объектов в данном случаи потребуется 2 конуса и правильно сделанная юви карта что бы можно было накинуть градиент с прозрачностью. Или же самый простой вариант использовать 2 line объекта с градиентом
    как пример 66e09c174f44b074549869.png
    цвет сделал другим что б была понятна идея
    Написано
  • Не запускается анимация открытие и закрытие двери, как исправить?

    @DrRen7
    Nepro,
    doorAnim = gameObject.GetComponent();// не указан компонент 
    //надо 
    doorAnim = gameObject.GetComponent<Animator>();

    c Animator.Play не работал больше предпочитаю через Set но вроде надо doorAnim.Play("Base Layer.Open", 0, 0.0f);

    if (!doOnce)
    {
    raycastedDoor = hit.collider.gameObject.GetComponent(); // тут аналогично что за компонент нужен ?
    CrosshairChange(true);
    }


    if(Physics.Raycast(transform.position, fwd, out hit, rayLength, mask))
    {
    // Door
    if (hit.collider.CompareTag(interactableTag))  это не надо тут и так выбор по маске идет зачем ещё и таг 
    {
    Написано